自動モデル再ロードによる動的形状

注: この機能は非推奨です。代わりにモデルの動的形状を使用してください。

はじめに

このガイドでは、さまざまな形式の入力データを受け入れるようにモデルを構成する方法について説明します。この例では、現在設定されているものとは異なる形状の要求を受信するたびに、新しい形状でモデルを再ロードすることで行われます。

shape パラメーターを auto に設定して、モデルのリロードによる動的形状を有効にします。動的バッチサイズを構成して使用するには以下を利用します。

face_detection.py スクリプトで face_detection_retail_0004 モデルを使用すると、画像が再ロードされ、希望する幅と高さにサイズ変更されます。次に、サーバーからの出力が処理され、予測された顔の周囲に境界ボックスがある推論結果が表示されます。

ステップ

OpenVINO™ モデルサーバー GitHub リポジトリーのクローンを作成し、model_server ディレクトリーに移動します。

git clone https://github.com/openvinotoolkit/model_server.git
cd model_server

事前トレーニング済みモデルをダウンロード

モデルファイルをダウンロードして、models ディレクトリーに保存します。

mkdir -p models/face_detection/1
curl https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/3/face-detection-retail-0004/FP32/face-detection-retail-0004.bin https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/3/face-detection-retail-0004/FP32/face-detection-retail-0004.xml -o models/face_detection/1/face-detection-retail-0004.bin -o models/face_detection/1/face-detection-retail-0004.xml

最新モデルのサーバーイメージをプル

OpenVINO™ モデルサーバーの最新バージョンを Docker Hub から取得します。

docker pull openvino/model_server:latest

モデルと動的バッチサイズを使用してモデル・サーバー・コンテナを起動

前の手順で取得したイメージでコンテナを起動し、models ディレクトリーをマウントします。

docker run --rm -d -v $(pwd)/models:/models -p 9000:9000 openvino/model_server:latest --model_name face-detection --model_path /models/face_detection --shape auto --port 9000

クライアントの実行

cd demos/face_detection/python
virtualenv .venv
. .venv/bin/activate
pip install -r ../../common/python/requirements.txt
mkdir results_500x500

python face_detection.py --grpc_port 9000 --width 500 --height 500 --input_images_dir ../../common/static/images/people --output_dir results_500x500

mkdir results_600x400

python face_detection.py --grpc_port 9000 --width 600 --height 400 --input_images_dir ../../common/static/images/people --output_dir results_600x400

クライアントの実行結果は、--output_dir によって指定されたディレクトリーに保存されます。

注: モデルのリロードには時間がかかり、リロードのたびに新しい要求がキューに投入されます。モデルを頻繁にリロードすると、全体のパフォーマンスに悪影響を及ぼす可能性があります。