TensorRTビルド(とEfficientDet実行環境)のDockerfile作ってみた

AutoML版EfficientDetをTensorRT化しようとして色々あってTensorRTのビルド環境と一緒に環境作りたくなったのでDockerfileとscriptを作ってgitにpushしてみた。

github.com

はまったことや注意点を列挙したい。

pycudaより前にnumpyのインストールが必要

setup.pyでひたすらエラーになって何度もバージョンをかけてsetup.pyを実行しようとしてしまうので先にnumpyをインストールする

ARM版bazelのインストール方法がややこしかった

結局実行ファイルを直接ダウンロードして配置する方法しかダメだった

tensorflow-addonsのバージョン依存パナイ

tensorflow-hubとtensorflow-addonsはARM版パッケージが登録されてなさそうなのでソースコードからビルドした。

addonsはバージョン依存がきつくて一覧表とにらめっこしてふさわしいバージョンを探す必要がある。

AutoML版EfficientDetのバージョン依存

masterブランチだと指定されているバージョンのライブラリを用意できないので1.2のソースコードを使うしかなかった。ただし、kerasディレクトリが本家Kerasパッケージと名称衝突してる件とかTensorFlow v2.6のtf.data.experimental.OptimizationOptionsからmap_vectorizationが消えていたりして1.2のソースコードそのままだと実行ができなかった。
(さすがにこの部分はスクリプトにも含めなかった)