我正在使用SageMaker训练一些我意识到的自定义TF模型。在训练期间,我自然会多次评估模型,以了解NN实际何时开始过度拟合。训练后,我想还原最有效的模型(即验证损失最小的模型)并将其部署在端点上。但是,如果我使用经典的Tensorflow.attach(),则还原的模型将与output / model.tar.gz中存储的模型相对应,如果我正确地将其恢复,则该模型将与上一次训练迭代相对应(因此可能会过度拟合)。

有没有一种方法可以向SageMaker指定恢复哪个检查点,而不必通过提前停止来重新训练模型?甚至强迫SM将模型保存在model.tar.gz中,该模型会显示最小的验证损失,而不是最后一个模型对我有用,但是不幸的是,我没有找到任何立即执行此操作的方法...

谢谢!

最佳答案

您可以使用checkpoint_path从先前的检查点还原模型:

previous_checkpoint_path = 's3://location/of/my/previous/generated/checkpoints'

tf_estimator = TensorFlow('tf-train.py', role='SageMakerRole',
                          checkpoint_path=previous_checkpoint_path
                          training_steps=10000, evaluation_steps=100,
                          train_instance_count=1, train_instance_type='ml.p2.xlarge',
                          framework_version='1.10.0')
tf_estimator.fit('s3://bucket/path/to/training/data')


了解更多信息:

https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/tensorflow/README.rst#restoring-from-checkpoints

https://sagemaker.readthedocs.io/en/latest/sagemaker.tensorflow.html

关于python - 还原特定的检查点以通过Sagemaker和TensorFlow进行部署,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52948351/

10-16 18:22