Amazon web services 美国焊接学会Sagemaker-“;在数据路径中找到隐藏文件!在培训前将其移除。”;
我正在尝试使用Amazon Sagemaker(xgboost:eu-west-1’:'685385470294.dkr.ecr.eu-west-1.amazonaws.com/xgboost:latest')来训练一个模型。但我总是在开始培训工作后不久收到相同的错误消息: “ClientError:在数据路径中找到隐藏文件!请先删除该文件 训练。” S3控制台显示输出路径为空(我还尝试创建一个新目录,但没有成功)。未为bucket启用版本控制 令人惊讶的是,谷歌在这个错误消息下什么也没找到 我已将输入和输出配置如下:Amazon web services 美国焊接学会Sagemaker-“;在数据路径中找到隐藏文件!在培训前将其移除。”;,amazon-web-services,amazon-s3,amazon-ec2,xgboost,amazon-sagemaker,Amazon Web Services,Amazon S3,Amazon Ec2,Xgboost,Amazon Sagemaker,我正在尝试使用Amazon Sagemaker(xgboost:eu-west-1’:'685385470294.dkr.ecr.eu-west-1.amazonaws.com/xgboost:latest')来训练一个模型。但我总是在开始培训工作后不久收到相同的错误消息: “ClientError:在数据路径中找到隐藏文件!请先删除该文件 训练。” S3控制台显示输出路径为空(我还尝试创建一个新目录,但没有成功)。未为bucket启用版本控制 令人惊讶的是,谷歌在这个错误消息下什么也没找到 我
"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>
arn:aws:iam:。这两个csv文件就是全部内容。特别是,没有空的“目录”,这可能就是“隐藏文件”的意思。我想我以前见过这个。。。您能检查一下S3培训和验证地点吗?除了培训和验证文件之外,不应该有任何内容。好的,您在S3Uri
中设置的前缀在这里很重要。根据您的屏幕截图,我认为您的水桶看起来像这样(以树的形式):
根据上面的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"
}
我也有同样的问题,没有隐藏的文件
我用了一连串的训练。PCA,然后我在XGBoost中使用PCA的结果。
我对PCA使用了recordio protobuf格式,并选择了文件扩展名rio。第一次培训(PCA)顺利通过,第二次培训(XGBoost)失败。
删除文件后,第二次培训顺利通过。
然后我决定将文件train.rio重命名为train.bin,现在一切正常
这对我来说有点奇怪。扩展名为rio的文件是一个*隐藏文件**…我也有一个空的“目录”(不是S3的目录),它可能是“隐藏文件”。但事实并非如此。我添加了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"
}