kan*_*ane 3 keras tensorflow amazon-sagemaker
我有一个带有标准模板代码的 jupyter 笔记本,就像这样
从 sagemaker.tensorflow 导入 TensorFlow
import sagemaker
from sagemaker import get_execution_role
sagemaker_session = sagemaker.Session()
role = get_execution_role()
tf_estimator = TensorFlow(entry_point='sagemaker_predict_2.py', role=role,
training_steps=10000, evaluation_steps=100,
train_instance_count=1, train_instance_type='ml.p2.xlarge',
framework_version='1.10.0')
tf_estimator.fit('s3://XXX-sagemaker/XXX')
Run Code Online (Sandbox Code Playgroud)
这开始很好,但最终会引发错误
2018-11-27 06:21:12 Starting - Starting the training job...
2018-11-27 06:21:15 Starting - Launching requested ML instances.........
2018-11-27 06:22:44 Starting - Preparing the instances for training...
2018-11-27 06:23:35 Downloading - Downloading input data...
2018-11-27 06:24:03 Training - Downloading the training image......
2018-11-27 06:25:12 Training - Training image download completed. Training in progress..
2018-11-27 06:25:11,813 INFO - root - running container entrypoint
2018-11-27 06:25:11,813 INFO - root - starting train task
2018-11-27 06:25:11,833 INFO - container_support.training - Training starting
2018-11-27 06:25:15,306 ERROR - container_support.training - uncaught exception during training: No module named keras
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/container_support/training.py", line 36, in start
fw.train()
File "/usr/local/lib/python2.7/dist-packages/tf_container/train_entry_point.py", line 143, in train
customer_script = env.import_user_module()
File "/usr/local/lib/python2.7/dist-packages/container_support/environment.py", line 101, in import_user_module
user_module = importlib.import_module(script)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/opt/ml/code/sagemaker_predict_2.py", line 7, in <module>
import keras
ImportError: No module named keras
Run Code Online (Sandbox Code Playgroud)
我sagemaker_predict_2.py需要其中一些库:
import pandas as pd
import numpy as np
import sys
import keras
from keras.models import Model, Input
from keras.layers import LSTM, Embedding, Dense, TimeDistributed, Dropout, Bidirectional
from keras.wrappers.scikit_learn import KerasClassifier
from keras_contrib.layers import CRF
Run Code Online (Sandbox Code Playgroud)
我想导入pandasand没有问题numpy,但是导入keras. 我以为keras是笔记本中的标准。当我启动这个脚本时,它是否有其他一些未初始化的环境?
另外,我认为keras_contrib这不是标准的,所以我需要一种方法来安装它。我怎么做?
我!pip install keras在上面的单元格中尝试过,但它报告了Requirement already satisfied,所以看起来我的 jupyter 环境有这个库。但是启动sagemaker_predict_2.py必须在不同的环境中?
小智 6
你是对的。sagemaker_predict_2.py 在与笔记本实例不同的环境中运行。该特定代码在我们预定义的 TensorFlow Docker 容器内执行的 SageMaker 上运行。
在 notebook 实例中安装依赖项将只允许访问 notebook 内核中已安装的库。
至于在正在运行的 Docker 容器内安装您的依赖项,可以通过在requirements.txt 中指定您的依赖项来实现。
由于迭代可能需要 8-10 分钟,建议使用本地模式以确保您的训练作业可以在本地运行,然后再将训练作业发送到 SageMaker。这可以通过将 training_instance_type 指定为“本地”来完成,或者请参考此笔记本:https : //github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/tensorflow_distributed_mnist/tensorflow_local_mode_mnist.ipynb
本地模式的作用本质上是在执行 Python 代码的本地主机上运行您的 docker 容器。这可以在我们的 SageMaker 笔记本实例或您自己的本地机器上。
| 归档时间: |
|
| 查看次数: |
3372 次 |
| 最近记录: |