FastAPIとDockerを使用してPyTorchモデルを提供する
PyTorchモデルを提供するためのFastAPIとDockerの活用法
完全な機械学習サービスの開発方法を学ぶ
紹介
個人の機械学習/ディープラーニングプロジェクトに取り組むことは非常に楽しいです。夜には、ラップトップの前で好きなことをコーディングしたり、面白い論文を読んだりしますし、締切に追われることもありません。私たちはみんな、プログラミングは仕事のためにやらない限り、良いものだと知っています! 😂
とにかく、個人プロジェクトであっても、あなたが行ったことが他の人々にも利用されるようになると、最大の満足感を得ることができます。したがって、他の人々にモデルを提供し、それを実現するための適切なツールを学ぶ必要があります。この記事では、PyTorchを使用して開発されたディープラーニングモデルを、FastAPIとDockerを使用して提供する方法を示します。
FastAPIを使用してサーバーをセットアップする
まず、コンピュータビジョンモデルを作成します。このモデルは、猫の画像と魚の画像を認識できるようになります。これを行うために、ResNet50タイプの事前学習済みネットワークを使用し、最後の分類層を変更して出力を2値にします。
次のコードをmodel.pyというファイルに入れました。
from torchvision import modelsimport torch.nn as nnCatfishClasses = ["猫", "魚"]CatfishModel = models.resnet50()CatfishModel.fc = nn.Sequential( nn.Linear(CatfishModel.fc.in_features, 500), nn.ReLU(), nn.Dropout(), nn.Linear(500, 2))
FastAPIを使用してクライアントが接続できるようにサーバーをインスタンス化します。
from PIL import Imagefrom torchvision import transformsimport torchimport osfrom fastapi import FastAPIfrom fastapi.responses import JSONResponsefrom .model import CatfishModel, CatfishClassesfrom io import BytesIOfrom fastapi import HTTPExceptionimport requestsapp = FastAPI()def open_image(image_path): # ここに必要な画像前処理ロジックを追加してください image = Image.open(image_path) return imagedef load_model(): return [email protected]("/")def status(): return {"status"…
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles