ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

SageMakerで遊ぶメモ#2

スポンサードリンク

trainしてs3にアップされたモデルをデプロイするコード

from boto3.session import Session


class SagemakerClient:

    def __init__(self):
        self.client = Session().client("sagemaker", region_name="us-west-2")

    def create_model(self, model_data_url):

        model_params = {
            "ExecutionRoleArn": "hogehoge-fugafuga:role/aipa-sagemaker-train", 
            "ModelName": "sample-model", # モデル名
            "PrimaryContainer": {
                "Image": "hogehoge-fugafuga.com/aipa-sagemaker-test", # ECRにプッシュしたイメージURL
                "ModelDataUrl": model_data_url # モデルデータが格納されているS3のパス
            }
        }

        self.client.create_model(**model_params)


if __name__ == '__main__':
    model_data_url = 's3://aipa-hogehoge-fugafuga-train/output-data/sample-training2/output/model.tar.gz'
    SagemakerClient().create_model(model_data_url)

ここから推論ってどうするんや・・・・?って気になったので調べてたら下記が参考になった(考え方ね)

qiita.com

そもそも、チュートリアルにあるnginx.confとかwsgi.pyってなんで???なしてFlask使っているの???って思ってたけど、エンドポイントでの通信はHTTPで行われるので、登録するDocker imageではFlaskやnginx等の設定が必要とのこと。webのミドルウェアwsgiを使えない人には厳しそう。。。コピペするだけで良いとは思うけど

dev.classmethod.jp