我使用 Sagemaker 笔记本启动conda_python3
内核,并遵循example笔记本用于随机砍伐森林.
截至撰写本文时,Sagemaker SDK附带conda_python3
版本是1.72.0,但是我想使用新功能,所以我更新我的笔记本以使用最新的
%%bash
pip install -U sagemaker
我看到它更新了。
print(sagemaker.__version__)
# 2.4.1
从版本 1.x 到 2.x 的更改是序列化器/解串器类
以前(在版本 1.72.0 中)我会更新预测器以使用正确的序列化器/反序列化器,并且可以在我的模型上运行推理
from sagemaker.predictor import csv_serializer, json_deserializer
rcf_inference = rcf.deploy(
initial_instance_count=1,
instance_type='ml.m4.xlarge',
)
rcf_inference.content_type = 'text/csv'
rcf_inference.serializer = csv_serializer
rcf_inference.accept = 'application/json'
rcf_inference.deserializer = json_deserializer
results = rcf_inference.predict(some_numpy_array)
(请注意,这一切都来自example
我尝试使用 sagemaker 2.4.1 复制此内容,如下所示
from sagemaker.deserializers import JSONDeserializer
from sagemaker.serializers import CSVSerializer
rcf_inference = rcf.deploy(
initial_instance_count=1,
instance_type='ml.m5.xlarge',
serializer=CSVSerializer,
deserializer=JSONDeserializer
)
results = rcf_inference.predict(some_numpy_array)
我收到一个错误
TypeError: serialize() missing 1 required positional argument: 'data'
我知道我错误地使用了串行器/解串器,但找不到关于如何使用它的良好文档