使用SageMaker时使用Keras进行早期停止和回调

时间:2018-11-26 17:21:42

标签: keras amazon-sagemaker

我正在使用Sagemaker来训练keras模型。训练模型时,我需要实施早期停止方法。

有没有办法传递诸如EarlyStopping,Histories..etc之类的回调。

以传统方式,我们通常将此参数作为参数传递给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中实现回调?

1 个答案:

答案 0 :(得分:1)

我为迟到表示歉意。

看起来您上面指定的Keras代码本质上是您的算法代码。这将在您的用户脚本中定义,在您提供的SageMaker Python SDK示例中为“ training_code.py”。

从TensorFlow 1.11开始,SageMaker预定义的TensorFlow容器支持“脚本模式”。您应该可以在用户脚本中指定Keras回调。

有关更多信息:https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/tensorflow/README.rst#tensorflow-sagemaker-estimators-and-models