zoukankan      html  css  js  c++  java
  • anaconda 虚拟环境编译安装caffe

    https://blog.csdn.net/futangxiang4793/article/details/85050341

    一、安装依赖:

    sudo ap install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

    sudo apt install --no-install-recommends libboost-all-dev

    在 {caffe root}/python 下启动虚拟环境,在虚拟环境下安装一些需要的库。运行

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

    如果遇到权限问题,则到虚拟环境中的bin目录下安装,如:

    cd /home/hd/.pyenv/versions/env361/bin

    sudo pip install -r ~/caffe/python/requirements.txt

    二、修改Makefile.config文件

    先运行cp Makefile.config.example Makefile.config以备份

    1、如果用CPU则取消CPU_ONLY := 1的注释,如果使用GPU则取消USE_CUDNN := 1的注释。

    2、如果使用opencv3,则取消OPENCV_VERSION := 3的注释

    3、选择BLAS,比如BLAS := open(或者使用atlas,CPU的则使用mkl较好)

    4、选择python路径,修改PYTHON_INCLUDE(根据自己的虚拟环境位置修改):

    PYTHON_INCLUDE := /home/hd/.pyenv/versions/3.6.1/include/python3.6m

    /home/hd/.pyenv/versions/3.6.1/lib/python3.6/site-packages/numpy/core/include

    5、取消PYTHON_LIBRARIES的注释,并修改为:PYTHON_LIBRARIES := boost_python-py35 python3.6m。

    重点:找到虚拟环境中的libpython3.6m.so文件,复制到/usr/lib/x86_64-linux-gnu下(建议把下面几个都复制过去);

    确认/usr/lib/x86_64-linux-gnu下的libboost_python-py35.so的文件存在,如果不存在py35后缀,而存在别的py3*文件,如libboost_python-py34.so,则修改Makefile.config中为boost_python-py34。(非常重要)

    6、修改PYTHON_LIB := /home/hd/.pyenv/versions/3.6.1/lib

    7、取消WITH_PYTHON_LAYER := 1的注释

    8、在Whatever else you find you need goes here.一句下,修改为

    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 /usr/lib/x86_64-linux-gnu/hdf5/serial

    9、开始编译:

    make all

    make test

    make runtest

    后两步可省去,只运行make all

    make pycaffe

    语句后面加上-j8(CPU线程数)可以提高编译速度,如make all -j8

    10、编译结束后,添加环境变量

    sudo gedit ~/.bashrc

    在末尾添加export PYTHONPATH=/home/hd/caffe/python:$PYTHONPATH

    source ~/.bashrc

    三、测试

    启动虚拟环境,运行python

    输入import caffe,如果没任何提示,则编译通过。

    可能遇到的问题:

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

      File "/home/.../Downloads/caffe-master/python/caffe/__init__.py", line 1, in <module>

        from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer

      File "/home/.../Downloads/caffe-master/python/caffe/pycaffe.py", line 15, in <module>

        import caffe.io

    ...

    File "/home/.../Downloads/yes/lib/python3.5/site-packages/skimage/io/_plugins/matplotlib_plugin.py", line 3, in <module>

        import matplotlib.pyplot as plt

    ...

      File "/home/.../Downloads/yes/lib/python3.5/site-packages/dateutil/rrule.py", line 55

        raise ValueError, "Can't create weekday with n == 0"

    原因是matplotlib版本过低,运行pip install matplotlib --upgrade 再import caffe就可以通过。

    四、番外:

    在编译RMPE项目中的caffe时,遇到

    libcaffe.so:undefined reference to ‘cv::VideoCapture::VideoCapture()’

    这样的问题,仔细看看发现是opencv里的video模块出了问题

    解决方法:找到Makefile,195行

    LIBRARIES += opencv_core opencv_highgui opencv_imgproc

    改为

    LIBRARIES += opencv_core opencv_highgui opencv_imgproc opencv_videoio

    估计是作者放出来的代码不完善导致的

  • 相关阅读:
    CodeForces 288A Polo the Penguin and Strings (水题)
    CodeForces 289B Polo the Penguin and Matrix (数学,中位数)
    CodeForces 289A Polo the Penguin and Segments (水题)
    CodeForces 540C Ice Cave (BFS)
    网站后台模板
    雅图CAD
    mbps
    WCF学习-协议绑定
    数据库建表经验总结
    资源位置
  • 原文地址:https://www.cnblogs.com/shuimuqingyang/p/13769882.html
Copyright © 2011-2022 走看看