amazon-sagemaker - sagemaker xgboost 输出为 JSON
问题描述
我是 AWS sagemaker 的新手,并试图做一个简单的测试,我试图调用 xgboost 模型。
xgboost_container = sagemaker.image_uris.retrieve("xgboost", 'us-east-1', "1.2-1")
创建模型和端点:
from sagemaker.serializers import JSONSerializer
endp_name ="myendpoint"
acc_model = sm_model.deploy(initial_instance_count=1,
instance_type='ml.m5.4xlarge',
endpoint_name=endp_name,
serializer=JSONSerializer(),
deserializer= sagemaker.deserializers.JSONDeserializer()
)
创建预测器实例:
from sagemaker.predictor import Predictor
from sagemaker.serializers import CSVSerializer, JSONSerializer
sess = sagemaker.Session()
payload ={
"var1":1,
"var2":2,
"var3":3,
"var4":0,
"var5":4,
"var6":0,
"var7":5,
"var8":45,
}
predictor = Predictor(
endpoint_name=endp_name, sagemaker_session=sess, serializer=JSONSerializer(),
deserializer=JSONSerializer() )
然后预测:
predictor.predict(payload)
我希望 predictor.predict 的输出是 JSON 格式,但是当我运行它时,我得到了这个。
需要做什么才能看到输出为 JSON?
解决方案
请使用 JSON Deserializer 而不是如下所示JSONSerializer
的选项。deserializer
这实现了反序列化从推理端点返回的数据的方法。记录在这里
predictor = Predictor(
endpoint_name=endp_name, sagemaker_session=sess, serializer=JSONSerializer(),
deserializer= JSONDeserializer())
推荐阅读
- python - Keras 在自定义损失函数中访问单个值
- html - 在取消聚焦 textarea 之前单击按钮不起作用
- google-apps-script - 编辑时未触发 Google Apps 脚本
- ruby - Jenkins自动化测试下载文件错误
- python - 我正在尝试从 pip 安装 setupfiles 包
- c# - Bot Builder:更改提示对话框的“识别”选项
- javascript - 什么是 Javascript [[Environment]] 属性?
- regex - 在 Bash 中使用正则表达式拆分大块文本
- react-native - 来自反应本机应用程序的 SOAP API
- python-3.x - ETA 在 GridSearchCV ScikitLearn 中代表什么?