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