首页 > 解决方案 > ClientError: lst 应该至少有三个部分,但只有 1 个部分

问题描述

我在学习中使用 SageMaker 进行研究,希望有人可以帮助我。错误我得到 ClientError: lst 应该至少有三个部分,但只有 1 个部分用于 '1 0 class_iphone6splus/i6 (1).jpg'

是否可以仅使用 SageMaker GUI 创建我自己的培训作业?因为我对 AWS 完全陌生......我想使用的内置算法是图像分类。

我有 400 张 JPG 格式的图像用于数据集。这些图像来自两种不同的手机型号,即 iPhone 6s plus 和 iPhone7plus,因此系统会将它们分为两个不同的类别。两个各200。

S3 bucket 在 train 文件夹中,我有两个不同的文件夹来存储这些图像,它们分别是 class_iphone6splus 和 class_iphone7plus 200 一个类。由自己使用notepad ++名称作为data.lst创建的.lst文件与图像一起放在这两个文件夹中,因为我不知道放在哪里。在验证文件夹中,我还将相同的 400 张图像存储到另一个 class_iphone6splus 和 class_iphone7plus 文件夹中,由他们的班级分开。

存储在 .lst 文件中的东西
示例总共是 400 行
1 0 class_iphone6splus/i6 (1).jpg
直到
200 0 class_iphone6splus/i6 (200).jpg

201 1 class_iphone7plus/i7 (1).jpg
直到
400 1 class_iphone7plus/i7 (200).jpg

我是否应该在存储桶中创建两个不同的文件夹来存储 .lst 文件,它们是 train_lst 文件夹和 validation_lst 文件夹。这两个文件夹也应该包含 400 张图片?

资源配置:
实例类型:ml.p2.xlarge
实例数:1
附加存储:5GB

超参数:
num_classes:2
num_training_samples:400
其他参数使用系统默认值。

输入数据配置:
我设置了4个通道,分别是:

1) 训练 S3 位置:s3://datasets-for-testing/train

2)验证S3位置:s3://datasets-for-testing/validation

3) train_lst S3 位置:s3://datasets-for-testing/train

4)validation_lst S3 位置:s3://datasets-for-testing/validation

输入方式:文件 内容类型:application/jpeg 或者使用 application/x-image 会更好

S3 输出路径 s3://datasets-for-testing/output

这些是我在单击“创建培训作业”之前选择的所有配置。

标签: amazon-web-servicesimage-processingamazon-sagemaker

解决方案


我创建了您指定的培训作业并且遇到了相同的错误。要解决错误ClientError: lst 应至少包含三个部分,但只有 1 个部分,请确保文件.lst的格式正确,并使用制表符分隔,如下所示:

5      1   iphone/iphone7_1.jpg
1000   0   iphone/iphone6_1.jpg
22     1   iphone/iphone7_2.jpg

nanoMAC OS X上使用来验证制表符分隔格式。


推荐阅读