amazon-sagemaker - 部署 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_”添加到环境变量/超参数中,但这也不起作用。
解决方案
这是将环境变量传递给端点的正确方法。您能否确保您使用的是最新版本的 SageMaker SDK 并再试一次?
推荐阅读
- django - Factory Boy:如何根据参数设置条件 SubFactory() 属性
- c# - C# SQL - 搜索地址,如果没有找到插入地址与数据库中已知的街道记录
- processing - 如何使用 controlP5 中的制表键从一个控件切换到另一个控件?
- xslt-1.0 - XPTY0004:使用 saxon templatefactory 加载 xslt 时,不允许空序列作为变量的值
- javascript - 如何让机器人在多个嵌入中发送 2000 多个字符
- kubernetes - Kubernetes,接入服务(Zookeeper)
- c# - 需要解释 blob 的异步文件下载行为
- c# - C#方法如何改变参数的值
- mysql - 如何在php中从mysql数据库中的不同表中选择特定列
- c# - EF Core - 硬编码外键