如何修复ModelCheckpoint中的OSError和df.to_csv()中的FileNotFoundError?

时间:2019-11-11 18:32:56

标签: python pandas tensorflow keras

我正在使用神经网络,并且在代码中保存了以下文件:

  1. 通过ModelCheckpoint.hdf5 file
  2. 的模型权重
  3. 模型:.h5 file
  4. 丢失历史记录:.csv file
  5. 预测值:.csv file

在过去的几周中,此代码一直运行良好,并且所有文件都已保存,没有任何问题。但是今天,我收到以下错误消息:

以下是代码和相应的错误:

丢失历史记录

df_hist.to_csv(out_filename + "_loss" + ext,index=False)
FileNotFoundError: [Errno 2] No such file or directory: '<my string file path>'

out_filename =我为文件名生成的字符串,并且

ext =扩展名(在这种情况下为.csv。)

模型检查点

weights_filepath = "{}_weights.hdf5".format(out_filename)
check_point = ModelCheckpoint(filepath= weights_filepath,
                              verbose=1, 
                              save_best_only=True)
OSError: Unable to create file (unable to open file: name = '<my string file path>', errno = 2, error message = 'No such file or directory', flags = 13, o_flags = 302)

尽管如此,模型文件(.h5)仍保存在同一路径而没有任何问题!

我不了解预测文件,因为脚本在此之前退出。

我尝试过的事情

  • 根据我的搜索,有些人能够通过将ModelCheckpoint降级为keras版本来解决2.2.4错误。我也这样做了,但是没有解决。我目前在keras==2.3.1tensorflow==2.0.0上。
  • 我还直接从错误消息中复制了路径,并将其粘贴到Windows资源管理器中。它工作正常,因此可以正常创建所需的目录。但是问题出在文件上。
  • 此外,所有这些文件都必须(并且正在)存储在同一目录中。
  • 我也尝试过传递绝对路径。
  • 甚至将Path()的字符串文件名从pathlib转换为ModelCheckpoint,但问题仍然存在。

请让我知道是否需要更多代码。

编辑:

对于丢失历史记录,我将pandas数据框更改为一个numpy数组,并使用savetxt(),如下所示:

df_hist_np = df_hist.values
np.savetxt(out_filename + ext, df_hist_np, delimiter=",")

这解决了问题,但是ModelCheckpoint仍需要修复。

0 个答案:

没有答案