SageMaker Estimator.fit() 没有将 'train' 输入传递给训练实例
SageMaker Estimator.fit() didn't pass the 'train' input to the Training instance
正如文档/教程中提到的那样,我们可以调用 Estimator.fit()
来启动训练作业。
该方法的必需参数是 inputs
,即对训练文件的 s3/文件引用。示例:
estimator.fit({'train':'s3://my-bucket/training_data})
训练-script.py
parser.add_argument('--train', type=str, default=os.environ['SM_CHANNEL_TRAIN'])
我希望 os.environ['SM_CHANNEL_TRAIN']
成为 S3 路径。但是,它 returns /opt/ml/input/data/train
.
有人知道为什么吗?
更新
我也试过打电话给estimator.fit('s3://my-bucket/training_data')。
不知何故,训练实例没有获得 SM_CHANNEL_TRAIN 环境变量。事实上,我根本没有看到环境变量中的s3 URI。
这很可能是因为您的参数 os.environ['SM_CHANNEL_TRAIN']
没有提供带有 s3://
前缀的路径,如果您希望它从 s3 中提取数据。如果没有该前缀,它将改为在映像中搜索自己的本地文件系统以查找该路径。
当 运行 在 SageMaker 中训练作业时,包含您提供的训练数据的 S3 URL 最终会从指定的 [=18] 复制到 docker 容器(又名训练作业)中=].因此,环境变量 SM_CHANNEL_TRAIN 指向从提供的 S3 URL 复制的训练数据的本地路径。
正如文档/教程中提到的那样,我们可以调用 Estimator.fit()
来启动训练作业。
该方法的必需参数是 inputs
,即对训练文件的 s3/文件引用。示例:
estimator.fit({'train':'s3://my-bucket/training_data})
训练-script.py
parser.add_argument('--train', type=str, default=os.environ['SM_CHANNEL_TRAIN'])
我希望 os.environ['SM_CHANNEL_TRAIN']
成为 S3 路径。但是,它 returns /opt/ml/input/data/train
.
有人知道为什么吗?
更新
我也试过打电话给estimator.fit('s3://my-bucket/training_data')。 不知何故,训练实例没有获得 SM_CHANNEL_TRAIN 环境变量。事实上,我根本没有看到环境变量中的s3 URI。
这很可能是因为您的参数 os.environ['SM_CHANNEL_TRAIN']
没有提供带有 s3://
前缀的路径,如果您希望它从 s3 中提取数据。如果没有该前缀,它将改为在映像中搜索自己的本地文件系统以查找该路径。
当 运行 在 SageMaker 中训练作业时,包含您提供的训练数据的 S3 URL 最终会从指定的 [=18] 复制到 docker 容器(又名训练作业)中=].因此,环境变量 SM_CHANNEL_TRAIN 指向从提供的 S3 URL 复制的训练数据的本地路径。