提问人:Hack-R 提问时间:6/6/2019 更新时间:6/8/2019 访问量:703
SageMaker:ClientError:train_lst通道中缺少 .lst 文件。(自定义图像分类)
SageMaker: ClientError: .lst file missing in the train_lst channel. (customized image classification)
问:
问题:
作业在 5 分钟后反复失败,并出现错误
ClientError:train_lst通道中缺少 .lst 文件。
上下文:
在 AWS 控制台中工作时,我有一个图像的二进制分类任务。根据指南,我已经在文件名中标记了这些类。
最终,我开始遇到错误,这些错误表明,对于这种特定算法,需要一个文件来收集标签,因为“内容类型”被指定为图像,这显然需要一个 lst 文件。.lst
示例数据:
我正在尝试匹配我在 StackOverflow 和在线其他地方看到的示例。的当前迭代如下所示:trn_list.lst
292 \t 1 \t dog-292.jpeg
214 \t 1 \t dog-214.jpeg
290 \t 0 \t cat-290.jpeg
288 \t 1 \t dog-288.jpeg
160 \t 1 \t dog-160.jpeg
18 \t 0 \t cat-18.jpeg
215 \t 1 \t dog-215.jpeg
254 \t 1 \t dog-254.jpeg
53 \t 1 \t dog-53.jpeg
337 \t 0 \t cat-337.jpeg
284 \t 0 \t cat-284.jpeg
177 \t 1 \t dog-177.jpeg
192 \t 1 \t dog-192.jpeg
228 \t 0 \t cat-228.jpeg
305 \t 0 \t cat-305.jpeg
258 \t 1 \t dog-258.jpeg
75 \t 0 \t cat-75.jpeg
148 \t 0 \t cat-148.jpeg
268 \t 1 \t dog-268.jpeg
281 \t 1 \t dog-281.jpeg
24 \t 1 \t dog-24.jpeg
328 \t 1 \t dog-328.jpeg
99 \t 1 \t dog-99.jpeg
存储桶没有子文件夹,所以我只是将 .lst 放在
在一次迭代中,我允许创建 .lst 的 R 程序在写出时将其替换为实际的选项卡。在其他迭代中,我将实际的分隔符 () 留在那里。似乎没有影响它(?\t
\t
答:
当您使用 SageMaker 训练作业时,您实际上是在将 Docker 映像部署到 EC2 实例集群。Docker 有一个 python 文件,该文件运行训练代码的方式与在计算机上训练它的方式类似。在训练代码中,当它希望查找数据(例如要训练的图像和用于该训练的元数据)时,您将引用本地文件夹。
“神奇”是如何从 S3 获取数据,以便在本地可用于训练实例。这是使用训练作业配置中的通道定义来完成的。每个通道定义都会在训练实例上创建一个本地文件夹,并将数据从 S3 复制到该本地文件夹。您需要匹配名称以及 S3 位置和文件格式。
以下是 SageMaker 中通道定义的文档: https://docs.aws.amazon.com/sagemaker/latest/dg/API_Channel.html
对于用于图像分类的内置算法的特定示例,如果使用 Image 格式进行训练,请指定 、 和 channels 作为请求参数的值。指定训练和验证通道的单个图像数据(.jpg 或 .png 文件)。在train_lst和validation_lst通道中指定一个 .lst 文件。将所有四个通道的内容类型设置为 。train
validation
train_lst
validation_lst
InputDataConfig
CreateTrainingJob
application/x-image
在此处查看更多详细信息:https://docs.aws.amazon.com/sagemaker/latest/dg/image-classification.html#IC-inputoutput
评论