SageMaker: ClientError: в канале train_lst отсутствует файл .lst. (индивидуальная классификация изображений) - PullRequest
0 голосов
/ 05 июня 2019

Проблема:

Задания многократно завершаются через 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 на

За одну итерацию я разрешил Rпрограмма, которая создает .lst для замены \t на фактические вкладки при записи.В других итерациях я оставил фактические разделители (\t) там.Похоже, это не повлияло (?).

1 Ответ

1 голос
/ 07 июня 2019

Когда вы используете учебные задания SageMaker, вы фактически развертываете образ Docker в кластере экземпляров EC2. В Docker есть файл python, который выполняет обучающий код аналогично тому, как вы тренируете его на своей машине. В учебном коде вы имеете в виду локальные папки, когда он ожидает найти такие данные, как изображения для обучения и метаданные для использования в этом обучении.

«Волшебство» заключается в том, как получить данные из S3, чтобы они были доступны локально для учебных экземпляров. Это делается с помощью определения каналов в конфигурации вашей учебной работы. Каждое определение канала создает локальную папку в обучающем экземпляре и копирует данные из S3 в эту локальную папку. Вам необходимо сопоставить имена, расположение и форматы файлов S3.

Вот документация определения канала в SageMaker: https://docs.aws.amazon.com/sagemaker/latest/dg/API_Channel.html

Для конкретного примера встроенного алгоритма классификации изображений и если вы используете формат изображения для обучения, укажите train, validation, train_lst и validation_lst каналы в качестве значений для InputDataConfig параметр запроса CreateTrainingJob. Укажите отдельные данные изображения (файлы .jpg или .png) для поезда и каналов проверки. Укажите один файл .lst в каждом из каналов train_lst и validation_lst. Установите тип контента для всех четырех каналов на application/x-image.

Подробнее здесь: https://docs.aws.amazon.com/sagemaker/latest/dg/image-classification.html#IC-inputoutput

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...