tensorflow lite c++で使う準備
tensorflow lite c++で使う準備
tensorflowlite をc++ように準備する。デバイスはaarch64。
2.10.1で実施。リンクできる共有ライブラリを生成することを目指します。
公式や有志の方の記事も多いが、実際やってみるとtensorflowのバージョン違いや、アーキテクチャの違い、結局どれなんだ?と悩むことも多かったので、記録しておきます。
bazeliskインストール
googleの用意しているビルドツールであるbazel。これの複数バージョン使用などができるのがbazelisk
どうやら、コマンドを使用する際にその場所(リポジトリ)の .bazelversion
ファイルを参照し、要求されるbazelを選択(必要に応じてダウンロード)して実行してくれるというものの様でした。
実行時は、bazel ...
の代わりに、bazelisk ...
で実行すればよい。もちろん名前を変更してしまえばその限りではありません。
linux系ならインストールは簡単で、実行用ファイルを所定の場所に保存してパスを通すだけ。
tensorflowliteのbuild
公式の指示通り、下記のコマンドでできた。
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
成功すると bazel-bin/tensorflow/lite/libtensorflowlite.so
のpathに共有ライブラリが生成される。
通常、使用するには各種ライブラリが必要。それをそろえるにはいろいろ方法がある模様。
ただ、cmakeが動くなら、cmakeしてしまってできたものを使うのが手っ取り早いかもしれない。
cmakeでのビルド方法
上記リンクの手順でもtensorflowliteのビルドは可能だが、今回対象とするようなアーキテクチャでは推奨ではなさそうなので、ライブラリ使用までにとどめておく方がよさそう。
mkdir tflite_build
cd tflite_build
cmake ../tensorflow/lite
あとは引き続き開発にすすみます。
参考
ほかのアーキテクチャや、tensorflowバージョンで参考になる記事
Discussion