您如何在 sagemaker 培训工作中安装模块?

kan*_*ane 7 tensorflow amazon-sagemaker

我不认为我问这个问题是对的,但我有 jupyter notebook,它使用我编写的 python 训练脚本启动 Tensorflow 训练作业。

该培训脚本需要某些模块。似乎我的 sagemaker 培训工作失败了,因为某些模块不存在。

如何确保我的训练作业脚本具有所需的所有模块?

编辑

这些模块之一的示例是keras.

奇怪的是,我可以import keras在 jupyter 笔记本中,但是当该导入语句在我的训练脚本中时,我会收到No module named keras错误消息

Ram*_*man 5

模块脚本在 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)


Ind*_*ema 5

如果要安装多个软件包,一种方法是升级到 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)