• 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

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

  • 相关阅读:
    windows ip路由
    linux ip命令和ifconfig命令
    工作项目技术总结
    网络安全体系
    网络适配器输入的IP地址 已经分配给另一个适配器
    Android笔记之ImageView设置图片以灰色显示
    js小功能
    html2canvas截取图片跨域解决办法
    JS学习笔记(二).eq()与[]的区别
    jQuery中常用的元素查找方法总结
  • 原文地址:https://www.cnblogs.com/shuimuqingyang/p/13769882.html
Copyright © 2020-2023  润新知