如何加载Sagemaker中没有的python模块?

时间:2018-04-05 06:09:20

标签: amazon-web-services amazon-sagemaker

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

2 个答案:

答案 0 :(得分:7)

创建模型时,可以将requirements.txt指定为环境变量。

对于Eg。

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容器之后运行需求文件,然后再运行其中的任何代码。

答案 1 :(得分:2)

来自拉曼的好答案。我想添加另一种在训练实例中指定所需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