ONNXの紹介とインストール方法
ONNXとは
ONNXはOpenNeuralNetworkEXchange formatの略称で機械学習のフレームワーク間でモデルの構造や学習したパラメータを交換するためのデータフォーマットです。ONNXをサポートしているツールはここで紹介されているのですが、Caffeのモデルや学習データをPyTorchで利用したりcognitive-toolkitからchainerに移植したりということが可能になります。TVMなどONNXをサポートするディープラーニング用コンパイラもあります。 ONNXからモデルの構造と計算グラフを抽出することで専用ハードウェアへの実装などにも応用できます(私の研究でもそれを目論んでいます)。
ONNXのインストール
ONNXのGitHubレポジトリのREADMEにすべて書いてあります。で終わってしまうのですが、備忘録も兼ねてインストール手順をまとめておきます。 想定環境は以下のとおりです。 - Ubuntu 18.04 - Python 3.6.7
READMEにはcondaを使ったインストール方法がまず紹介されているのですが、 なんとなく使いたくないのでソースコードからビルドしたいと思います。
$ git clone https://github.com/onnx/onnx.git $ cd onnx $ git submodule update --init --recursive $ python setup.py install ... 長いビルドのログ ... Using /home/kiizuka/.venv/onnx/lib/python3.6/site-packages Finished processing dependencies for onnx==1.4.1
ここまで終わったら、最後に
$ sudo apt-get install protobuf-compiler libprotoc-dev
で必要なライブラリを追加して終了です。 このままこのディレクトリで
$ python -c "import onnx"
を実行すると
ModuleNotFoundError: No module named 'onnx.onnx_cpp2py_export.defs'
が出ます。別のディレクリでは正常に動くよとREADMEにも書いてあるので放置でもいいと思います。
$ python setup.py develop
を実行するととりあえずエラーが消えます。
(参考: https://github.com/onnx/onnx/issues/1302#issuecomment-413922657)
次は実際に動かしてみたいと思います。