colaboratoryで学習させて、その結果を使って手元で推論させるところまでは前回書いた
efficientnetで推論させてみる - MEMOcho-
今回は学習済みモデルをサーバの形にして使うようにしてみたのでメモ
flaskを使って超簡易サーバを立てて使うことにした。実装したserverとclientのコードの全体はこちら
https://github.com/y-kamiya/tpu/commit/7f33993e14423462e1b56900a23fd9e7a6e46a97
サーバ
サーバの処理で全体としてやっていることは以下の感じ
処理自体はこちらのメソッドを参考にして同様のことを行うようにしただけ
ただし、上記の処理をそのまま使うとリクエストごとにモデルの構築やパラメータのロードなどを行う形になるためサーバで使うには都合が悪い。そのため以下のメソッドの画像データだけをplaceholderとして持っておく版を実装して使った。
クライアント
AutoML Visionでの学習も以前試したため、その際に使ったこちらのスクリプトを参考にして実装
やることはこれだけ
ちなみにちゃんとやるのであればtensorflow servingを使うべき。その場合はbase64化されたimage dataを受け取ったところからmodelの処理に含める必要があるため、モデル側を少し書き換えた上でpbファイルとして保存する必要があるはず。今回はそこまでちゃんとしたものを作る必要なかったので簡単にサーバを立てるだけにしたものの、そちらもそんなに手間ではないのかもしれない。