TensorFlow v2.2のリポジトリから、Lite C版のBazel用のターゲットが存在しています。
今までできずに悩んでいたWindowsでのDLLビルドがめちゃくちゃ楽に終了したので共有します。
調査日:2020年7月12日
はじめに
TensorFlow Liteといえば、
Raspberry PiやAndroid、iOS上のイメージが強いですが、
貧弱なCPUのWindowsでも使われる機会は多々あると思っています。
(たとえば巷のタッチパネル端末はWindowsベースが多い)
しかし、従来2.0系はLinux向け.soのビルドは簡単だったものの、
Windows用のDLLビルドが情報が少なく大変でした。
今回、非常に簡単にできるようになっています。
TF Lite Cビルド方法
以下のリポジトリ、README.mdにビルド手順が書いてあります。
基本的なビルド環境は、Tensorflowの通常版の導入手順を参考。
VS BuildToolやMSYSでのpacman等は実施し、
あとはbazel buildをTF Lite Cのものに読み替えるだけです。
bazel build -c opt //tensorflow/lite/c:tensorflowlite_c
ビルド完了後、
bazel-out\x64_windows-opt\bin\tensorflow\lite\c
に、tensorflowlite_c.dll が出来上がりました。
テスト実行
APIのテストコードも、ターゲット名として存在しています。
(tensorflow/lite/c/BUILD ファイルを参照)
ではAPIテストコードをビルドして、実行してみます。
bazel build -c opt //tensorflow/lite/c:c_api_test
ビルド完了後、
下記exeを実行
bazel-bin\tensorflow\lite\c\c_api_test.exe
PASSED 10 tests になっていればAPIテストは成功
さいごに
実使用上は、
tensorflowlite_c.dll および、
tensorflow/lite 以下の全ヘッダを階層構造を保ったまま配置し、
自前のCコードから c_api.h をインクルード
で実行可能になるはず。
お役に立てれば幸いでございます。
そいではまたー
最後まで読んでいただき、ありがとうございます!
ブックマーク登録、
ツイッターフォロー、
よろしくお願いいたします!🙇♂️🙇♂️