首页 > 解决方案 > 部署 sagemaker 端点时如何传递环境变量?

问题描述

我正在尝试将参数作为已部署模型的环境变量发送。我运行了超参数调整运行,我想将模型参数之一的字符串传递到部署的端点。

我正在加载我训练有素的 PyTorch 模型:

inference_model = PyTorchModel(
entry_point="inference.py",
source_dir="serve",
role=role,
model_data=model_data_s3_path,
env={'MODEL_ARCHITECTURE': best_architecture_name}, 
framework_version="1.8.1",
py_version="py36",
)

我正在使用“env”在推理过程中尝试抓取它,但是当我使用os.environ['MODEL_ARCHITECTURE']. 我得到一个错误,没有这样的环境变量?我错过了什么?我什至应该以这种方式传递字符串吗?

我也在脚本中使用os.environ['MODEL_ARCHITECTURE']model.py它在inference.py.

我怎样才能传递字符串?我需要这样做(它需要自动化,我不能手动更改模型名称)因为我将把它交给一些人直接运行它并且他们不能手动更改架构姓名。

编辑:我尝试了 SM_ARCHITECTURE_NAME,因为 SageMaker 在训练期间经常将“SM_”添加到环境变量/超参数中,但这也不起作用。

标签: amazon-sagemaker

解决方案


这是将环境变量传递给端点的正确方法。您能否确保您使用的是最新版本的 SageMaker SDK 并再试一次?


推荐阅读