乌班图下安装caffe

    xiaoxiao2021-03-25  98

    1.安装依赖 1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler 2 sudo apt-get install --no-install-recommends libboost-all-dev 3 sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev 4 sudo apt-get install libatlas-base-dev PYTHON需要2.7版本,这是操作系统本身已经安装好的. 输入python2.7 --version 会显示具体的版本号说明安装了. 但是还需要sudo apt-get install python-dev

    2.下载Caffe  使用Git直接下载Caffe非常简单,或者去https://github.com/BVLC/caffe下载。由于我习惯去github上找代码,所以就直接去下载的源码。

    下载完成后,会在家目录下的下载里找到caffe-master.zip,用unzip命令解压到家目录下,然后重命名为caffe.

    3.编译Caffe  (1)切换到Caffe所在目录

    cp Makefile.config.example Makefile.config (2)修改配置文件Makefile.config    打开配置文件 Makefile.config gedit  Makefile.config CPU_ONLY := 1配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题) INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial BLAS := atlas 计算能力 mkl > openlas >atlas

    (3)编译 Caffe

    make all make test make runtest 另外, 这个make默认是用CPU单核运算,如果想要快一点, 比如我想使用四核, 在make后面加上-j4标签。 如果上面4行某一行报错之后想要重试,建议先make clean再重新开始。 ---------------------------------------------------------------------------------------------------------------- 在服务器上装配caffe时,需要注意的地方: 1.cuda的具体位置要修改 2.编译不成功,修改,再编译之前需要make clean 3. 报如下错: .build_debug/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)' .build_debug/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)' .build_debug/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)' collect2: error: ld returned 1 exit status .build_debug/lib/make: libcaffe.so: undefined *** [.build_debug/tools/upgrade_net_proto_text.bin] Error 1 referencemake: *** Waiting for unfinished jobs....  to `cv.build_debug/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)' .build_debug/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)' .build_debug/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::/_InputArray const&, usrint)/bin/'ld:  warning: libcudart.so.5.5, needed by /usr/local/lib/libopencv_core.so, may conflict withcollect2: error: ld returned 1 exit status  libcudart.so.7.5 .build_debug/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)' .build_debug/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector.<int, std::allocatorbuild_debug<int> /> constlib&)'/libcaffe.so .build_debug/: lib/undefined referencelibcaffe.so: to make:  `*** [.build_debug/tools/upgrade_net_proto_binary.bin] Error 1cvundefined: :referenceimread ( tocv:: `String cvconst&::imdecode, int(cv)' .::_InputArraybuild_debug/ const&lib, int/)' libcaffe.so: undefined reference to `cv::imencode(cv:collect2: error: ld returned 1 exit status :String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)' .build_debug/lib/libcaffe.so: make: undefined reference*** [.build_debug/tools/caffe.bin] Error 1 to  `cv::imdecode(cv::_InputArray const&, int)' ::imread(cv::String const&, int)' collect2: error: ld returned 1 exit status .build_debug/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)' .build_debug/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)' make: *** [.build_debug/tools/extract_features.bin] Error 1collect2: error: ld returned 1 exit status make: *** [.build_debug/tools/compute_image_mean.bin] Error 1 .build_debug/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)' .build_debug/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)' .build_debug/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)' collect2: error: ld returned 1 exit status make: *** [.build_debug/tools/convert_imageset.bin] Error 1 wangxiao@wangxiao-GTX980:/media/wangxiao/247317a3-e6b5-45d4-81d1-956930526746/---------------/caffe-master$  ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Answer: https://github.com/BVLC/caffe/issues/2348  But if you delete all the file in build(rm -rf ./build/*) before "make all",you will success.I just success so, just input the code and make all -j8 again. well, same problem... and change the following code in Makefile: >>>>>>>>  LIBRARIES += opencv_core opencv_highgui opencv_imgproc  into :    LIBRARIES += opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs yeah, just add the: opencv_imgcodecs  at last.  and it really worked. 解决的办法: thus, the following steps may needed: 1. change the Makefile :(记得是Makefile文件)

      add "opencv_imagecodecs" to the last of LIBRARIES += opencv_core opencv_highgui opencv_imgproc;

    2. remove the files in build :

      rm -rf ./build/*

    3. make all -j8
    转载请注明原文地址: https://ju.6miu.com/read-22093.html

    最新回复(0)