kan*_*ane 7 tensorflow amazon-sagemaker
我不认为我问这个问题是对的,但我有 jupyter notebook,它使用我编写的 python 训练脚本启动 Tensorflow 训练作业。
该培训脚本需要某些模块。似乎我的 sagemaker 培训工作失败了,因为某些模块不存在。
如何确保我的训练作业脚本具有所需的所有模块?
编辑
这些模块之一的示例是keras.
奇怪的是,我可以import keras在 jupyter 笔记本中,但是当该导入语句在我的训练脚本中时,我会收到No module named keras错误消息
模块脚本在 docker 容器中运行,该容器显然没有安装依赖项。另一方面,Jupyter 笔记本预装了 keras。执行此操作的简单方法是拥有一个包含所有要求的requirements.txt 文件,然后在创建模型时传递该文件。
env = {
'SAGEMAKER_REQUIREMENTS': 'requirements.txt', # path relative to `source_dir` below.
}
sagemaker_model = TensorFlowModel(model_data = 's3://mybucket/modelTarFile,
role = role,
entry_point = 'entry.py',
code_location = 's3://mybucket/runtime-code/',
source_dir = 'src',
env = env,
name = 'model_name',
sagemaker_session = sagemaker_session,
)
Run Code Online (Sandbox Code Playgroud)
如果要安装多个软件包,一种方法是升级到 Sagemaker Python SDK v2。有了这个,您可以requirements.txt在与笔记本相同的目录中创建一个,并运行培训。Sagemaker 将自动处理安装。
如果您想继续使用 v1 SDK,您可以将以下代码段添加到您的 entry_point 脚本中。
import subprocess
import sys
def install(package):
subprocess.check_call([sys.executable, "-q", "-m", "pip", "install", package])
install('keras')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5732 次 |
| 最近记录: |