我正在使用 sagemaker 训练 keras 模型。我需要在训练模型时实现提前停止方法。
有没有办法传递诸如 EarlyStopping、Histories.. 等回调?
在传统方式中,我们习惯将其作为参数传递给 keras 的 fit 函数:
results = model.fit(train_x_trim, train_y_trim,
validation_data=(test_x, test_y),
epochs=FLAGS.epoch,
verbose=0,
callbacks=[tboard, checkpointer, early_stopping, history])
但是,如果使用 SageMaker,我们需要改为调用 SageMaker 的 fit 函数,该函数不支持回调。
from sagemaker.tensorflow import TensorFlow
iris_estimator = TensorFlow(entry_point='training_code.py',
role=role, output_path=model_location,
code_location=custom_code_upload_location,
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
training_steps=1000,
evaluation_steps=100)
知道如何在 SageMaker 中实现回调吗?
最佳答案
对于迟到的回复,我深表歉意。
看起来您上面指定的 Keras 代码本质上就是您的算法代码。这将在您的用户脚本中定义,在您提供的 SageMaker Python SDK 示例中为“training_code.py”。
从 TensorFlow 1.11 开始,SageMaker 预定义的 TensorFlow 容器支持“脚本模式”。您应该能够在用户脚本中指定 Keras 回调。
关于keras - 使用 SageMaker 时使用 Keras 提前停止和回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53486118/