我正在尝试使用在AWS CLI中运行的scikit_bring_your_own / container / decision_trees / train模式,我没有任何问题。尝试在“创建Sagemaker培训作业”中进行复制,但在将数据从S3加载到Docker映像路径时遇到问题。
在CLI命令中,我们使用了docker run -v $ {pwd)/ test_dir:/ opt / ml --rm $ {image}火车,从那里需要引用输入。
在培训工作中,提到了模型工件的S3存储桶位置和输出路径。
在异常中输入错误,如在火车中-“ container / decision_trees / train” 引发ValueError(('{}中没有文件。\ n'+ “这通常表示错误地指定了频道({}),\ n'+ 'S3中的数据规范指定错误或角色指定\ n'+ '无权访问数据。'。format(training_path,channel_name)) 追溯(最近一次通话): 火车中的“ / opt / program / train”文件,第55行 '没有访问数据的权限。'。format(training_path,channel_name))
所以不理解是否需要进行任何调整或缺少任何访问权限。
请帮助
答案 0 :(得分:0)
如果您像这样在CreateTrainingJob API中设置InputDataConfig
"InputDataConfig": [
{
"ChannelName": "train",
"DataSource": {
"S3DataSource": {
"S3DataDistributionType": "FullyReplicated",
"S3DataType": "S3Prefix",
"S3Uri": "s3://<bucket>/a.csv"
}
},
"InputMode": "File",
},
{
"ChannelName": "eval",
"DataSource": {
"S3DataSource": {
"S3DataDistributionType": "FullyReplicated",
"S3DataType": "S3Prefix",
"S3Uri": "s3://<bucket>/b.csv"
}
},
"InputMode": "File",
}
]
SageMaker从S3将上面指定的数据下载到Docker容器中的/ opt / ml / input / data / channel_name目录中。在这种情况下,算法容器应该能够在以下位置找到输入数据
/opt/ml/input/data/train/a.csv
/opt/ml/input/data/eval/b.csv
您可以在https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo.html
中找到更多详细信息