无法将文件从 sagemaker 笔记本上传到 S3

A. *_*gam 5 python amazon-s3 amazon-web-services amazon-sagemaker

我正在尝试将我清理过的(并使用 kfold 拆分数据)上传到 s3,以便我可以使用 sagemaker 创建一个使用它的模型(因为 sagemaker 想要一个包含训练和测试数据的 s3 文件)。但是,每当我尝试将 csv 上传到 s3 时,它都会运行,但我在 s3 中看不到该文件。

我曾尝试更改我在 sagemaker 中访问的文件夹,或者尝试上传不同类型的文件,但这些文件都不起作用。此外,我在类似的 Stack Overflow 帖子中尝试了这些方法,但没有成功。

另请注意,我可以手动将我的 csv 上传到 s3,而不是通过 sagemaker 自动上传。

下面的代码是我目前必须上传到 s3 的,我是直接从 AWS 文档中复制的,用于使用 sagemaker 上传文件。

import io
import csv
import boto3

#key = "{}/{}/examples".format(prefix,data_partition_name)
#url = 's3n://{}/{}'.format(bucket, key)
name = boto3.Session().resource('s3').Bucket('nc-demo-sagemaker').name
print(name)
boto3.Session().resource('s3').Bucket('nc-demo-sagemaker').upload_file('train', '/')
print('Done writing to {}'.format('sagemaker bucket'))
Run Code Online (Sandbox Code Playgroud)

我希望当我运行该代码片段时,我能够将训练和测试数据上传到我想要用于创建 sagemaker 模型的文件夹中。

Nic*_*lsh 3

该问题可能是由于您的 SageMaker 笔记本缺乏适当的 S3 权限。

您的 IAM 用户拥有具有权限的角色,这决定了您是否可以通过 S3 控制台手动上传 CSV。

SageMaker 笔记本实际上有自己的 IAM 角色,这将要求您显式添加 S3 权限。您可以在 SageMaker 控制台中看到这一点,默认 IAM 角色以 开头SageMaker-XXX。您可以编辑此 SageMaker 创建的 IAM 角色,也可以附加包含 S3 读/写权限的现有 IAM 角色。