Учебное задание в Sagemaker выдает ошибку при поиске файла в S3 к пути образа докера - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь использовать режим scikit_bring_your_own / container / solution_trees / train, работающий в AWS CLI, у меня не было проблем.При попытке выполнить репликацию в создании учебного задания Sagemaker возникает проблема с загрузкой данных из S3 в путь к образу докера.

В команде CLI мы использовали указание запуска докера -v $ (pwd) / test_dir: / opt / ml --rm $ {изображение} поезд, откуда необходимо указать вход.

В обучающем задании упоминалось местоположение сегмента S3 и путь вывода для артефактов модели.

Ошибка, введенная в исключении, как в train - "container / solution_trees / train" повысить ValueError (('Thereв {} нет файлов. \ n '+' Обычно это указывает на то, что канал ({}) был указан неверно, \ n '+' была неверно указана спецификация данных в S3 или указанная роль \ n '+' не указанаиметь разрешение на доступ к данным. '). format (training_path, channel_name)) Traceback (последний вызов был последним): Файл "/ opt / program / train", строка 55, в поезде "не имеет разрешения на доступ к данным.') .format (training_path, channel_name))

Так что не понимаете, требуется ли какая-либо настройка или отсутствует какой-либо доступ.

любезно помогите

1 Ответ

0 голосов
/ 07 марта 2019

Если вы установите InputDataConfig в API CreateTrainingJob следующим образом:

"InputDataConfig": [ 
  { 
     "ChannelName": "train",
     "DataSource": { 
        "S3DataSource": { 
           "S3DataDistributionType": "FullyReplicated",
           "S3DataType": "S3Prefix",
           "S3Uri": "s3://<bucket>/a.csv"
        }
     },
     "InputMode": "File",
  },
  { 
     "ChannelName": "eval",
     "DataSource": { 
        "S3DataSource": { 
           "S3DataDistributionType": "FullyReplicated",
           "S3DataType": "S3Prefix",
           "S3Uri": "s3://<bucket>/b.csv"
        }
     },
     "InputMode": "File",
  }
]

SageMaker загрузит указанные выше данные из S3 в каталог / opt / ml / input / data / channel_name в контейнере Docker.В этом случае контейнер алгоритма должен иметь возможность находить входные данные в

/opt/ml/input/data/train/a.csv
/opt/ml/input/data/eval/b.csv

. Более подробную информацию можно найти в https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo.html

...