AWS Sagemaker - ClientError: Ошибка загрузки данных

3

Проблема: я пытаюсь настроить модель в Sagemaker, но не получается загрузить данные. Кто-нибудь знает, что я делаю не так?

Что я сделал до сих пор: чтобы избежать каких-либо ошибок на моей стороне, я решил использовать учебник AWS: tenorflow_iris_dnn_classifier_using_estimators

И я сделал только два изменения:

  1. Я скопировал набор данных в свой собственный экземпляр S3. → Я проверил, могу ли я получить доступ/показать данные, и это сработало.
  2. Я отредактировал путь, чтобы указать на новую папку.

Это исходный код AWS: https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-python-sdk/tensorflow_iris_dnn_classifier_using_estimators

%%time
import boto3

# use the region-specific sample data bucket
region = boto3.Session().region_name
#train_data_location = 's3://sagemaker-sample-data-{}/tensorflow/iris'.format(region)
train_data_location = 's3://my-s3-bucket'

iris_estimator.fit(train_data_location)

И это ошибка, которую я получаю:

/home/ec2-user/anaconda3/envs/tensorflow_p27/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc in run_cell_magic(self, magic_name, line, cell)
   2115             magic_arg_s = self.var_expand(line, stack_depth)
   2116             with self.builtin_trap:
-> 2117                 result = fn(magic_arg_s, cell)
   2118             return result
   2119 

<decorator-gen-60> in time(self, line, cell, local_ns)

/home/ec2-user/anaconda3/envs/tensorflow_p27/lib/python2.7/site-packages/IPython/core/magic.pyc in <lambda>(f, *a, **k)
    186     # but it overkill for just that one bit of state.
    187     def magic_deco(arg):
--> 188         call = lambda f, *a, **k: f(*a, **k)
    189 
    190         if callable(arg):

/home/ec2-user/anaconda3/envs/tensorflow_p27/lib/python2.7/site-packages/IPython/core/magics/execution.pyc in time(self, line, cell, local_ns)
   1191         else:
   1192             st = clock2()
-> 1193             exec(code, glob, local_ns)
   1194             end = clock2()
   1195             out = None

<timed exec> in <module>()

/home/ec2-user/anaconda3/envs/tensorflow_p27/lib/python2.7/site-packages/sagemaker/tensorflow/estimator.pyc in fit(self, inputs, wait, logs, job_name, run_tensorboard_locally)
    314                 tensorboard.join()
    315         else:
--> 316             fit_super()
    317 
    318     @classmethod

/home/ec2-user/anaconda3/envs/tensorflow_p27/lib/python2.7/site-packages/sagemaker/tensorflow/estimator.pyc in fit_super()
    293 
    294         def fit_super():
--> 295             super(TensorFlow, self).fit(inputs, wait, logs, job_name)
    296 
    297         if run_tensorboard_locally and wait is False:

/home/ec2-user/anaconda3/envs/tensorflow_p27/lib/python2.7/site-packages/sagemaker/estimator.pyc 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):

/home/ec2-user/anaconda3/envs/tensorflow_p27/lib/python2.7/site-packages/sagemaker/estimator.pyc 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)

/home/ec2-user/anaconda3/envs/tensorflow_p27/lib/python2.7/site-packages/sagemaker/session.pyc in logs_for_job(self, job_name, wait, poll)
   1126 
   1127         if wait:
-> 1128             self._check_job_status(job_name, description, 'TrainingJobStatus')
   1129             if dot:
   1130                 print()

/home/ec2-user/anaconda3/envs/tensorflow_p27/lib/python2.7/site-packages/sagemaker/session.pyc in _check_job_status(self, job, desc, status_key_name)
    826             reason = desc.get('FailureReason', '(No reason provided)')
    827             job_type = status_key_name.replace('JobStatus', ' job')
--> 828             raise ValueError('Error for {} {}: {} Reason: {}'.format(job_type, job, status, reason))
    829 
    830     def wait_for_endpoint(self, endpoint, poll=5):

ValueError: Error for Training job sagemaker-tensorflow-2019-01-03-16-32-16-435: Failed Reason: ClientError: Data download failed:S3 key: s3://my-s3-bucket//sagemaker-tensorflow-2019-01-03-14-02-39-959/source/sourcedir.tar.gz has an illegal char sub-sequence '//' in it
  • 0
    Скрипт ожидает, что bucket будет bucket = Session (). Default_bucket () или ваш собственный. Вы пытались установить ведро равным вашему личному ведру?
  • 0
    @MatthewArthur Коллега Ральфа здесь. Мы пробовали оба, но ваш комментарий заставил нас пересмотреть то, что мы делали. Беда в том, что скрипт не может достичь нашего сегмента S3; использование Session().default_bucket() работает. Мы позволяли вводящему в заблуждение сообщению об ошибке (которое предполагает ошибку в конфигурации пути где-нибудь) помешать правильному устранению проблемы. Можете ли вы написать свой комментарий в качестве ответа, чтобы Ральф мог принять его?
Теги:
tensorflow
amazon-web-services
jupyter
amazon-sagemaker

4 ответа

1
Лучший ответ

Скрипт ожидает, что bucket будет bucket = Session(). Default_bucket() или ваш собственный. Вы пытались установить ведро равным вашему личному ведру?

0

нет. убедитесь, что это просто ваше выходное имя, а не имя сегмента, так что мое было "vanias bucket/results", я изменил его на "Результаты", и это сработало. удачи!

0

у меня было подобное. пришлось изменить просто имя выходного файла, ничего не предшествуя ему, иначе это выдаст мне двойную ошибку '//'. так что просто делай 'my-s3-bucket'

  • 0
    Как это связано с вопросом?
0

Похоже, что полное сообщение об ошибке вы получили там:

ClientError: Data download failed:S3 key: s3://my-s3-bucket//sagemaker-tensorflow-2019-01-03-14-02-39-959/source/sourcedir.tar.gz has an illegal char sub-sequence '//' in it

Проблема сохраняется даже после исправления ключа?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню