次のコード例を使って、モデルのトレーニングに使ったフレームワークに応じてデプロイされたサービスから推論をリクエストします。異なるフレームワークのコード例は似ています。主な違いは、TensorFlow ではコンテンツタイプとして application/json
が求められることです。
PyTorch と MXNet
PyTorch v1.4 以降 または MXNet 1.7.0 以降を使っており、Amazon SageMaker エンドポイントが InService
である場合、SageMaker SDK for Python の predictor
パッケージを使って推論リクエストを行えます。
注記
その API は SageMaker SDK for Python のバージョンによって異なります。
-
バージョン 1.x の場合は、
RealTimePredictor
API と Predict
API を使用します。
次のコード例は、これらの API を使って推論用のイメージを送信する方法を示しています。
from sagemaker.predictor import RealTimePredictor
endpoint = 'insert name of your endpoint here'
# Read image into memory
payload = None
with open("image.jpg", 'rb') as f:
payload = f.read()
predictor = RealTimePredictor(endpoint=endpoint, content_type='application/x-image')
inference_response = predictor.predict(data=payload)
print (inference_response)
TensorFlow
次のコード例は、SageMaker Python SDK API を使って推論用のイメージを送信する方法を示しています。
from sagemaker.predictor import Predictor
from PIL import Image
import numpy as np
import json
endpoint = 'insert the name of your endpoint here'
# Read image into memory
image = Image.open(input_file)
batch_size = 1
image = np.asarray(image.resize((224, 224)))
image = image / 128 - 1
image = np.concatenate([image[np.newaxis, :, :]] * batch_size)
body = json.dumps({"instances": image.tolist()})
predictor = Predictor(endpoint)
inference_response = predictor.predict(data=body)
print(inference_response)