在 tensorflow 2 中加载 ModelCheckpoint

Loading ModelCheckpoint in tensorflow 2

在使用 tensorflow 1 的 keras 中,我可以 ModelCheckpoint(filepath) 并且保存的文件名为 filepath,然后我可以调用 model = load_model(filepath) 来加载保存的模型。

现在在 tensorflow 2 中等效于 ModelCheckpoint 创建一个名为 filepath 的目录,当我按照文档 here 加载保存的模型时,我必须创建一个空模型然后呼叫 model.load_weights(filepath)。 这是我的回调和拟合:


filepath = "filepath"
checkpoint = tf.keras.callbacks.ModelCheckpoint(filepath=filepath, mode='max', monitor='val_accuracy', verbose=2, save_best_only=True)
callbacks_list = [checkpoint]
model.fit(train_dataset, validation_data=y_test_dataset, validation_steps=BATCH_SIZE, callbacks=callbacks_list, epochs=5000, verbose=2, steps_per_epoch=(X_train_deleted_nans.shape[0]//BATCH_SIZE))

在另一个脚本中执行 model.load_weights(filepath) 我收到以下错误:

OSError: Unable to open file (unable to open file: name = 'filepath', errno = 13, error message = 'Permission denied', flags = 0, o_flags = 0)

我想获得一些帮助,了解为什么我会收到我创建的模型的权限被拒绝错误。

在保存模型权重时尝试检查点,同时包含 .hdf5 扩展。

filepath = "filepath/model.hdf5"
checkpoint = tf.keras.callbacks.ModelCheckpoint(filepath=filepath, mode='max', monitor='val_accuracy', verbose=2, save_best_only=True)

如果您已经花了很多时间训练您的模型并且您不想再次训练只是为了保存为 HDF5 格式,该怎么办?

你能做什么:

  1. 根据代码创建模型 model = build_super_artificial_intelligence_deep_learning_model()
  2. 使用tf.keras.models.save_model(model, "/path/to/full_model")
  3. 保存
  4. /path/to/full_model/variables 中的 variables.* 文件替换为检查点中具有相应扩展名的文件。将检查点中的文件重命名为 variables.*.
  5. 使用 trained_model = tf.keras.models.load_model("/path/to/full_model") 加载模型。

(使用 TF2.5 测试)