Fw: [心得] CentOS 7 + Anaconda 3 + Caffe 1

作者: zxvc (眾生都是未來佛)   2018-01-05 17:44:26
※ [本文轉錄自 Linux 看板 #1QJngWqK ]
作者: zxvc (眾生都是未來佛) 看板: Linux
標題: [心得] CentOS 7 + Anaconda 3 + Caffe 1
時間: Fri Jan 5 14:26:36 2018
終於在CentOS 7上硬裝Caffe 1 (含pycaffe)成功。
心得:建議一般人用Ubuntu或Docker裝Caffe就好,
不要在CentOS上裝,叔叔有練過。
我的環境是:
CentOS 7.4.1708 64-bit
CUDA 8.0
cuDNN 6.0
Intel MKL 2018 update 1
Anaconda 3 5.0.1 64-bit
Caffe 1.0.0 (git commit ID: 99466224dac86ddb86296b1e727794fb836bd80f)
成功安裝方式我大略說一下:
基本上就是git clone caffe後,照著網頁的編譯步驟執行:
make -j8
make test -j8
make runtest
make pycaffe
但不幸的這個過程應該會遇到很多"編譯失敗"或"runtest失敗"的問題,
解法如下:
1. CentOS 7的boost-python套件的libboost-python.so
似乎只能用於Python 2。
若想改用Anaconda 3的libboost 1.65.1又會在runtest時失敗, 訊息大致是:
(unix time) try "date -d @1515078034" if you are using GNU date
boost::filesystem::path::operator/=()
問題似乎是Anaconda 3的libboost 1.65.1與CentOS不合。
所以請用conda remove libboost,再自行下載boost 1.65.1編譯。
另外執行bootstrap.sh時要指定Anaconda 3 python的路徑。
2. 建議移除CentOS 7的protobuf套件,因為Anaconda 3也有protobuf套件,
又在編Caffe時Makefile.config會優先選Anaconda 3的include/lib版本。
若不移除,make可能在叫protoc時用的是CentOS的版本...
但還沒完,若make時出現錯誤;
undefined reference to `google::protobuf::...
應該是Anaconda 3的libprotobuf 3.4.1的問題,請用這指令檢查:
strings /cad/anaconda3/lib/libprotobuf.so|grep GCC
若出現"GCC: (crosstool-NG...",應該是該lib不知用什麼compiler編的問題。
試著用conda install protobuf=3.4.0降版,再用strings應該會看到:
GCC: (GNU) 4.4.7 20120313
再make試試。
3. libtiff似乎也有與第2點相似的問題,解法類似 - 降版。
4. 如第2點所提到的"Makefile.config會優先選Anaconda 3的include/lib"。
所以make前建議把Anaconda會用到的tools, lib都裝好,例如:
conda install protobuf hdf5 libtiff
以上是我記得的注意事項,不確定有沒有遺漏。
請務必make runtest確認安裝正確。
最後再開啟jupyter-notebook,打開examples/00-classification.ipynb測測看:)
作者: zxvc (眾生都是未來佛)   2017-01-05 17:35:00
我弄清楚了crosstool-NG的問題了,它是Anaconda最近用的一套compiler,用於編譯Anaconda最近發佈的packages,與過去的GCC居然不相容!事實上Anaconda有放出該compiler,如gxx_linux-64這個套件。問題是並非所有Anaconda的packages都已經被它重編過,例如leveldb(最新1.20)。所以目前無法用gxx_linux-64編caffe。可以說Anaconda因此自成一套獨立的package管理系統,開始與一些GNU編譯的套件系統不相容了!後來有人教我秒裝caffe法囧XD:conda install caffe-gpu

Links booklink

Contact Us: admin [ a t ] ucptt.com