У меня есть контейнер обслуживания TensorFlow в конечной точке SageMaker.Я могу взять пакет изображений в виде массива Numpy и получить прогноз, подобный следующему:
import numpy as np
import sagemaker
from sagemaker.predictor import json_serializer, json_deserializer
image = np.random.uniform(low=-1.0, high=1.0, size=(1,128,128,3)).astype(np.float32)
image = {'instances': image}
image = json_serializer(image)
request_args = {}
request_args['Body'] = image
request_args['EndpointName'] = endpoint_name
request_args['ContentType'] = 'application/json'
request_args['Accept'] = 'application/json'
# works successfully
response = sagemaker_session.sagemaker_runtime_client.invoke_endpoint(**request_args)
response_body = response['Body']
predictions = json_deserializer(response_body, response['ContentType'])
Размер полезной нагрузки request_args
велик, делая это таким образом.Мне интересно, есть ли способ отправить это в более сжатом формате?
Я пытался поэкспериментировать с base64
и json.dumps
, но не могу получить ошибки Invalid argument: JSON Value: ...
.Не уверен, что это не поддерживается или я просто делаю это неправильно.