Ошибка импорта при выполнении прогнозного обслуживания AWS с использованием образца машинного обучения - PullRequest
2 голосов
/ 23 апреля 2020

Мы пытаемся выполнить и проверить, какие выходные данные предоставляются программой Predictive Maintenance Using Machine Learning на выборочных данных AWS. Мы ссылаемся на прогнозное обслуживание с использованием машинного обучения и AWS Guide для запуска образца шаблона, предоставленного AWS. Шаблон выполнен правильно и мы видим ресурсы в аккаунте. Всякий раз, когда мы запускаем записную книжку sagemaker для данного примера, мы получаем ошибку в журналах CloudWatch следующим образом:

ImportError: cannot import name 'replace_file' on line from mxnet.gluon.utils import download, check_sha1, _get_repo_file_url, replace_file.

Это этап, на котором вызывается учебное задание. Мы попробовали следующие варианты, чтобы решить эту проблему.

  • Обновление модуля m xnet
  • Обновление модуля tenorflow

Но безуспешно.

Заранее спасибо.

Отслеживание ошибок выглядит следующим образом

  File "/usr/lib/python3.5/runpy.py", line 184, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/opt/ml/code/sagemaker_predictive_maintenance_entry_point.py", line 10, in <module>
    import gluonnlp
  File "/usr/local/lib/python3.5/dist-packages/gluonnlp/__init__.py", line 25, in <module>
    from . import data
  File "/usr/local/lib/python3.5/dist-packages/gluonnlp/data/__init__.py", line 23, in <module>
    from . import (batchify, candidate_sampler, conll, corpora, dataloader,
  File "/usr/local/lib/python3.5/dist-packages/gluonnlp/data/question_answering.py", line 31, in <module>
    from mxnet.gluon.utils import download, check_sha1, _get_repo_file_url, replace_file
    ImportError: cannot import name 'replace_file'

1 Ответ

2 голосов
/ 28 апреля 2020

Исправление для этой проблемы разворачивается в официальном решении. Тем временем вы можете внести изменения, описанные здесь в вашей среде SageMaker, следуя приведенным ниже инструкциям:

1) В блокноте измените значение framework_version на 1.6.0.

MXNet(entry_point='sagemaker_predictive_maintenance_entry_point.py',
          source_dir='sagemaker_predictive_maintenance_entry_point',
          py_version='py3',
          role=role, 
          train_instance_count=1, 
          train_instance_type=train_instance_type,
          output_path=output_location,
          hyperparameters={'num-datasets' : len(train_df),
                           'num-gpus': 1,
                           'epochs': 500,
                           'optimizer': 'adam',
                           'batch-size':1,
                           'log-interval': 100},
         input_mode='File',
         train_max_run=7200,
         framework_version='1.6.0')  <- Change this to 1.6.0.

2) Это, скорее всего, все исправит, но просто чтобы убедиться, что у вас нет устаревших пакетов, измените файл requirements.txt.

Вам понадобится открыть терминал в SageMaker. enter image description here изображение взято с https://medium.com/swlh/jupyter-notebook-on-amazon-sagemaker-getting-started-55489f500439

и запущено

cd SageMaker/sagemaker_predictive_maintenance_entry_point/
sudo vim requirements.txt  # (or sudo nano requirements.txt)

Измените содержимое на:

gluonnlp==0.9.1
pandas==0.22

Сохраните его, а затем снова запустите пример.

Не стесняйтесь комментировать и проблему: https://github.com/awslabs/predictive-maintenance-using-machine-learning/issues/6

...