ONNX是facebook提出的一個 Open Neural Network Exchange協議,可以讓訓練好的模型在不一樣的框架間進行交互。python
ONNX的安裝相對來講不是特別麻煩,麻煩的是其依賴庫的安裝。ONNX依賴於pybind11。git
首先依賴庫的安裝github
sudo pip install pytest #pytest sudo pip install numpy #numpy sudo pip install scipy #scipy
下載pybind11源碼python3.x
git clone https://github.com/pybind/pybind11.git
若是你須要eigen庫的話,還須要先安裝eigen,這裏我選擇的是無eigen的方式bash
新建一個編譯出來的文件夾框架
mkdir build cd build cmake .. make -j4 sudo make install
這裏有個問題,若是你同時存在python2.x和python3.x版本的話,默認選擇的是python3.x版本的,可是我如今的整個環境是python2.7.12,因此就必須禁用掉Python3.x,你們都說禁用,其實就是讓自動尋找方式找不到python3.x。python2.7
採用的方式是在/usr/bin中全部找到的python3.x相關的文件都移動到另外一個文件夾內,而後開始編譯ui
裝好了pybind11以後(源碼版本編譯ONNX必須手動編譯pybind11,使用pip install pybind11並無論用)spa
編譯安裝onnxcode
git clone https://github.com/onnx/onnx.git cd ./onnx
python setup.py build sudo python setup.py install
這裏頗有可能會出現cmake提示 Protobuf compiler not found 的問題,所以須要安裝合適的protobuf編譯器
sudo apt-get install libprotobuf-dev protobuf-compiler