SageMaker Estimator.fit()没有将'train'输入传递给训练实例。

3
正如文档/教程提到的那样,我们可以调用Estimator.fit()来开始训练工作。
该方法的必要参数是inputs,它是指向训练文件的s3 /文件引用。例如:
estimator.fit({'train':'s3://my-bucket/training_data})

training-script.py

parser.add_argument('--train', type=str, default=os.environ['SM_CHANNEL_TRAIN'])

我原本期望os.environ['SM_CHANNEL_TRAIN']是S3路径。但实际上,它返回的是/opt/ml/input/data/train。有人知道为什么吗?
更新: 我还尝试了调用estimator.fit('s3://my-bucket/training_data')。 但不知何故,训练实例没有获取到SM_CHANNEL_TRAIN环境变量。事实上,我在环境变量中根本没有看到S3 URI。
2个回答

2

0
这很可能是因为你的参数os.environ['SM_CHANNEL_TRAIN']没有带上s3://前缀的路径,如果你期望它从S3中获取数据的话。没有这个前缀,它会在镜像的本地文件系统中搜索该路径。

但是正如你在我的代码中调用fit()方法时所看到的,我已经提供了一个有效的s3文件路径... 这不是提供train参数的正确方式吗? - Yosi Pramajaya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接