📖

tensorflow lite c++で使う準備

2024/08/14に公開

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バージョンで参考になる記事

https://daisuke20240310.hatenablog.com/entry/raspi2
https://qiita.com/iwatake2222/items/d998df1981d46285df62

Discussion