Intel® AI DevCloud上编译caffe

跟caffe刚上了。没有管理员权限,这个版本不对,这个多版本共存,除了网速好,我还能干啥?
找了一篇论文 Action Tubelet Detector for Spatio-Temporal Action Localization
做视频中动作检测的,用的是caffe,目前来看魔改不大。
编译这个caffe首先遇到的是boost版本低的问题,自己去网上找教程,自己编译。谁叫我是普通用户。没有管理员权限55555
编译参考 linux下编译boost 这个大概是最不用想事情的编译过程
解决了boost的问题,接下了就是protobuf,神坑,不管我在哪个地方,都能遇到这货。
先是非常熟悉的找不到头文件,这是版本太低,自己去编译。
然后是未定义的引用,找了很久,最后发现是链接.so库的位置不对,链接到了系统的低版本库。
最后的配置代码

cmake \
-DBOOST_INCLUDEDIR=/home/u9860/apt/install/boost_1_62_0/include \
-DBOOST_LIBRARYDIR=/home/u9860/apt/install/boost_1_62_0/lib \
-DPROTOBUF_INCLUDE_DIRS=/home/u9860/apt/install/protobuf_3_4_0/include \
-DPROTOBUF_INCLUDE_DIR=/home/u9860/apt/install/protobuf_3_4_0/include \
-DPROTOBUF_LIBRARIES=/home/u9860/apt/install/protobuf_3_4_0/lib \
-DPROTOBUF_LIBRARY=/home/u9860/apt/install/protobuf_3_4_0/lib/libprotobuf.so \
-DCPU_ONLY=ON \
-DCMAKE_BUILD_TYPE=Release \
-DBLAS=mkl \
.. 

Intel® AI DevCloud只有mkl,不能用gpu,还有各种坑的版本

-DPROTOBUF_LIBRARY=/home/u9860/apt/install/protobuf_3_4_0/lib/libprotobuf.so \

这一句找到很痛苦,最后是用一个神奇的命令找到的

find -type f -name "*" | xargs grep '/usr/lib64/libprotobuf.so'

通过这个命令,在茫茫的文件中找到了这个变量(PROTOBUF_LIBRARY)的值。奇怪的一个地方是,我指定了PROTOBUF_LIBRARIES,为什么还会找到系统库呢?

最后才发现,pycaffe没有编译

Python interface is disabled or not all required dependencies found. Building without it...


它上面还有一句

Could NOT find Boost

看什么时候出坑
安装pycaffe的依赖,由于没有管理员权限,需要加–user

for req in $(cat requirements.txt); do pip install $req --user; done

现在可以确定could not find boost是因为pycaffe需要boost
重新编译安装boost

./b2 --with-python install

居然报了这个错误

[ 84%] Building CXX object tools/CMakeFiles/caffe.bin.dir/caffe.cpp.o
virtual memory exhausted: 无法分配内存
make[2]: *** [tools/CMakeFiles/caffe.bin.dir/caffe.cpp.o] 错误 1
make[1]: *** [tools/CMakeFiles/caffe.bin.dir/all] 错误 2
make: *** [all] 错误 2

你可能感兴趣的:(编程错误,环境搭建,软创)