Ранняя остановка и обратные вызовы с Keras при использовании SageMaker - PullRequest
0 голосов
/ 26 ноября 2018

Я использую 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?

1 Ответ

0 голосов
/ 18 декабря 2018

Я прошу прощения за поздний ответ.

Похоже, код Keras, который вы указали выше, по сути, ваш код алгоритма.Это будет определено в вашем пользовательском скрипте, который будет «training_code.py» в приведенном вами примере SageMaker Python SDK.

Начиная с 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

...