AWS Sagemaker | Как отладить изображение докера | Какой параметр мы передаем

Мы хотим загрузить изображение Docker, которое имеет наш собственный код для tenorflow, теперь мы следуем этому стандартному коду https://github.com/awslabs/amazon-sagemaker-examples/blob/master/advanced_functionality/tensorflow_bring_your_own/tensorflow_bring_your_own.ipynb

Мы можем загрузить докер туда с нашей зависимостью, но мы не можем передать местоположение S3 их методу, теперь мы не уверены, передается ли местоположение S3 в контейнер или нет добавленной печати, которая не печатает на sagemaker. Может кто-нибудь помочь, пожалуйста, как отладить докер, так как пользовательский журнал также не доступен в cloudwatch.

018-11-30 09:55:17 Uploading - Uploading generated training model
2018-11-30 09:55:17 Failed - Training job failed
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-17-5fc1c1e7ed65> in <module>()
     11                       hyperparameters=hyperparameters)
     12 
---> 13 estimator.fit(data_location)
     14 
     15 # predictor = estimator.deploy(1, instance_type)

~/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/sagemaker/estimator.py in fit(self, inputs, wait, logs, job_name)
    232         self.latest_training_job = _TrainingJob.start_new(self, inputs)
    233         if wait:
--> 234             self.latest_training_job.wait(logs=logs)
    235 
    236     def _compilation_job_name(self):

~/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/sagemaker/estimator.py in wait(self, logs)
    571     def wait(self, logs=True):
    572         if logs:
--> 573             self.sagemaker_session.logs_for_job(self.job_name, wait=True)
    574         else:
    575             self.sagemaker_session.wait_for_job(self.job_name)

~/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/sagemaker/session.py in logs_for_job(self, job_name, wait, poll)
   1121 
   1122         if wait:
-> 1123             self._check_job_status(job_name, description, 'TrainingJobStatus')
   1124             if dot:
   1125                 print()

~/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/sagemaker/session.py in _check_job_status(self, job, desc, status_key_name)
    821             reason = desc.get('FailureReason', '(No reason provided)')
    822             job_type = status_key_name.replace('JobStatus', ' job')
--> 823             raise ValueError('Error for {} {}: {} Reason: {}'.format(job_type, job, status, reason))
    824 
    825     def wait_for_endpoint(self, endpoint, poll=5):

ValueError: Error for Training job tensor-2018-11-30-09-52-12-964: Failed Reason: AlgorithmError: Exception during training: Return Code: 1, CMD: ['/usr/bin/python', 'cifar10.py', '--model-dir', '/opt/ml/model', '--train-steps', '100'], Err: b'/usr/local/lib/python3.5/dist-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n  from ._conv import register_converters as _register_converters\nTraceback (most recent call last):\n  File "cifar10.py", line 195, in <module>\n    main()\n  File "cifar10.py", line 188, in main\n    interactions_processed, user_meta_processed, item_meta_processed, item_feats_set = process_data(interaction_data, interaction_cols, users_meta, users_meta_cols, items_meta, items_meta_cols, user_meta_filterlist=user_meta_list)\n  File "cifar10.py", line 32, in process_data\n    df=pd.read_csv(interaction_data, engine=\'c\', encoding=\'latin1\', usecols=interaction_cols).astype(str)\n  File "/usr/local/lib/python3.5/d

0 ответов

Глядя на ваше сообщение об ошибке, кажется, что это проблема, которой нет в исходном примере, которому вы следовали.

Для диагностики и отладки этого может потребоваться немного больше информации в отношении вашего файла cifar10.py, поскольку предоставленная трассировка стека не соответствует исходному файлу cifar10.py в примере: https://github.com/awslabs/amazon-sagemaker-examples/blob/master/advanced_functionality/tensorflow_bring_your_own/container/cifar10/cifar10.py

Кроме того, я понимаю, что итерация может быть невероятно медленной, поэтому я рекомендую использовать локальный режим для ускорения итераций перед производством в SageMaker. Приведенный выше пример записной книжки цитирует это, и это можно сделать, используя "local" в качестве значения для train_instance_type или instance_type для обучения / хостинга.

Работает ли ваш пример с вашим набором данных, предоставленным из локального каталога (file:///)?

Если это так, однако не работает в SageMaker, это может быть потому, что вы не ожидаете, что ваш набор данных будет в правильном каталоге. SageMaker отправит ваши данные в определенный канал, как указано здесь: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo.html

Пожалуйста, дайте мне знать, если есть что-то, что я могу уточнить.

Другие вопросы по тегам