使用机器学习示例执行 AWS 预测性维护时出现导入错误
Import error while Executing AWS Predictive Maintenance Using Machine Learning Sample
我们正在尝试在 AWS 示例数据上执行并检查预测性维护使用机器学习提供的输出类型。我们指的是 Predictive Maintenance Using Machine Learning and 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.
这是调用训练作业的阶段。我们已经尝试了以下选项来解决该问题。
- 正在升级 mxnet 模块
- 升级tensorflow模块
但是没有成功。
提前致谢。
错误回溯如下
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'
正在将此问题的修复程序部署到官方解决方案中。同时,您可以按照以下说明在 SageMaker 环境中进行 here 所述的更改:
1) 在notebook中,请将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 中打开一个终端。
图片来自 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
我们正在尝试在 AWS 示例数据上执行并检查预测性维护使用机器学习提供的输出类型。我们指的是 Predictive Maintenance Using Machine Learning and 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.
这是调用训练作业的阶段。我们已经尝试了以下选项来解决该问题。
- 正在升级 mxnet 模块
- 升级tensorflow模块
但是没有成功。
提前致谢。
错误回溯如下
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'
正在将此问题的修复程序部署到官方解决方案中。同时,您可以按照以下说明在 SageMaker 环境中进行 here 所述的更改:
1) 在notebook中,请将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 中打开一个终端。
和运行
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