【问题标题】:Invalid .lst file in sagemakersagemaker 中的 .lst 文件无效
【发布时间】:2018-11-20 16:39:13
【问题描述】:

我的 S3 存储桶的文件夹结构是:

Bucket
    ->training-set
           ->medium
                 ->    img1.jpeg
                 ->    img2.jpeg
                 ->    img3.PNG

我的 training-set.lst 文件如下所示:

1  \t 1  \t medium/img1.jpeg
2  \t 1  \t medium/img2.jpeg
3  \t 1  \t medium/img3.PNG

我使用 excel 表创建了这个。

错误: 训练失败并出现以下错误:ClientError: Invalid lst file: training-set.lst

   "InputDataConfig": [
        {
          "ChannelName": "train",
          "CompressionType": "None",
          "ContentType": "application/x-image",
          "DataSource": {
            "S3DataSource": {
              "S3DataDistributionType": "FullyReplicated",
              "S3DataType": "S3Prefix",
              "S3Uri": 's3://{}/training-set/'.format(bucket)
            }
          },
          "RecordWrapperType": "None"
        },
        {
          "ChannelName": "validation",
          "CompressionType": "None",
          "ContentType": "application/x-image",
          "DataSource": {
            "S3DataSource": {
              "S3DataDistributionType": "FullyReplicated",
              "S3DataType": "S3Prefix",
              "S3Uri": 's3://{}/test-set/'.format(bucket)
            }
          },
          "RecordWrapperType": "None"
        },
        {
          "ChannelName": "train_lst",
          "CompressionType": "None",
          "ContentType": "application/x-image",
          "DataSource": {
            "S3DataSource": {
              "S3DataDistributionType": "FullyReplicated",
              "S3DataType": "S3Prefix",
              "S3Uri": "s3://bucket/training-set/training-set.lst"
            }
          },
          "RecordWrapperType": "None"
        },
        {
          "ChannelName": "validation_lst",
          "CompressionType": "None",
          "ContentType": "application/x-image",
          "DataSource": {
            "S3DataSource": {
              "S3DataDistributionType": "FullyReplicated",
              "S3DataType": "S3Prefix",
              "S3Uri": "s3://bucket/test-set/test-set.lst"
            }
          },
          "RecordWrapperType": "None"
        }
    ]

我正在尝试在 Amazon Sagemaker 中使用它。但我无法做到这一点。有人可以帮忙吗?

【问题讨论】:

  • 我相信这是来自格式错误的 .lst 文件,例如从 IDE 写出时,\t 可能已转换为实际的制表符空间

标签: amazon-web-services amazon-s3 image-recognition amazon-sagemaker


【解决方案1】:

您能否发布您正在使用的 lst 文件,查看您需要在 S3 存储桶中文件夹层次结构顶部放置制表符分隔文件的文档。下面是我构建的花卉分类示例中的 train_set.lst 文件示例:

1   0   daisy/754296579_30a9ae018c_n.jpg
2   1   dandelion/18089878729_907ed2c7cd_m.jpg
3   1   dandelion/284497199_93a01f48f6.jpg
4   1   dandelion/3554992110_81d8c9b0bd_m.jpg
5   0   daisy/4065883015_4bb6010cb7_n.jpg

请注意,序列索引(第一列)是必需的,并且您的分类问题的类需要用数字编码(从零开始)。

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    您的问题没有明确说明这一点 - 但根据您对问题的描述,我假设您尝试使用 SageMaker 图像分类算法 (https://docs.aws.amazon.com/sagemaker/latest/dg/image-classification.html) 是否正确?

    您能否通过下载“s3://bucket/training-set/training-set.lst”(不要使用您拥有的本地副本)并检查此文件的内容来仔细检查 - 不要使用 Excel 打开它,用文本编辑器打开它并检查格式是否符合上面记录的规范 - 特别是我要确保文件不是以非标准编码编码的(它应该是 UTF8)和没有多余的制表符或空格。

    还可以查看您的培训工作日志,那里可能有更多关于问题所在的线索。

    【讨论】:

    • 感谢您的帮助。我检查了日志。日志显示“将 lst 文件转换为 recordio 时出错 - lst 至少应包含三个部分,但 ['1\\t1\\tmedium/img1.jpeg'] 只有 1 个部分”。我对此一无所知。
    猜你喜欢
    • 2019-10-23
    • 2015-09-09
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 2019-02-14
    相关资源
    最近更新 更多