OSError 无法创建文件 - 参数无效
OSError unable to create file - invalid argument
我在 Tensorflow 之上使用 Python 和 Keras 来训练我的神经网络。
当我从 Ubuntu 16.04 切换到 Windows 10 时,当我 运行 以下内容时,我的模型无法再保存:
filepath = "checkpoint-"+str(f)+model_type+"-"+optimizer_name+"-{epoch:02d}-{loss:.3f}.hdf5"
checkpoint = ModelCheckpoint(filepath, monitor='loss', verbose=1, save_best_only=True, mode='min')
callbacks_list = [checkpoint]
及以后:
model.fit(X, y,
batch_size=128,
epochs=1,
shuffle=False,
callbacks=callbacks_list)
我收到这个错误:
OSError: Unable to create file (Unable to open file: name = 'checkpoint-<_io.textiowrapper name='data/swing-projects100-raw/many-chunks/log-gamma-f3.txt' mode='a' encoding='cp1252'>2l128-adam-0.001-{epoch:02d}-{loss:.3f}.h5', errno = 22, error message = 'invalid argument', flags = 13, o_flags = 302)
我通过 conda 安装了 Keras 2.0.8 和 h5py 2.7.0。
我试过了
filepath = "checkpoint-"+str(f)+model_type+"-"+optimizer_name+"-{epoch:02d}-{loss:.3f}.hdf5"
with open(filepath, "w") as f:
f.write("Test.")
并得到了类似的错误:
OSError: [Errno 22] Invalid argument: "checkpoint-<_io.TextIOWrapper name='data/swing-projects100-raw/many-chunks/log-gamma-f3.txt' mode='a' encoding='cp1252'>2L128-Adam-0.001-{epoch:02d}-{loss:.3f}.hdf5"
当我从文件路径中删除 str(f)
时,它起作用了。
f
是一个整数,我不知道为什么会导致错误,但是从字符串中删除它解决了我的问题。
如果您知道确切原因,请告诉我。
这段代码也有类似的问题:
agent.save("./saved_models/weights_episode_{}.h5".format(e))
我手动创建文件夹解决了saved_models
e
是一个整数在我的情况下没有造成任何问题。
我在远程机器上使用tensorflow时遇到了类似的问题。
我可能 'have no permission to modify the file' 的原因。
我解决这个问题的方法是使用像“../model.h5”这样的保存路径————你有权限的文件夹。
这可能对某人有帮助。
我在 Tensorflow 之上使用 Python 和 Keras 来训练我的神经网络。 当我从 Ubuntu 16.04 切换到 Windows 10 时,当我 运行 以下内容时,我的模型无法再保存:
filepath = "checkpoint-"+str(f)+model_type+"-"+optimizer_name+"-{epoch:02d}-{loss:.3f}.hdf5"
checkpoint = ModelCheckpoint(filepath, monitor='loss', verbose=1, save_best_only=True, mode='min')
callbacks_list = [checkpoint]
及以后:
model.fit(X, y,
batch_size=128,
epochs=1,
shuffle=False,
callbacks=callbacks_list)
我收到这个错误:
OSError: Unable to create file (Unable to open file: name = 'checkpoint-<_io.textiowrapper name='data/swing-projects100-raw/many-chunks/log-gamma-f3.txt' mode='a' encoding='cp1252'>2l128-adam-0.001-{epoch:02d}-{loss:.3f}.h5', errno = 22, error message = 'invalid argument', flags = 13, o_flags = 302)
我通过 conda 安装了 Keras 2.0.8 和 h5py 2.7.0。
我试过了
filepath = "checkpoint-"+str(f)+model_type+"-"+optimizer_name+"-{epoch:02d}-{loss:.3f}.hdf5"
with open(filepath, "w") as f:
f.write("Test.")
并得到了类似的错误:
OSError: [Errno 22] Invalid argument: "checkpoint-<_io.TextIOWrapper name='data/swing-projects100-raw/many-chunks/log-gamma-f3.txt' mode='a' encoding='cp1252'>2L128-Adam-0.001-{epoch:02d}-{loss:.3f}.hdf5"
当我从文件路径中删除 str(f)
时,它起作用了。
f
是一个整数,我不知道为什么会导致错误,但是从字符串中删除它解决了我的问题。
如果您知道确切原因,请告诉我。
这段代码也有类似的问题:
agent.save("./saved_models/weights_episode_{}.h5".format(e))
我手动创建文件夹解决了saved_models
e
是一个整数在我的情况下没有造成任何问题。
我在远程机器上使用tensorflow时遇到了类似的问题。
我可能 'have no permission to modify the file' 的原因。
我解决这个问题的方法是使用像“../model.h5”这样的保存路径————你有权限的文件夹。
这可能对某人有帮助。