Keras 检查点未保存到 google 云存储桶
Keras checkpoints not being saved to google cloud bucket
我正在使用以下代码保存检查点,同时 google 云构建 运行 我的模型:
cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath = "gs://mybucket/checkpoints",
verbose=0,
save_weights_only=True,
monitor='val_loss',
mode='min',
save_best_only=True)
我的构建日志中没有错误,但是在每个 运行 之后存储桶中唯一的东西是一个包含源目录内容的 tf_cloud_train_tar 文件。
我在 model.fit.
中使用回调 = [cp_callback]
我遇到这个问题有几个原因:
- 数据集不在存储桶上,因此代码无法访问它。
- 对没有文件的数据集使用生成器会产生无限循环,但不会崩溃。
我切换到 AI Platform 并从 GCS Bucket 获取数据,问题已解决。
这里留给可能遇到同样问题的任何人。
我在 AI 平台上训练我的模型时也遇到了同样的问题。无论我做什么,ModelCheckpoint 回调都无法将其直接保存到 GCS。
我能够通过创建自定义回调来解决它。通过从 tensorflow.keras.callbacks 模块继承回调 class 并覆盖所需的函数,我们可以创建一个回调来做任何我们想做的事情,在一个纪元的多个实例中。
我制作了 ModelCheckpoint 回调以写入本地目录并创建了自定义回调以将这些检查点文件复制到 GCS 存储桶。
该实现在我的 github 存储库中可用 -> https://github.com/Subrahmanyajoshi/Cancer-Detection-using-GCP/blob/07845c1f0c86b727e5ce043a3db4d4cb0e5ed1df/detectors/tf_gcp/trainer/callbacks.py#L10
我正在使用以下代码保存检查点,同时 google 云构建 运行 我的模型:
cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath = "gs://mybucket/checkpoints",
verbose=0,
save_weights_only=True,
monitor='val_loss',
mode='min',
save_best_only=True)
我的构建日志中没有错误,但是在每个 运行 之后存储桶中唯一的东西是一个包含源目录内容的 tf_cloud_train_tar 文件。
我在 model.fit.
中使用回调 = [cp_callback]我遇到这个问题有几个原因:
- 数据集不在存储桶上,因此代码无法访问它。
- 对没有文件的数据集使用生成器会产生无限循环,但不会崩溃。
我切换到 AI Platform 并从 GCS Bucket 获取数据,问题已解决。
这里留给可能遇到同样问题的任何人。
我在 AI 平台上训练我的模型时也遇到了同样的问题。无论我做什么,ModelCheckpoint 回调都无法将其直接保存到 GCS。
我能够通过创建自定义回调来解决它。通过从 tensorflow.keras.callbacks 模块继承回调 class 并覆盖所需的函数,我们可以创建一个回调来做任何我们想做的事情,在一个纪元的多个实例中。
我制作了 ModelCheckpoint 回调以写入本地目录并创建了自定义回调以将这些检查点文件复制到 GCS 存储桶。
该实现在我的 github 存储库中可用 -> https://github.com/Subrahmanyajoshi/Cancer-Detection-using-GCP/blob/07845c1f0c86b727e5ce043a3db4d4cb0e5ed1df/detectors/tf_gcp/trainer/callbacks.py#L10