这是我用来保存模型的函数。’models’文件夹不存在。但它不应该创建一个’models’文件夹并以指定的文件名保存模型吗?我在任何地方都找不到解决方案。
# 创建一个保存模型的函数def save_model(model, suffix=None): """ 将给定模型保存到models目录中,并附加一个后缀(字符串) 以便于清晰和重用。 """ # 使用当前时间创建模型目录 modeldir = os.path.join("/content/drive/My Drive/Dog Eyes/models/", datetime.datetime.now().strftime("%Y%m%d-%H%M%s")) model_path = modeldir + "-" + suffix + ".h5" # 模型保存格式 print(f"正在保存模型到: {model_path}...") model.save(model_path) return model_path
我调用函数的方式如下
# 保存训练在1000张图片上的模型save_model(model, suffix="1000-images-mobilenetv2-Adam")
执行函数时我得到的错误如下
无法创建文件(无法打开文件: 名称 = '/content/drive/My Drive/Dog Eyes/models/20200306-18501583520636-1000-images-mobilenetv2-Adam.h5', errno = 2, 错误消息 = 'No such file or directory', flags = 13, o_flags = 242)
完整的错误消息
正在保存模型到: /content/drive/My Drive/Dog Eyes/models/20200306-18501583520636-1000-images-mobilenetv2-Adam.h5...---------------------------------------------------------------------------OSError Traceback (most recent call last)<ipython-input-62-d56ea448536c> in <module>()----> 1 save_model(model, suffix="1000-images-mobilenetv2-Adam")5 frames/tensorflow-2.1.0/python3.6/h5py/_hl/files.py in make_fid(name, mode, userblock_size, fapl, fcpl, swmr) 177 fid = h5f.create(name, h5f.ACC_EXCL, fapl=fapl, fcpl=fcpl) 178 elif mode == 'w':--> 179 fid = h5f.create(name, h5f.ACC_TRUNC, fapl=fapl, fcpl=fcpl) 180 elif mode == 'a': 181 # Open in append mode (read/write).h5py/_objects.pyx in h5py._objects.with_phil.wrapper()h5py/_objects.pyx in h5py._objects.with_phil.wrapper()h5py/h5f.pyx in h5py.h5f.create()OSError: Unable to create file (unable to open file: name = '/content/drive/My Drive/Dog Eyes/models/20200306-18501583520636-1000-images-mobilenetv2-Adam.h5', errno = 2, error message = 'No such file or directory', flags = 13, o_flags = 242)
回答:
‘models’文件夹没有被创建,这似乎是问题的根源。手动创建’models’文件夹可以解决问题,模型将被保存到正确的路径中