金魚の備忘録

新人エンジニアの半分日記な備忘録。週一くらいで更新したい。

KerasのモデルをTensorflow Liteに変換するときに詰まった話

結論

TensorFlow Liteのbuildinの関数以外を使うKerasのモデルをtfliteファイルに変換するためには,tensorflow-gpu==2.0.0-beta1でなく,tf-nightly-2.0-previewを使わねばならなかった.

問題

TensorFlowを弄っていて,画像識別のモデルが出来たのでAndroidに載せようとした.
TensorFlow公式サイトによるとTensorFlow Liteというものを使うとAndroidで画像識別が出来るらしいのでやってみた.

しかし,convert.convert()を使ったところで,エラーを吐かれた.
どうやらTensorFlow Liteを使って変換できない関数を内部で使っているらしい.
しかし,対応外の関数を使うために引数を説明書き通りに設定したのにエラーが出るのはおかしい.
私は困り果ててしまった.

解決

改めてそのページを上から読み直してみたところ,下の方に
pip install tf-nightly-2.0-preview
と書いてある.
私はこれまでTensorFlowのライブラリとしてtensorflow-gpu==2.0.0-beta1を使っていた.
単純に使っているライブラリが違ったのだ.
実際にtf-nightly-2.0-previewのライブラリを入れて同じコードを実行したところ,無事に変換することができた.