如何在Amazon SageMaker Notebook中关联已创建的Endpoint实现预测
实现方案
直接使用SageMaker SDK内置的Predictor类绑定已有Endpoint即可完全复现原有predictor.predict()的调用逻辑,无需重新部署Endpoint。
通用适配代码
适用于所有自定义模型部署的Endpoint:
import sagemaker from sagemaker.predictor import Predictor # 替换为你首次部署时使用的序列化、反序列化器,常见可选为CSVSerializer/JSONSerializer/NumpySerializer等 from sagemaker.serializers import CSVSerializer from sagemaker.deserializers import JSONDeserializer # 填入你已创建的Endpoint名称 endpoint_name = "你的实际Endpoint名称" predictor = Predictor( endpoint_name=endpoint_name, sagemaker_session=sagemaker.Session(), serializer=CSVSerializer(), deserializer=JSONDeserializer() )
配置完成后即可直接调用predictor.predict(data)执行预测,和首次部署生成的predictor行为完全一致。
框架专属适配代码
如果你的模型是基于SageMaker内置框架(Scikit-learn、PyTorch、TensorFlow等)训练部署的,可以直接使用对应框架的Predictor类,无需手动配置序列化/反序列化规则:
示例:Scikit-learn模型Endpoint绑定
from sagemaker.sklearn import SKLearnPredictor predictor = SKLearnPredictor(endpoint_name="你的实际Endpoint名称")
示例:PyTorch模型Endpoint绑定
from sagemaker.pytorch import PyTorchPredictor predictor = PyTorchPredictor(endpoint_name="你的实际Endpoint名称")
注意事项
- 当前Notebook使用的IAM角色需要拥有目标Endpoint的
sagemaker:InvokeEndpoint权限,否则会触发权限报错 - 通用适配场景下,序列化、反序列化器的选择必须和首次部署Endpoint时的配置一致,否则会因输入输出格式不匹配导致预测失败
- 若遗忘原有序列化配置,可到SageMaker控制台的Endpoint详情页查看对应模型的配置参数,或测试常用的序列化/反序列化组合即可
内容的提问来源于stack exchange,提问作者Htin Aung Lu
相关产品推荐
相关产品推荐

