1

我使用存储在 S3 中的 csv 文件创建了一个 K-means 训练作业。过了一会儿,我收到以下错误:

Training failed with the following error: ClientError: Rows 1-5000 in file /opt/ml/input/data/train/features have more fields than than expected size 3.

我的文件可能有什么问题?

这是我传递给 sagemaker.create_training_job 的参数

        TrainingJobName=job_name,
        HyperParameters={
            'k': '2',
            'feature_dim': '2'
        },
        AlgorithmSpecification={
            'TrainingImage': image,
            'TrainingInputMode': 'File'
        },
        RoleArn='arn:aws:iam::<my_acc_number>:role/MyRole',
        OutputDataConfig={
            "S3OutputPath": output_location
        },
        ResourceConfig={
            'InstanceType': 'ml.m4.xlarge',
            'InstanceCount': 1,
            'VolumeSizeInGB': 20,
        },
        InputDataConfig=[
            {
                'ChannelName': 'train',
                'ContentType': 'text/csv',
                "CompressionType": "None",
                "RecordWrapperType": "None",
                'DataSource': {
                    'S3DataSource': {
                        'S3DataType': 'S3Prefix',
                        'S3Uri': data_location,
                        'S3DataDistributionType': 'FullyReplicated'
                    }
                }
            }
        ],
        StoppingCondition={
            'MaxRuntimeInSeconds': 600
        }
4

2 回答 2

2

我已经看到在进行无监督学习时会出现这个问题,例如上面使用聚类的示例。如果您有 csv 输入,您还可以通过label_size=0在 InputDataConfig 分支中设置 Sagemaker API 调用的 ContentType 参数来解决此问题。

以下是调用的相关部分的示例:

"InputDataConfig": [
    {
        "ChannelName": "train",
        "DataSource": {
            "S3DataSource": {
                "S3DataType": "S3Prefix",
                "S3Uri": "some/path/in/s3",                       
                "S3DataDistributionType": "ShardedByS3Key"
            }
        },
        "CompressionType": "None",
        "RecordWrapperType": "None",
        "ContentType": "text/csv;label_size=0"
    }
]
于 2018-11-02T19:15:27.020 回答
0

确保您的 .csv 没有列标题,并且标签是第一列。还要确保你的超参数值是准确的,即 feature_dim 表示你的集合中的特征数量。如果你给它错误的值,它会坏掉。

以下是 sagemaker knn 超参数及其含义的列表:https ://docs.aws.amazon.com/sagemaker/latest/dg/kNN_hyperparameters.html

于 2020-04-01T18:38:53.373 回答