Ранняя остановка и обратные вызовы с Keras при использовании SageMaker
Я использую Sagemaker для обучения модели Keras. Мне нужно внедрить подход ранней остановки при обучении модели.
Есть ли способ передать обратные вызовы, такие как EarlyStopping, Histories..etc.
Традиционно мы использовали это как параметр для функции соответствия keras:
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, которая не поддерживает обратные вызовы.
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?
0 ответов
Я прошу прощения за поздний ответ.
Похоже, код Keras, который вы указали выше, по сути, ваш код алгоритма. Это будет определено в вашем пользовательском скрипте, который будет "training_code.py" в приведенном вами примере SageMaker Python SDK.
Начиная с TensorFlow 1.11, предопределенные контейнеры SensMaker для TensorFlow поддерживают "режим сценария". Вы должны быть в состоянии указать ваши обратные вызовы Keras в вашем пользовательском скрипте.
Для получения дополнительной информации: https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/tensorflow/README.rst#tensorflow-sagemaker-estimators-and-models