【问题标题】:ModelCheckpoint doesn't save the modelModelCheckpoint 不保存模型
【发布时间】:2020-06-13 07:45:20
【问题描述】:

我正在尝试按照本教程构建语音识别模型 https://www.analyticsvidhya.com/blog/2019/07/learn-build-first-speech-to-text-model-python/ 有两部分,第一部分是一个训练模型,输出是第二部分的输入(测试模型)

在训练模型的最后,有这部分应该保存训练的结果

model = Model(inputs, outputs)
model.summary()

model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['acc'])

es = EarlyStopping(monitor='val_loss', mode='min', verbose=1, patience=10, min_delta=0.0001) 
mc = ModelCheckpoint('best_model.hdf5', monitor='val_acc', verbose=1, save_best_only=True, mode='max')

所以结果应该保存在这个文件“best_model.hdf5”中 这个模型运行没有任何错误,但我没有找到任何文件创建 当我尝试在测试模型中加载模型时,我收到一条错误消息,提示找不到此文件

有什么帮助吗?

安装的keras版本:2.3.1

更新 1: 我试图知道您的代码运行的位置:

print(os.getcwd())

我得到了相同的模型文件方向,我试图把这个位置放在代码中保存并从中加载,但仍然没有创建文件,我得到了相同的错误消息

更新 2: 我加 print(os.listdi()) 在 ModelCheckpoint 函数之后,我也没有找到它

【问题讨论】:

  • 使用 import os 然后 print(os.getcwd()) 这应该为您提供代码运行的位置。或者创建一个附加完整路径的文件。
  • 我累了我得到了相同的模型文件方向,我试图把这个位置放在代码中保存并从中加载,但仍然没有创建文件,我得到了相同的错误信息
  • 请更新您的帖子以实际显示上面@High-Octane 建议的方法以及os.getcwd()os.listdir 的结果(我猜你实际上运行@ 987654327@在找文件之前,对吧?)
  • 我更新了,我试过print(os.listdi()) 没找到,因为model.fit是用在试用模型而不是训练模型中
  • 对不起,我弄糊涂了,model.fit()是在找文件之前用的,在训练模型中没有测试

标签: python-3.x machine-learning deep-learning speech


【解决方案1】:

尝试单独定义 checkpoint_file_path 并在函数调用中使用该变量如何?这主要是因为文件路径名前的“/”。所以你可以试试“/best_model.hdf5”

【讨论】:

  • 谢谢你的评论,我试着把完整的路径,但仍然有问题退出es = EarlyStopping(monitor='val_loss', mode='min', verbose=1, patience=10, min_delta=0.0001) mc = ModelCheckpoint('/home/moataz/Desktop/speech/Model/best_model.hdf5', monitor='val_acc', verbose=1, save_best_only=True, mode='max')我认为问题出在参数像详细和监控,因为我试图改变一个它们中的一个,它可以工作并且文件已创建,但保存的模型并不好
猜你喜欢
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
  • 2020-04-26
  • 2020-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-23
相关资源
最近更新 更多