【发布时间】:2021-09-06 21:19:32
【问题描述】:
我正在使用一个包含所有必需文件的 docker 映像,然后将其推送到 aws ecr,在那里我可以使用该映像传递给估算器。我已将 train.py 文件添加为 dockerfile 中的入口点。
ENTRYPOINT ["python3", "-m","train"]
这在本地使用docker run -it image 可以正常工作但在运行训练作业时出现错误。
Training - Training image download completed. Training in progress...usage: train.py [-h] [--epochs EPOCHS] [--learning_rate LEARNING_RATE]
[--max_sequence_length MAX_SEQUENCE_LENGTH]
[--train_batch_size TRAIN_BATCH_SIZE]
[--valid_batch_size VALID_BATCH_SIZE]
train.py: error: unrecognized arguments: train
使用 sagemaker 估算器的训练作业:
estimator = sagemaker.estimator.Estimator(image, # docker image
role,
train_instance_count=1,
train_instance_type='ml.p2.xlarge',
output_path=output_path,
hyperparameters=hyperparameters,
sagemaker_session=session
)
train.py main fun():
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--epochs', type=int, default=2)
parser.add_argument('--learning_rate', type=float, default=2e-5)
parser.add_argument('--max_sequence_length', type=int, default=512)
parser.add_argument('--train_batch_size', type=int, default=12)
parser.add_argument('--valid_batch_size', type=int, default=8)
# SageMaker environment variables.
#parser.add_argument('--hosts', type=str, default=os.environ['SM_HOSTS'])
#parser.add_argument('--current_host', type=str, default=os.environ['SM_CURRENT_HOST'])
# Parse command-line args and run main.
args = parser.parse_args()
# Get SageMaker host information from runtime environment variables
#sm_hosts = json.loads(args.hosts)
#sm_current_host = args.current_host
train(args)
从sagemaker doc,我发现训练作业中的图像以docker run image train 运行,当我在本地尝试相同时,我得到了同样的错误。
【问题讨论】:
标签: python docker dockerfile amazon-sagemaker