スポンサーリンク
SageMakerのエンドポイントを簡単に機械学習の推論結果を返すAPIを作成することができます。
調べて出てくるもののほとんどが、csvで形式での連携だったので、json形式のやり方をご紹介します。
スポンサーリンク
Contents
SageMakerのエンドポイントをjsonで叩く
ソースコードをはこのようになります。
import json
import boto3
client = boto3.client('sagemaker-runtime')
def predict():
response = client.invoke_endpoint(
EndpointName='sagemakerのエンドポイント名',
Body=json.dumps({
"instances": "値"
}),
ContentType='application/json'
)
body = response['Body']
print(json.load(body))
SageMaker runtimeのソースコードを解説
boto3(sagemaker-runtime)を使う
import boto3
client = boto3.client('sagemaker-runtime')
AWSのサービスをPythonで使う場合、boto3というSDKを利用します。
boto3の中にSageMakerのエンドポイントを実行する「sagemaker-runtime」を使います。
invoke_endpointを使う
sagemaker-runtimeには、いくつかメソッドが用意されています。
エンドポイントを実行するメソッドは、invoke_endpointです。
invoke_endpointを実行すると、SageMaker上で動いている推論用コンテナのinvoketionが実行されます。
response = client.invoke_endpoint(
EndpointName='sagemakerのエンドポイント名',
Body=json.dumps({
"instances": "値"
}),
ContentType='application/json'
)
まとめ
処理はかなりシンプルです。
SageMakerはエンドポイントを作成してしまえば、あとは簡単です。
SageMakerの学習や推論部分を知りたい方はこちらの記事をどうぞ!
スポンサーリンク
スポンサーリンク