如何加载 Sagemaker 中不可用的 python 个模块?

How do I load python modules which are not available in Sagemaker?

我想安装 spacy,它不是 Sagemaker 平台的一部分。我该如何 pip 安装它?

创建模型时,可以将 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,
                                 )

这将确保在创建 docker 容器之后 运行 在其上 运行 添加任何代码之前,需求文件是 运行。

Raman 的回答很棒。我想在训练实例中添加另一种指定所需 python 模块的方法,以防有人在看。

tf_estimator = TensorFlow(entry_point='tf-train.py', role='SageMakerRole',
                          training_steps=10000, evaluation_steps=100,
                          train_instance_count=1,
                          source_dir='./',
                          requirements_file='requirements.txt',
                          train_instance_type='ml.p2.xlarge')

source_dirrequirements_file 都必须定义才能工作。 该路径与笔记本实例有关。如果 requirements.txt 与笔记本在同一目录下,则只需使用 './'

文档是 here