2021年12月24日
Cloud Functions 上で EfficientNetB0 を使っての画像の embedding 抽出をやらせる実装を書く。手元環境ならCPUでも画像1枚なら20msもかからず終わるので、まぁ大したコストでもなかろう、重みの関数適用なだけだし、とdeployして画像を食わすとめちゃくちゃ時間がかかってタイムアウト。スペックを上げてもタイムアウトするので、何かが刺さっている感じがするが、デバッグがめんどくさい(Cloud Functions 環境でしか発生しない)し、TFの設定を弄ったりPythonのバージョンを変えてもダメだったので、日記生成VPSサーバでやらせることにする。月6$の貧弱なVPSでも大して時間かからず推論できるので、趣味コードだしこれで良いや。
EfficientNet B0の重み入りモデル(efficientnetb0_notop.h5)、たったの16MBなのね、パラメータが少ないとのことだけあって驚異的なサイズ…。更にサイズがどれぐらい減るのかなと、エッジ向けに tensorflowjs_converter --quantize_uint8 --input_format keras efficientnetb0_notop.h5 output_dir
で変換させると、4MBほどになってブラウザでも推論できそうなサイズに。
ホットサンドブームは続いていて、2日に一度はホットサンドな朝食。