amazon-web-services - AWS Sagemaker - “在数据路径中找到隐藏文件!在训练之前将其删除。”
问题描述
我正在尝试使用 Amazon Sagemaker 训练模型(xgboost: eu-west-1': '685385470294.dkr.ecr.eu-west-1.amazonaws.com/xgboost:latest')。但我总是在开始培训工作后不久收到相同的错误消息:
“ClientError:在数据路径中找到隐藏文件!在训练之前将其删除。”
S3 控制台显示输出路径为空(我也尝试创建一个新目录,但无济于事)。未为存储桶启用版本控制。
令人惊讶的是,谷歌在此错误消息下没有发现任何内容。
我已将输入和输出配置如下:
"InputDataConfig": [
{
"ChannelName": "train",
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": "s3://{}/{}-inputdata/train".format(s3_utils.bucket, LABEL)
}
},
"ContentType": "csv",
"CompressionType": "None"
},
{
"ChannelName": "validation",
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": "s3://{}/{}-inputdata/validation".format(s3_utils.bucket, LABEL)
}
},
"ContentType": "csv",
"CompressionType": "None"
}
],
"OutputDataConfig": {
"S3OutputPath": "s3://{}/{}-xgboost-output".format(s3_utils.bucket, LABEL) },
场
"RoleArn": role,
角色从何而来
from sagemaker import get_execution_role
role = get_execution_role()
并且是
arn:aws:iam::<ACCOUNT>:role/service-role/AmazonSageMaker-ExecutionRole-<HIDDEN>
这是显示数据路径的屏幕截图:数据路径的 S3 仪表板视图。这两个 csv 文件就是全部。特别是,没有可能是“隐藏文件”可能意味着的空“目录”。
解决方案
好的,您在S3Uri
此处设置的前缀。根据您的屏幕截图,我认为您的存储桶看起来像这样(树形):
s3://bucket
└── LABEL-inputdata
├── train.csv
└── validation.csv
根据您的InputDataConfig
上述情况,SageMaker 必须将其下载到文件系统上的文件夹中xgboost
才能运行训练算法。它基于频道名称和S3Uri
您提供的前缀来执行此操作。前缀被切掉以确定要下载到的文件夹/文件的名称。因此,在您的示例中,train
频道下载为:
/opt/ml/input/data/train/.csv
最后,xgboost
实现将该.csv
文件视为隐藏文件并抱怨它。
为了让它工作,你可以像这样在 s3 中重新排列你的数据......
s3:bucket
└── LABEL-inputdata
├── train
│ └── data.csv
└── validation
└── data.csv
..并将您的输入数据配置更改为:
"InputDataConfig": [
{
"ChannelName": "train",
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": "s3://{}/{}-inputdata/train/".format(s3_utils.bucket, LABEL)
}
},
"ContentType": "csv",
"CompressionType": "None"
},
{
"ChannelName": "validation",
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": "s3://{}/{}-inputdata/validation/".format(s3_utils.bucket, LABEL)
}
},
"ContentType": "csv",
"CompressionType": "None"
}
推荐阅读
- angular - 我的图像以数字形式出现
- numpy - 如何计算 np.insert "obj" 参数?
- docker - 在 jenkins slave 上运行 docker build 时出错
- android - NativeScript Vue + Fastlane - 自定义 iOS/Android 项目路径?
- javascript - 如何使用css和js创建被动波浪效果按钮
- vue.js - Vue.js 在 ajax 请求期间禁用组件
- python - pythreejs 无法在 jupyter notebook 中渲染大网格(但成功渲染了小网格)
- angular - 重新加载页面时,从 Angular 6 中的 url 中删除 # 后页面未加载。
- javascript - 保存AngularJS后如何在页面上显示新数据
- nginx - 如何显示来自 Gryphon nginx 的多个 rtmp 流?