CentOS 7 + Anaconda 3 + Caffe 1 - Linux

By Wallis
at 2018-01-05T14:26
at 2018-01-05T14:26
Table of Contents
終於在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測測看:)
--
楞嚴咒(附注音):
http://1drv.ms/1c0YbNt
--
心得:建議一般人用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測測看:)
--
楞嚴咒(附注音):
http://1drv.ms/1c0YbNt
--
Tags:
Linux
All Comments

By Catherine
at 2018-01-07T11:27
at 2018-01-07T11:27

By Bennie
at 2018-01-09T10:30
at 2018-01-09T10:30

By Joseph
at 2018-01-13T06:41
at 2018-01-13T06:41

By Lydia
at 2018-01-15T03:24
at 2018-01-15T03:24

By Faithe
at 2018-01-18T04:45
at 2018-01-18T04:45

By Mary
at 2018-01-21T19:17
at 2018-01-21T19:17

By Mary
at 2018-01-22T17:05
at 2018-01-22T17:05

By Donna
at 2018-01-25T15:06
at 2018-01-25T15:06

By Iris
at 2018-01-28T17:25
at 2018-01-28T17:25

By Jacky
at 2018-02-01T13:35
at 2018-02-01T13:35

By Cara
at 2018-02-05T01:22
at 2018-02-05T01:22
Related Posts
RedHat6.5安裝DNF

By Callum
at 2018-01-04T22:30
at 2018-01-04T22:30
Server主機,不知什麼原因斷線(發現新問題)

By Tristan Cohan
at 2018-01-04T21:28
at 2018-01-04T21:28
有關進修Linux 考照 請益

By Delia
at 2018-01-03T23:41
at 2018-01-03T23:41
現在ubuntu還有提供安裝的光碟嗎?

By Ina
at 2018-01-03T17:35
at 2018-01-03T17:35
有LVM的系統重裝Ubuntu需要注意什麼嗎?

By Jessica
at 2018-01-03T14:57
at 2018-01-03T14:57