Donkeycarのバージョンが3.1.0にあがってしまいました..
3.1.0の目玉はTensorRT対応とTensorflow Lite対応です。
TensorRTはGPUがそもそもないのでどうでもいいですがLiteのほうは..Zeroで自動走行にすると内部エラーで落ちる問題が解決できるかもしれない..ということでRaspberry Pi ZeroにTensorflow Liteをインストールしなくてはなりません。
でもそんなwheelファイル誰も公開していない..TawnさんにSlackできいても知らないとの答え..
しょうがないので公式ドキュメントに従ってコンパイルをすることになったわけです。
----
Tensorflow LiteドキュメントにはDockerコンテナ上でクロスコンパイルする手順がかかれていますが、あくまでarmv7l(3B/3B+)用であり、get started に whlファイルのダウンロード元URLがかかれているので、正直コンパイルするひつようがありません。
でもなぜかZero用のarmv6用は置かれていないので、自分でコンパイルするしかありません。
以下、手順を紹介しますが、すべての機能のテストをしていませんので、動かなくてもごめんなさい。
----
------
..公式サイトにwheelファイルリンクがないのはもしかしたらZeroでは動作しないということなのかもしれないなあ..
そのあたりは自己責任でお願いします...
ps
WinSCP後の後始末
3.1.0の目玉はTensorRT対応とTensorflow Lite対応です。
TensorRTはGPUがそもそもないのでどうでもいいですがLiteのほうは..Zeroで自動走行にすると内部エラーで落ちる問題が解決できるかもしれない..ということでRaspberry Pi ZeroにTensorflow Liteをインストールしなくてはなりません。
でもそんなwheelファイル誰も公開していない..TawnさんにSlackできいても知らないとの答え..
しょうがないので公式ドキュメントに従ってコンパイルをすることになったわけです。
----
Tensorflow LiteドキュメントにはDockerコンテナ上でクロスコンパイルする手順がかかれていますが、あくまでarmv7l(3B/3B+)用であり、get started に whlファイルのダウンロード元URLがかかれているので、正直コンパイルするひつようがありません。
でもなぜかZero用のarmv6用は置かれていないので、自分でコンパイルするしかありません。
以下、手順を紹介しますが、すべての機能のテストをしていませんので、動かなくてもごめんなさい。
Tensorflow本体のビルドは40時間以上かかるというブログ記事情報もあったりしますが、ここに書かれている手順はLiteの静的ライブラリ作成だけなので、Lenovo T470で20分くらいだったとおもいます。
----
Docker Desktopのインストール
- Windows10上にDocker Desktopをインストール
- Docker Desktop>Settings>Shared Drives
- Cドライブをシェア
クロスコンパイル環境コンテナの起動
- コマンドプロンプトを管理者として起動
- cd c:/Users/ユーザ名
- mkdir tmp
- docker run -it -v c:/Users/ユーザ名/tmp:/projects tensorflow/tensorflow:nightly-devel /bin/bash
- cat >> /etc/apt/apt.conf <
- Acquire::http::Proxy "http://proxy.server:XXXX";
- Acquire::https::Proxy "http://proxy.server:XXXX";
- Ctrl+D
- apt-get update
- apt-get install crossbuild-essential-armhf vim
リポジトリのチェックアウト
(Proxy指定が必要な場合)- git config --global http.proxy http://peoxy.server:XXXX
- git config --global https.proxy http://peoxy.server:XXXX
- cd /projects
- git clone https://github.com/tensorflow/tensorflow
- cd tensorflow
- git checkout master
Raspberry Pi Zero用設定に書き換え
- vi vi tensorflow/lite/tools/make/targets/rpi_makefile.inc
- 5行目:TARGET_ARCH := armv6 に変更
- 38行目:-fPIC の末尾に \ 追加
- 39行目:-marc 挿入
- 46行目:-fPIC の末尾に \ 追加
- 47行目:-marc 挿入
- 53行目:-Wl,--as-needed の末尾に \ 追加
- 54行目:-latomic 挿入
コンパイル実行
- ./tensorflow/lite/tools/make/download_dependencies.sh
- ./tensorflow/lite/tools/make/build_rpi_lib.sh
- exit
静的ライブラリファイルのデプロイ
- WinSCPなどを使って以下のファイルをRaspberry Pi Zero上の/usr/local/libなどにコピー
C:\Users\89004\tmp\tensorflow\tensorflow\lite\tools\make\gen\rpi_armv6\lib\libtensorflow-lite.a
------
..公式サイトにwheelファイルリンクがないのはもしかしたらZeroでは動作しないということなのかもしれないなあ..
そのあたりは自己責任でお願いします...
ps
WinSCP後の後始末
クロスコンパイル環境コンテナの削除
- docker container ls -a でコンテナID先頭3文字を確認
- docker container rm コンテナID先頭3文字
イメージの削除
- docker image rm tensorflow/tensorflow:nightly-devel
作業ディレクトリの削除
- cd c:/Users/ユーザ名
- del /f tmp でY選択
0 件のコメント:
コメントを投稿