【TF2】v2.2からTensorFlow Lite C版のBazelビルドターゲットが正式対応されている件

TIPS ディープラーニング ニュース・情報
スポンサーリンク

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/tensorflow
An Open Source Machine Learning Framework for Everyone - tensorflow/tensorflow

 

基本的なビルド環境は、Tensorflowの通常版の導入手順を参考。

Windows でのソースからのビルド  |  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 をインクルード

で実行可能になるはず。

 

お役に立てれば幸いでございます。
そいではまたー

 

最後まで読んでいただき、ありがとうございます!

ブックマーク登録、
ツイッターフォロー、
よろしくお願いいたします!🙇‍♂️🙇‍♂️

👇 フォローボタン 👇
スポンサーリンク
マキシ's ディープパラダイス