C3D feature extraction
Caffe install
要使用GPU集群进行特征提取,在follow别人工作的时候发现要使用Caffe,而且不是直接能Anaconda安装的caffe,而是要编译的。一看到多数的blog都说要sudo,没有sudo的就要自己本地编译,然后把.so 链接起来,折腾了下,贼麻烦。。 库与库之间的依赖比你想象中的麻烦。
下面是facebook/C3D的编译踩坑过程
其实,可以直接在Anaconda中编译。
-
首先Anaconda创建一个全新的env,python=2.7
-
修改MakeFile.config,其实MakeFile中有Anaconda使用的环境,看着修改就好了。具体可以看github中的issue
-
然后尝试make
如果编译出错,就按照提醒进行搜索修改。MPI_Caffe install
在你使用TSN的时候,不可避免的又要使用另外一个版本的Caffe,而这一个Caffe同样需要编译才能安装。
- 当出现 nodefined 的一些C++11才有的keyword时,就需要在CMakeFile.txt中加上set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -std=c++11”)
- 当出现 anaconda3/envs/caffe/include/google/protobuf/generated_message_table_driven.h(210): error: static assertion failed with “”, 建议先卸掉Anaconda中的protobuf,编译完之后再安装。
- 当出现/usr/bin/ld: cannot find -lopencv_dep_cudart caffe ,在CMakeFile.txt中加上 set(CUDA_USE_STATIC_CUDA_RUN_TIME OFF)
- 如果编译后,import caffe后有类似 undefined symbol,之类的错误,一般是该库版本过低,装更新的版本能解决问题。