caffe 订阅
Caffe,全称Convolutional Architecture for Fast Feature Embedding,是一个兼具表达性、速度和思维模块化的深度学习框架。由伯克利人工智能研究小组和伯克利视觉和学习中心开发。虽然其内核是用C++编写的,但Caffe有Python和Matlab 相关接口。Caffe支持多种类型的深度学习架构,面向图像分类和图像分割,还支持CNN、RCNN、LSTM和全连接神经网络设计。Caffe支持基于GPU和CPU的加速计算内核库,如NVIDIA cuDNN和Intel MKL。 展开全文
Caffe,全称Convolutional Architecture for Fast Feature Embedding,是一个兼具表达性、速度和思维模块化的深度学习框架。由伯克利人工智能研究小组和伯克利视觉和学习中心开发。虽然其内核是用C++编写的,但Caffe有Python和Matlab 相关接口。Caffe支持多种类型的深度学习架构,面向图像分类和图像分割,还支持CNN、RCNN、LSTM和全连接神经网络设计。Caffe支持基于GPU和CPU的加速计算内核库,如NVIDIA cuDNN和Intel MKL。
信息
外文名
Convolutional Architecture for Fast Feature Embedding
领    域
人工智能
特    点
清晰,可读性高,学习快速
简    称
Caffe
中文名
快速特征嵌入的卷积结构
接    口
Python和Matlab 相关接口
实    质
一种深度学习框架
Caffe简介
Caffe是一个深度学习框架,最初开发于加利福尼亚大学伯克利分校。Caffe在BSD许可下开源,使用C++编写,带有Python接口。是贾扬清在加州大学伯克利分校攻读博士期间创建了Caffe项目。项目托管于GitHub,拥有众多贡献者。Caffe应用于学术研究项目、初创原型甚至视觉、语音和多媒体领域的大规模工业应用。雅虎还将Caffe与Apache Spark集成在一起,创建了一个分布式深度学习框架CaffeOnSpark。2017年4月,Facebook发布Caffe2,加入了递归神经网络等新功能。2018年3月底,Caffe2并入PyTorch。
收起全文
精华内容
下载资源
问答
  • Ubuntu16.04 Caffe 安装步骤记录(超详尽)

    万次阅读 多人点赞 2017-05-19 19:09:11
    历时一周终于在 ubuntu16.04 系统成功安装 caffe 并编译,网上有很多教程,但是某些步骤并没有讲解详尽,导致配置过程总是出现各种各样匪夷所思的问题,尤其对于新手而言更是欲哭无泪,在我饱受折磨后决定把安装步骤...

    历时一周终于在 ubuntu16.04 系统成功安装 caffe 并编译,网上有很多教程,但是某些步骤并没有讲解详尽,导致配置过程总是出现各种各样匪夷所思的问题,尤其对于新手而言更是欲哭无泪,在我饱受折磨后决定把安装步骤记录下来,尽量详尽清楚明白,避免后来小白重蹈覆辙。

    安装硬件: intel i5 + NVIDIA 740 M

    安装流程细分为如下10个步骤,细化步骤粒度更易避免出错:

    1、安装依赖包
    2、禁用 nouveau
    3、配置环境变量
    4、下载 CUDA 8.0
    5、安装 CUDA 8.0
    6、验证 CUDA 8.0 是否安装成功
    7、安装 cudnn
    8、安装 opencv3.1
    9、安装 caffe
    10、安装 pycaffe notebook 接口环境

    第1步 安装依赖包

    安装后续步骤或环境必需的依赖包,依次输入以下命令:

    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
    
    sudo apt-get install --no-install-recommends libboost-all-dev
    
    sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
    
    sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
    
    sudo apt-get install git cmake build-essential
    

    有一定几率安装失败而导致后续步骤出现问题,所以要确保以上依赖包都已安装成功,验证方法就是重新运行安装命令,如验证 git cmake build-essential是否安装成功共则再次运行以下命令:

     sudo apt-get install git cmake build-essential 
    

    界面提示如下则说明已成功安装依赖包,否则继续安装直到安装成功。

    yhao@yhao-X550VB:~$ sudo apt-get install git cmake build-essential
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    build-essential 已经是最新版 (12.1ubuntu2)。
    cmake 已经是最新版 (3.5.1-1ubuntu3)。
    git 已经是最新版 (1:2.7.4-0ubuntu1.1)。
    下列软件包是自动安装的并且现在不需要了:
      lib32gcc1 libc6-i386
    使用'sudo apt autoremove'来卸载它(它们)。
    升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 94 个软件包未被升级。
    

    第2步 禁用 nouveau

    安装好依赖包后需要禁用 nouveau,只有在禁用掉 nouveau 后才能顺利安装 NVIDIA 显卡驱动,禁用方法就是在 /etc/modprobe.d/blacklist-nouveau.conf 文件中添加一条禁用命令,首先需要打开该文件,通过以下命令打开:

    sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
    

    打开后发现该文件中没有任何内容,写入:

    blacklist nouveau option nouveau modeset=0 
    

    保存时命令窗口可能会出现以下提示:

    ** (gedit:4243): WARNING **: Set document metadata failed: 不支持设置属性 metadata::gedit-position
    
    

    无视此提示~,保存后关闭文件,注意此时还需执行以下命令使禁用 nouveau 真正生效:

    sudo update-initramfs -u
    

    第3步 配置环境变量

    同样使用 gedit 命令打开配置文件:

    sudo gedit ~/.bashrc
    
    

    打开后在文件最后加入以下两行内容:

    export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
    
    export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH 
    

    保存退出。

    第4步 下载 CUDA 8.0

    进入 https://developer.nvidia.com/cuda-downloads ,依次选择 CUDA 类型然后下载即可。
    这里写图片描述

    第5步 安装 CUDA 8.0

    第四步下载的1.4G的 CUDA中包含有 nvidia 显卡驱动,故此步骤 CUDA 的安装包括了 nvidia 显卡驱动的安装,此时注意你是否已经安装过 nvidia 显卡驱动,若无法保证已安装的 nvidia 显卡驱动一定正确,那就卸载掉之前安装的 nvidia 显卡驱动(卸载方法链接),然后开始安装 CUDA 8.0;若可以保证已安装正确的 nvidia 显卡驱动,则直接开始安装 CUDA 8.0,在安装过程中选择不再安装 nvidia 显卡驱动。

    为了方便开始安装过程的路径查找,把下载的 CUDA 安装文件移动到 HOME 路径下,然后通过 Ctrl + Alt + F1 进入文本模式,输入帐号密码登录,通过 Ctrl + Alt + F7 可返回图形化模式,在文本模式登录后首先关闭桌面服务:

    sudo service lightdm stop
    

    然后通过 Ctrl + Alt + F7 发现已无法成功返回图形化模式,说明桌面服务已成功关闭,注意此步对接下来的 nvidia 驱动安装尤为重要,必需确保桌面服务已关闭。

    Ctrl + Alt + F1 进入文本模式,然后运行 CUDA 安装文件进行安装,之前我们已经把 CUDA 安装文件移动至 HOME,直接通过 sh 命令运行安装文件即可:

    sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs
    

    其中 cuda_8.0.61_375.26_linux.run 是我的 CUDA 安装文件名,而你需替换为自己的 CUDA 安装文件名,若此时忘记可直接通过 ls 文件查看文件名,这也是我建议把 CUDA 安装文件移动到 HOME 下的另一个原因。

    执行此命令约1分钟后会出现 0%信息,此时长按回车键让此百分比增长,直到100%,然后按照提示操作即可,先输入 accept ,然后让选择是否安装 nvidia 驱动,这里的选择对应第5步开头,若未安装则输入 “y”,若确保已安装正确驱动则输入“n”。

    剩下的选择则都输入“y”确认安装或确认默认路径安装,开始安装,此时若出现安装失败提示则可能为未关闭桌面服务或在已安装 nvidia 驱动的情况下重复再次安装 nvidia 驱动,安装完成后输入重启命令重启:

    reboot
    

    重启后登录进入系统,配置 CUDA 环境变量,与第3步相同,使用 gedit 命令打开配置文件:

    sudo gedit ~/.bashrc
    

    在该文件最后加入以下两行并保存:

    export PATH=/usr/local/cuda-8.0/bin:$PATH
    
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    

    使该配置生效:

    source ~/.bashrc
    

    第6步 验证 CUDA 8.0 是否安装成功

    分别执行以下命令:

    cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
    
    sudo make
    
    ./deviceQuery
    

    若看到类似以下信息则说明 cuda 已安装成功:

    ./deviceQuery Starting...
    
     CUDA Device Query (Runtime API) version (CUDART static linking)
    
    Detected 1 CUDA Capable device(s)
    
    Device 0: "GeForce GT 740M"
      CUDA Driver Version / Runtime Version          8.0 / 8.0
      CUDA Capability Major/Minor version number:    3.5
      Total amount of global memory:                 2004 MBytes (2100953088 bytes)
      ( 2) Multiprocessors, (192) CUDA Cores/MP:     384 CUDA Cores
      GPU Max Clock rate:                            1032 MHz (1.03 GHz)
      Memory Clock rate:                             800 Mhz
      Memory Bus Width:                              64-bit
      L2 Cache Size:                                 524288 bytes
      Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
      Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
      Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
      Total amount of constant memory:               65536 bytes
      Total amount of shared memory per block:       49152 bytes
      Total number of registers available per block: 65536
      Warp size:                                     32
      Maximum number of threads per multiprocessor:  2048
      Maximum number of threads per block:           1024
      Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
      Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
      Maximum memory pitch:                          2147483647 bytes
      Texture alignment:                             512 bytes
      Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
      Run time limit on kernels:                     No
      Integrated GPU sharing Host Memory:            No
      Support host page-locked memory mapping:       Yes
      Alignment requirement for Surfaces:            Yes
      Device has ECC support:                        Disabled
      Device supports Unified Addressing (UVA):      Yes
      Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
      Compute Mode:
         < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
    
    deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GT 740M
    Result = PASS
    
    

    第7步 安装 cudnn

    登录官网:https://developer.nvidia.com/rdp/cudnn-download ,下载对应 cuda 版本且 linux 系统的 cudnn 压缩包,注意官网下载 cudnn 需要注册帐号并登录,不想注册的可从我的网盘下载:https://pan.baidu.com/s/1c2xPVzy

    这里写图片描述

    下载完成后解压,得到一个 cudn 文件夹,该文件夹下include 和 lib64 两个文件夹,命令行进入 cudn/include 路径下,然后进行以下操作:

    sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件
    

    然后命令行进入 cudn/lib64 路径下,运行以下命令:

    sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
    cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
    sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #生成软衔接
    sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接
    

    这里需要注意第三行命令,网上有人的第三行命令为:

    sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #生成软衔接
    

    起初我执行的也是上条链接 libcudnn.so.5.1.5 的命令,但是后面编译caffe时出错,报错内容为 /usr/bin/ld: 找不到 -lcudnn,所以这里需要先查看一下自己应该链接的是 libcudnn.so.5.1.10 还是 libcudnn.so.5.1.5 ,查看方法为下:

    locate libcudnn.so
    

    我执行完后显示如下:

    yhao@yhao-X550VB:~$ locate libcudnn.so
    /home/yhao/.local/share/Trash/files/libcudnn.so
    /home/yhao/.local/share/Trash/files/libcudnn.so.5
    /home/yhao/.local/share/Trash/files/libcudnn.so.5.1.10
    /home/yhao/.local/share/Trash/files/cuda/lib64/libcudnn.so
    /home/yhao/.local/share/Trash/files/cuda/lib64/libcudnn.so.5
    /home/yhao/.local/share/Trash/files/cuda/lib64/libcudnn.so.5.1.10
    /home/yhao/.local/share/Trash/info/libcudnn.so.5.1.10.trashinfo
    /home/yhao/.local/share/Trash/info/libcudnn.so.5.trashinfo
    /home/yhao/.local/share/Trash/info/libcudnn.so.trashinfo
    /home/yhao/cuda/lib64/libcudnn.so
    /home/yhao/cuda/lib64/libcudnn.so.5
    /home/yhao/cuda/lib64/libcudnn.so.5.1.10
    /usr/local/lib/libcudnn.so
    /usr/local/lib/libcudnn.so.5
    

    可以看到我的文件是 libcudnn.so.5.1.10 ,并没有 libcudnn.so.5.1.5,所以第三行命令我链接的是 libcudnn.so.5.1.10 ,这里第三行链接命令视你的查看结果而定。

    安装完成后可用 nvcc -V 命令验证是否安装成功,若出现以下信息则表示安装成功:

    yhao@yhao-X550VB:~$ nvcc -V
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2016 NVIDIA Corporation
    Built on Tue_Jan_10_13:22:03_CST_2017
    Cuda compilation tools, release 8.0, V8.0.61
    

    第8步 安装 opencv3.1

    进入官网 : http://opencv.org/releases.html , 选择 3.1.0 版本的 source , 下载 opencv-3.1.0.zip
    这里写图片描述

    解压到你要安装的位置,命令行进入已解压的文件夹 opencv-3.1.0 目录下,执行:

    mkdir build # 创建编译的文件目录
    
    cd build
    
    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    
    make -j8  #编译
    
    

    在执行 make -j8 命令编译到 92% 时可能会出现以下错误:

    modules/cudalegacy/src/graphcuts.cpp:120:54: error: 
    ‘NppiGraphcutState’ has not been declared
    typedef NppStatus (*init_func_t)(NppiSize oSize, 
    NppiGraphcutState** ppState, Npp8u* pDeviceMem);
    

    这是由于opecv3.1与cuda8.0不兼容导致的。解决办法:

    修改 /opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp 文件内容,如图:
    这里写图片描述

    编译成功后安装:

    sudo make install #安装
    

    安装完成后通过查看 opencv 版本验证是否安装成功:

    pkg-config --modversion opencv  
    

    第9步 安装 caffe

    首先在你要安装的路径下 clone :

    git clone https://github.com/BVLC/caffe.git
    

    进入 caffe ,将 Makefile.config.example 文件复制一份并更名为 Makefile.config ,也可以在 caffe 目录下直接调用以下命令完成复制操作 :

    sudo cp Makefile.config.example Makefile.config
    

    复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。

    然后修改 Makefile.config 文件,在 caffe 目录下打开该文件:

    sudo gedit Makefile.config
    

    修改 Makefile.config 文件内容:

    1.应用 cudnn

    将
    #USE_CUDNN := 1
    修改成: 
    USE_CUDNN := 1
    

    2.应用 opencv 版本

    将
    #OPENCV_VERSION := 3 
    修改为: 
    OPENCV_VERSION := 3
    

    3.使用 python 接口

    将
    #WITH_PYTHON_LAYER := 1 
    修改为 
    WITH_PYTHON_LAYER := 1
    

    4.修改 python 路径

    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 
    修改为: 
    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       
    

    这里贴出 我的Makefile.config文件 方便大家参考

    然后修改 caffe 目录下的 Makefile 文件:

    将:
    NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
    替换为:
    NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
    
    将:
    LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
    改为:
    LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
    

    然后修改 /usr/local/cuda/include/host_config.h 文件 :

    将
    #error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
    改为
    //#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
    

    OK ,可以开始编译了,在 caffe 目录下执行 :

    make all -j8
    

    这是如果之前的配置或安装出错,那么编译就会出现各种各样的问题,所以前面的步骤一定要细心。

    编译成功后可运行测试:

    sudo make runtest -j8
    

    这里写图片描述

    如果显示结果为上图所示,则表示 caffe 已经成功安装。

    10、安装 pycaffe notebook 接口环境

    在上一步成功安装 caffe 之后,就可以通过 caffe 去做训练数据集或者预测各种相关的事了,只不过需要在命令行下通过 caffe 命令进行操作,而这一步 pycaffe 的安装以及 notebook 环境配置只是为了更方便的去使用 caffe ,实际上大多数都是通过 python 来操作 caffe 的,而 notebook 使用浏览器作为界面,可以更方便的编写和执行 python 代码。

    首先编译 pycaffe :

    cd caffe
    
    sudo make pycaffe -j8
    

    以下是我编译 pycaffe 时出现的错误:

    python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: 没有那个文件或目录
    

    解决方法:

    sudo apt-get install python-numpy
    

    此外也可能是由于 Makefile.config 文件中 python 路径设置错误出现的错误,可根据上一步检查一下,也可能出现别的错误,百度谷歌之~

    编译 pycaffe 成功后,验证一下是否可以在 python 中导入 caffe 包,首先进入 python 环境:

    python
    

    然后导入 caffe :

    >>> import caffe
    

    若不报错则表示 caffe 的 python 接口已正确编译,但是应该不会那么顺利,以下是我导入 caffe 时出现的错误:

    错误1:

    File "<stdin>", line 1, in <module>   ImportError: No module named caffe
    

    解决方法:

    sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc
    
    source ~/.bashrc
    

    错误2:

    ImportError: No module named skimage.io
    

    解决方法:

    pip install -U scikit-image #若没有安装pip: sudo apt install python-pip
    

    ok,最后一步,配置notebook环境

    首先要安装python接口依赖库,在caffe根目录的python文件夹下,有一个requirements.txt的清单文件,上面列出了需要的依赖库,按照这个清单安装就可以了。

    在安装scipy库的时候,需要fortran编译器(gfortran),如果没有这个编译器就会报错,因此,我们可以先安装一下。

    首先进入 caffe/python 目录下,执行安装代码:

    sudo apt-get install gfortran
    
    for req in $(cat requirements.txt); do sudo pip install $req; done
    

    安装完成以后执行:

    sudo pip install -r requirements.txt
    

    就会看到,安装成功的,都会显示Requirement already satisfied, 没有安装成功的,会继续安装。

    然后安装 jupyter :

    sudo pip install jupyter
    

    安装完成后运行 notebook :

    jupyter notebook
    
    或
    
    ipython notebook
    

    就会在浏览器中打开notebook, 点击右上角的New-python2, 就可以新建一个网页一样的文件,扩展名为ipynb。在这个网页上,我们就可以像在命令行下面一样运行python代码了。输入代码后,按shift+enter运行,更多的快捷键,可点击上方的help-Keyboard shortcuts查看,或者先按esc退出编辑状态,再按h键查看。

    这里写图片描述

    为心仪公司折腾DL许久然而并无缘~

    加油。

    参考文章:

    http://www.cnblogs.com/denny402/p/5088399.html

    http://blog.csdn.net/sunpeng19960715/article/details/54835148

    展开全文
  • caffe

    千次阅读 2016-11-30 10:36:18
    make: *** [.build_release/src/caffe/layer.o] Error 1 In file included from ./include/caffe/util/device_alternate.hpp:40:0,  from ./include/caffe/common.hpp:19,  from

    1\编译make: *** [.build_release/src/caffe/layer.o] Error 1


    In file included from ./include/caffe/util/device_alternate.hpp:40:0,
                     from ./include/caffe/common.hpp:19,
                     from src/caffe/net.cpp:10:
    ./include/caffe/util/cudnn.hpp: In function 鈥榲oid caffe::cudnn::createPoolingDesc(cudnnPoolingStruct**, caffe::PoolingParameter_PoolMethod, cudnnPoolingMode_t*, int, int, int, int, int, int)鈥?
    ./include/caffe/util/cudnn.hpp:136:9: error: 鈥楥UDNN_PROPAGATE_NAN鈥?was not declared in this scope
             CUDNN_PROPAGATE_NAN, h, w, pad_h, pad_w, stride_h, stride_w));
             
    ./include/caffe/util/cudnn.hpp:136:68: error: there are no arguments to 鈥榗udnnSetPooling2dDescriptor_v4鈥?that depend on a template parameter, so a declaration of 鈥榗udnnSetPooling2dDescriptor_v4鈥?must be available [-fpermissive]
             CUDNN_PROPAGATE_NAN, h, w, pad_h, pad_w, stride_h, stride_w));
                                                                        
    ./include/caffe/util/cudnn.hpp:136:68: note: (if you use 鈥?fpermissive鈥? G++ will accept your code, but allowing the use of an undeclared name is deprecated)
             CUDNN_PROPAGATE_NAN, h, w, pad_h, pad_w, stride_h, stride_w));
                                                                        
    ./include/caffe/util/cudnn.hpp: At global scope:
    ./include/caffe/util/cudnn.hpp:141:40: error: variable or field 鈥榗reateActivationDescriptor鈥?declared void
     inline void createActivationDescriptor(cudnnActivationDescriptor_t* activ_desc,
                                            

    ./include/caffe/util/cudnn.hpp:142:27: error: expected primary-expression before 鈥榤ode鈥?     cudnnActivationMode_t mode) {

    2\caffe error

          CHECK_LE(shape[i], INT_MAX / count_) <<count_ << "blob size exceeds INT_MAX" ;


    size of blob oversize the int type.


    出现这种问题一般都是因为因为cudnn版本与caffe版本不匹配

    展开全文
  • caffe-Windows】caffe+VS2013+Windows无GPU快速配置教程

    万次阅读 多人点赞 2016-05-09 22:02:48
    首先来一波地址: happynear大神的第三方caffe:...Neil Z大神的第三方caffe:https://initialneil.wordpress.com/2015/01/11/build-caffe-in-windows-with-visual-studio-2013-cu

    前言

    首先来一波地址:

    happynear大神的第三方caffe:http://blog.csdn.net/happynear/article/details/45372231

    Neil Z大神的第三方caffe:https://initialneil.wordpress.com/2015/01/11/build-caffe-in-windows-with-visual-studio-2013-cuda-6-5-opencv-2-4-9/

    caffe提供Windows工具包(caffe-windows):https://github.com/BVLC/caffe/tree/windows  

    百度云下载地址:链接:https://pan.baidu.com/s/1HqcSoBUX2bIjn3FGlC9IUQ 提取码:2i9w 

    微软提供Windows工具包(caffe-master):https://github.com/Microsoft/caffe    

    百度云下载地址:链接:https://pan.baidu.com/s/1kXQonKY9-i3MxKv_3FOn9g 提取码:9l0m 

    VS2013安装包:链接:https://pan.baidu.com/s/1i-BVk5aK7e7qO4Xp0QdFIA 提取码:vm4h 

    如果想移植caffe官网为Linux提供的caffe,可查阅我后面的博客

    熟悉完CPU版本的配置以后,可以启用GPU的配置:http://blog.csdn.net/zb1165048017/article/details/51549105

    我使用的是微软官方提供的链接,基本上与caffe官网上提供安装包差不多,具体区别没有细看,这个caffe无需配置第三方库的环境变量,直接就可以自动下载所需要的库,包含opencv和boost等。

    【注】VS2012的也有人写过,自行参考。此版严格只支持VS2013。此版本无需配置任何第三方环境哦,因为在项目属性里面都已经包含进去了,非常方便。如果出现了一些文件打不开或者其它问题,第一可能是VS自身问题,第二可能你配置过其它caffe,修改过环境变量,导致找不到头文件之类的。

    第一步

    下载caffe官网提供的工具包,复制Windows下CommonSettings.props.example,后缀改为CommonSettings.props,如下:

    第二步

    由于我电脑无GPU,所以修改复制过来的CommonSettings.props配置文件:

     

    第三步

    双击Windows下的caffe.sln,在VS2013中生成解决方案:

    【注】里面的predict 是我自己写的测试项目,其它的才是官网自动生成的哈,官网自带的总共有16个项目,请注意核对~~~ :->

    然后会弹出一个窗口,Nuget所需要的第三方库,可能会未响应,慢慢等吧。如果出现无法连接的那个问题,说明IP ping不过去,直接把问题复制到网上搜,有解决方法。

    第四步

    当下载完毕第三方库,你的caffe-Windows并列文件夹下会有一个第三方库的文件夹

    【注】caffe-windows和caffe-master对caffe.cpp编译以后下载的第三方库都是十六个文件夹。

    最好核对一下文件,免得没下载完就被你关掉了。

    为了方便大家解决这个问题,我直接压缩了一个,下载解压放到与caffe-master并列文件夹即可:链接:https://pan.baidu.com/s/1vir1vNxHYbM_SGkLjiWrEg 密码:1id9

    这个时候,当下载完毕,VS仍在继续执行生成任务,最终可能失败,原因下面会提示说无法打开libcaffe.lib之类的error。解决方法是直接对libcaffe重新生成,或者直接生成一次

    当这个文件生成成功以后,重复一下上一步,对所有文件再重新生成一下,这时候应该不会出现libcaffe.lib无法打开的错误了。

    【PS】按照这个流程编译下来很少会出现无法解析外部符号问题,出现这种问题有很大可能是静态库没连接好,但是微软的所有库是自动下载的,除非没下载全。还有关于一些.h 头文件未找到,请自行核对此头文件的位置,然后再配置文件中随便找个IncludePath(此includePath必须在编译时候被使用),将路径加进去即可,同时也必须注意是否需要相关的lib文件。不过帮忙配置挺多电脑以后,基本没遇到太多问题。

    第五步

    设置一下运行项,解决方案'caffe'->属性

    或者下面直接单启动项目是caffe也行,不过最好改一下,原因相信玩过VS的都清楚,如果是单启动项目,那么在你重新编译工程的时候,只会运行次单启动项目,其它项目不会运行,这就是为什么很多人编译以后发现Release或者Debug文件夹下只有caffe.exe而没有conver_imageset.exe等可执行文件的原因。

    第六步

    运行caffe.cpp,直接双击打开caffe.cpp,然后ctrl+f5直接编译,出现如下命令窗口说明编译成功

    【PS】这个其实告诉你了如何调用caffe.exe去训练你的模型

    两个学习文档

    薛开宇学习笔记:链接: https://pan.baidu.com/s/12OX8B96cjD4Dwx5PGvurEA 提取码: a6he 

    caffe社区学习资料:链接: https://pan.baidu.com/s/1y26duiHqP7PNFTK66lfgVA 提取码: it47

    在下一篇博客中会介绍cifar的训练实例。

    ———————————————————分割线————————————————————————

    博客不会有任何配置问题,前提是严格按照步骤来做,电脑环境变量啥的没被你改的太乱。如果一步一步操作出问题了,你过来咬我。大红字体保证。

    展开全文
  • caffe编译遇到的问题(持续更新)

    万次阅读 多人点赞 2017-04-26 10:59:20
    caffe编译遇到的问题(持续更新) 问题: Invalid MEX-file '/home/abc/caffe/matlab/+caffe/private/caffe_.mexa64': /usr/lib/libgdal.so.20: symbol TIFFReadRGBATileExt version LIBTIFF_4.0 not defined in ...

    caffe编译遇到的问题(持续更新)

     

    问题:opencv2/highgui/highgui_c.h: No such file or directory

    解决办法:
    需要安装opencv
    sudo apt-get install libopencv-dev

    问题:“libgdal.so.20: symbol TIFFReadRGBATileExt version LIBTIFF_4.0 not defined in file libtiff.so.5 with link time reference”

    度娘搜一下发现没有相关问题的解决方法,换谷哥搜,找了个排在前面的链接,找到的原因是libtiff.so.5这个库加载错了,matlab自带的libtiff.so.5里没有LIBTIFF_4.0,而系统库里有,按照他说的搜了一下两个地方的libtiff.so.5,用strings查找了一下还真是这样子。解决方法同libstdc++.so.6一样,export LD_PRELOAD那一行后面加上正确的libtiff.so.5。make mattest成功!

    问题:fatal error: pyconfig.h: 没有那个文件或目录

    解决:

    如果使用Anaconda ,那么导入

    make clean

    export CPLUS_INCLUDE_PATH=/home/你的/anaconda3/include/python3.7m

    make all

    原因

    python路径都改为了anaconda的路径,但是CPLUS的path没有设置,系统中我也没把aneconda设置成默认的python导致的。

    问题:

    Makefile:563: recipe for target '.build_release/src/caffe/test/test_smooth_L1_loss_layer.o' failed

    打开这个文件删掉第11行报错的头文件
    #include “caffe/vision_layers.hpp”

    问题:

    Invalid MEX-file '/home/abc/caffe/matlab/+caffe/private/caffe_.mexa64': /usr/lib/libgdal.so.20:
    symbol TIFFReadRGBATileExt version LIBTIFF_4.0 not defined in file libtiff.so.5 with link time
    reference

    回答 :

    export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtiff.so.5:/usr/lib/x86_64-linux-gnu/libstdc++.so.6

    问题:

     make runtest

    undefined symbol: _ZN5caffe3NetIfE21CopyTrainedLayersFromERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

    回答 :

    I add a line NVCCFLAGS += -G to Makefile and it changes from

    ...
    # Debugging
    ifeq ($(DEBUG), 1)
            COMMON_FLAGS += -DDEBUG -g -O0
            NVCCFLAGS += -G
    else
            COMMON_FLAGS += -DNDEBUG -O2
    endif
    ...
    

    to

    ...
    # Debugging
    ifeq ($(DEBUG), 1)
            COMMON_FLAGS += -DDEBUG -g -O0
            NVCCFLAGS += -G
    else
            COMMON_FLAGS += -DNDEBUG -O2
            NVCCFLAGS += -G
    endif
    ...
    

    Then, compiling caffe again... and make runtest passes without failure!

    问题:

    convert_imageset.cpp:(.text._ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc[_ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc]+0x50):对‘google::base::CheckOpMessageBuilder::NewString()’未定义的引用
    .build_release/tools/convert_imageset.o:在函数‘_GLOBAL__sub_I_convert_imageset.cpp’中:
    convert_imageset.cpp:(.text.startup+0x121):对‘google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)’未定义的引用
    convert_imageset.cpp:(.text.startup+0x289):对‘google::FlagRegisterer::FlagRegisterer<std::string>(char const*, char const*, char const*, std::string*, std::string*)’未定义的引用
    .build_release/tools/convert_imageset.o:在函数‘main’中:
    convert_imageset.cpp:(.text.startup+0x367):对‘google::SetUsageMessage(std::string const&)’未定义的引用
    convert_imageset.cpp:(.text.startup+0xd81):对‘google::protobuf::MessageLite::SerializeToString(std::string*) const’未定义的引用
    .build_release/lib/libcaffe.so:对‘google::protobuf::Message::InitializationErrorString() const’未定义的引用
    .build_release/lib/libcaffe.so:对‘google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputStream*)’未定义的引用
    .build_release/lib/libcaffe.so:对‘google::protobuf::io::CodedInputStream::SetTotalBytesLimit(int, int)’未定义的引用
    .build_release/lib/libcaffe.so:对‘google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::string const&, unsigned char*)’未定义的引用

    回答 :

     我的版本是

    protobuf=3.4.1   与   gcc/g++=4.9

    将gcc与g++升级为5,

    使用如下命令安装gcc、g++

    sudo apt install g++-5

    sudo apt install gcc-5

    链接gcc、g++:

    cd /usr/bin

    sudo rm gcc

    sudo ln -s gcc-5 gcc

    sudo rm g++

    sudo ln -s g++-5g++

    查看现有的gcc和g++版本

    gcc --version

    g++ --version

    sudo ldconfig

    make clean

    make all

    问题:

    Invalid MEX-file '/home/abc/caffe/matlab/+caffe/private/caffe_.mexa64': libcudnn.so.7: 无法打开共享对象文件: 没有
    那个文件或目录

    回答 :

    使用sudo ldconfig /usr/local/cuda-9.0/lib64/命令的时候提示如下的错误
    /sbin/ldconfig.real: /usr/local/cuda-9.0/lib64/libcudnn.so.7 不是符号连接。
    采用如下的命令进行解决:

    sudo ln -sf /usr/local/cuda-9.0/lib64/libcudnn.so.7.x.x(这个地方要查阅以下自己的安装版本
    )/usr/local/cuda-9.0/lib64/libcudnn.so.7
    

    再次执行sudo ldconfig /usr/local/cuda-9.0/lib64/的时候没有提示即成功.

    make runtest.

    pass!

    问题:

    安装 libstdc++ 时,得到错误:下列软件包有未满足的依赖关系: libstdc++-4.8-doc : 冲突: libstdc++6-4.7-doc.

    回答 :

    首先运行这些命令

    
    sudo apt-get update && sudo apt-get upgrade
    
    
    sudo apt-get install build-essential
    
    
    sudo apt-get install aptitude
    
    
    

    然后尝试

    
    sudo apt-get install libstdc++6

    问题:

    Invalid MEX-file '/home/abc/caffe/matlab/+caffe/private/caffe_.mexa64': /usr/local/MATLAB/R2015b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version
    `CXXABI_1.3.8' not found (required by /home/abc/caffe/matlab/+caffe/private/caffe_.mexa64)

    解决:

    export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtiff.so.5:/usr/lib/x86_64-linux-gnu/libstdc++.so.6

    如果还不可以,再:

    在Matlab目录下,建立关于libstdc++.so.6的超链接文件。

    # ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2014a/bin/glnxa64/libstdc++.so.6 

    错误:

    protoc: error while loading shared libraries: libprotoc.so.10: cannot open shared object file: No such file or directory

    解决:

    解决办法:export LD_LIBRARY_PATH=/usr/local/lib

    2. 错误:

    /sbin/ldconfig.real: /usr/local/cuda-8.0/lib64/libcudnn.so.5 不是符号连接

    解决:

    在sudo ldconfig时遇到

    usr/local/cuda-8.0/lib64/libcudnn.so.5 不是符号连接的问题,解决办法也很简单,重新建立链接并删除原链接

    首先找到usr/local/cuda-8.0/lib64/目录,搜索 libcudnn 然后发现

    两个文件

    libcudnn.so.5   和libcudnn.so.5.0.5  理论上只有一个libcudnn.so.5.0.5

    终端执行

    ln -sf /usr/local/cuda-8.0/lib64/libcudnn.so.5.0.5 /usr/local/cuda-8.0/lib64/libcudnn.so.5 

    ln -sf /usr/local/cuda-8.0/lib64/libcudnn.so.5.0.5 /usr/local/cuda-8.0/lib64/libcudnn.so.5  

    再sudo ldconfig时就可以了,这时候会发现usr/local/cuda-8.0/lib64/目录下只有

    libcudnn.so.5.0.5 文件了,libcudnn.so.5消失了。

    1:错误:

        .build_release/tools/caffe: error while loading shared libraries: libhdf5.so.10: cannot open shared object file: No such file    or directory
    解决:

    echo "export LD_LIBRARY_PATH=/home/abc/anaconda2/lib:$LD_LIBRARY_PATH" >>~/.bashrc

    2.错误:

    /usr/lib/x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用

    /usr/lib/x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFReadEncodedStrip@LIBTIFF_4.0’未定义的引用

    /usr/lib/x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用

    /usr/lib/x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFSetWarningHandler@LIBTIFF_4.0’未定义的引用

    /usr/lib/x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFSetErrorHandler@LIBTIFF_4.0’未定义的引用

    collect2:错误:ld返回1

    make:*** [.build_release/tools/extract_features.bin]错误1

    解决:

    这个可能是权限问题,采用以下指令:
    sudo su;
    make all ;
    make test ;
    make runtest ;
    make pycaffe;

    一切都能顺利解决

    4.错误:

    python/caffe/_caffe.cpp:1:52:致命错误:Python.h:没有那个文件或目录

    编译中断。

    make:*** [python/caffe/_caffe.so]错误1

    解决:

    执行:sudofind / -name 'Python.h'找到他的路径,

    在Makefile.config的PYTHON_INCLUDE加上/home/abc/anaconda2/include/python2.7\(路径是自己的)

    5.错误:

    import caffe时:

    ImportError:No module named skimage.io

    解决办法:

    可能是我们没有安装所谓的skimage.io模块,所以可以用以下的命令来安装:

    pip install scikit-image

    关掉终端,重新进入再编译

    或者:sudo pip install scikit-image

    另一种方法:

    sudo apt-get install python-skimage

    6.错误:

    importcaffe

    Traceback(most recent call last):

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

    ImportError:No module named caffe

    解决:

    echo'export PATH="/home/abc/caffe-master/python:$PATH"' >>~/.bashrc

    source~/.bashrc

    关掉终端,重新进入再编译

    7.错误:

    InvalidMEX-file'/home/abc/caffe-master/matlab/+caffe/private/caffe_.mexa64':libhdf5.so.10: cannot open

    sharedobject file: No such file or directory

    解决:

    在linux下输入:

    ldd /home/abc/caffe-master/matlab/+caffe/private/caffe_.mexa64

    在matlab的命令窗口输入:

    !ldd /home/abc/caffe-master/matlab/+caffe/private/caffe_.mexa64 /home/abc/caffe-master/matlab/+caffe/private/caffe_.mexa64

    看看哪个文件没有找到依赖项。我的是libhdf5.so.10他no found然后再看看在linux下他的默认链接是哪一个:

    libhdf5.so.10=> /home/abc/anaconda2/lib/libhdf5.so.10

    然后:

    sudo cp /home/abc/anaconda2/lib/libhdf5.so.10 /usr/lib/x86_64-linux-gnu

    再在matlab窗口下看他又没有找到,一般就可以了。

    這個命令

    strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

    的結果是:
    GLIBCXX_3.4.19
    GLIBCXX_3.4.20
    GLIBCXX_3.4.21
    GLIBCXX_DEBUG_MESSAGE_LENGTH

    8.错误

    Checkfailed: error == cudaSuccess (2 vs. 0) out of memory

    ***Check failure stack trace: ***

    @ 0x7fcd92132daa (unknown)

    解决:

    一次性读入的图片太多了,所以就超出了显存。因此需要将train.prototxt中的文件traintestbatch_size调小一点。

    9.错误:

    在生成lmdb时:

    E0502 00:10:19.496055  5957 io.cpp:80] Could not open or find file /home/abc/caffe-master/data/mushroom/test1/2__09.png 0

    解决方案:

    1.检查数据图像存放的路径是否填写正确

    2.在txt文件里面,图像路径与图像标签是否用空格” “分隔,“\t”分隔会出现此类错误(caffe版本更新,改变了分隔符号)

    10.错误:

    安装ubuntu14.04之后做的第一件事就是更新源,于是从网上找到来网易的源,结果更新后出现如下错误:W: 无法下载 http://mirrors.163.com/ubuntu/dists/trusty-security/main/binary-i386/Packages  Hash 校验和不符

    W: 无法下载 http://mirrors.163.com/ubuntu/dists/trusty-security/universe/binary-i386/Packages  Hash 校验和不符。。。。。。。。。。。。。。。。。。。。。

    解决:

    更新软件源

    11.为了防止报错“E:软件包gcc还没有可供安装的候选者”

    使用如下命令修改资源

    sudo gedit /etc/apt/sources.list

    在打开的文件中添加如下几行

    deb http://mirrors.ustc.edu.cn/ubuntu xenial main

    deb http://mirrors.ustc.edu.cn/ubuntu xenial universe

    deb http://dk.archive.ubuntu.com/ubuntu/ xenial main

    deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe

    使用如下命令更新源

    sudo apt update
    2、 使用如下命令安装gcc、g++

    sudo apt install g++-4.9

    sudo apt install gcc-4.9

    链接gcc、g++实现降级

    cd /usr/bin

    sudo rm gcc

    这里版本号根据你安装的来定,实际情况中可以通过查看/usr/bin目录下gcc的包名字来定

    sudo ln -s gcc-4.9 gcc

    sudo rm g++

    sudo ln -s g++-4.9 g++

    查看现有的gcc和g++版本

    gcc --version

    g++ --version
     

    12。问题:

    Makefile:588: recipe for target ‘.build_release/cuda/src/caffe/layers/embed_layer.o’ failed
    make: * [.build_release/cuda/src/caffe/layers/embed_layer.o] Error 1
    /usr/include/string.h: In function ‘void* __mempcpy_inline(void*, const void*, size_t)’:
    /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope
    return (char *) memcpy (__dest, __src, __n) + __n;

    这个问题疑似跟Ubuntu16.04的版本有关系,google到一个方法:在caffe的Makefile里面第409行(我的)

    NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

    更改为

    NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

    13. 错误

    ubuntu16.04配置MATLAB2016amatest问题:

    在修改makefile里面的CXXFLAGS(大约410行),添加CXXFLAGS += -std=C++11后,直接 make matcaffe 。最后编译成功。

    14.问题:

     

    刚开始我是直接在终端输入:

    [plain] view plain copy

    1. export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:/usr/local/cuda-8.0/lib64    
    2. export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libfreetype.so.6 

    然后再 make mattest 成功,但是关掉终端后再打开测试还是会有同样的错误,于是我就直接在系统文件里面加入路径。

    首先终端输入:

    [plain] view plain copy

    1. sudo gedit ~/.bashrc  

    然后把如下两个路径加到文件最下面。

    [plain] view plain copy

    1. export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:/usr/local/cuda-8.0/lib64    
    2. export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libfreetype.so.6    

    保存 退出,重启电脑。make mattest成功了。

    15.错误

    import caffe时错误提示

    ImportError: No module named google.protobuf.internal
    解决方式:

    sudo pip install  easydict

    sudo pip install protobuf

    16.错误

    MATLAB_DIR must be specified in Makefile.config to build matcaffe.

    make: *** [matlab/+caffe/private/caffe_.] 错误 1

    解决方法:打开caffe-master 文件夹下的Makefile.config文件,找到有MATLAB_DIR:所在行:# MATLAB_DIR := /usr/local/MATLAB/R2014a,将该行的注释去掉。完美解决!

    17.问题

    symbol lookup error: /home/caffe/anaconda/lib/libreadline.so.6: undefined symbol: PC – caffe安装错误解决办法:

    先执行命令locate libreadline.so.6 然后会发现比如系统目录下:/lib/x86_64-Linux-gnu/libreadline.so.6会有这个文件

    然后cp /lib/x86_64-linux-gnu/libreadline.so.6 ~/anaconda/lib

    完美解决!

    18 问题:

    /home/abc/anaconda2/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/abc/caffe-1/.build_release/tools/../lib/libcaffe.so.1.0.0)。执行:$ strings /home/abc/anaconda3/bin/../lib/libstdc++.so.6 | grep GLIBCXX 会发现:GLIBCXX_3.4.。。。GLIBCXX_3.4.19GLIBCXX_FORCE_NEWGLIBCXX_DEBUG_MESSAGE_LENGTH没有3.4.20  

    解决办法

    $ conda install libgcc

    安装后:

    $ strings /home/abc/anaconda3/bin/../lib/libstdc++.so.6 | grep GLIBCXX

    结果:GLIBCXX_3.4.19GLIBCXX_3.4.20GLIBCXX_3.4.21

    解决!

    19.问题:

    在caffe的make run test时error while loading shared libraries: libcudnn.so.5: cannot open shared object file: No such file ordirectory

    解决:

    1. export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

    2. $ sudo echo "/usr/local/cuda-8.0/lib64" > /etc/ld.so.conf.d/cuda.conf
    3. $ sudo ldconfig
    

    20.问题:

    >>> import caffe
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named 'caffe'
    解决:export PYTHONPATH=/home/abc/caffe-master/python:$PYTHONPATH

    21.错误

    “fatal error: hdf5.h: 没有那个文件或目录”解决方法
    Step 1

    Makefile.config文件的第95行,添加/usr/include/hdf5/serial/INCLUDE_DIRS版本不同可能代码有差别。

    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
    

    Step 2

    Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hlhdf5_serial,也就是把下面第一行代码改为第二行代码。

    LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
    LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

    22.错误

    blob size exceeds INT_MAX:
    hdf5过大问题

    23.错误

    Makefile:572:recipe for target ‘.build_release/lib/libcaffe.so.1.0.0’ failed

    collect2: error: ld returned 1 exit status

    Makefile:572:recipe for target ‘.build_release/lib/libcaffe.so.1.0.0’ failed

    make: * [.build_release/lib/libcaffe.so.1.0.0] Error 1

    解决:参照错误21.

    24.错误

    编译MATLAB的make mattest出错:

    Error in caffe.set_mode_cpu (line 5)
    caffe_('set_mode_cpu');
    
    Error in caffe.run_tests (line 6)
    caffe.set_mode_cpu();
     
    >> Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: com.mathworks.services.settings.SettingValidationException: IMsgIDException for "matlab.workingfolder.LastFolderPath": Internal Error: No write permission on directory /home/ubuntu/.matlab/R2017a/temp0x9290x2244. Details: fl:filesystem:AccessDenied.
    	at com.mathworks.mlwidgets.prefs.InitialWorkingFolder.setStringSettingValue(InitialWorkingFolder.java:52)
    	at com.mathworks.mlwidgets.prefs.InitialWorkingFolder.access$000(InitialWorkingFolder.java:15)
    	at com.mathworks.mlwidgets.prefs.InitialWorkingFolder$1.actionPerformed(InitialWorkingFolder.java:34)
    Caused by: com.mathworks.services.settings.SettingValidationException: IMsgIDException for "matlab.workingfolder.LastFolderPath": Internal Error: No write permission on directory /home/ubuntu/.matlab/R2017a/temp0x9290x2244. Details: fl:filesystem:AccessDenied.
    	at com.mathworks.services.settings.Setting.nativeSet(Native Method)
    	at com.mathworks.services.settings.Setting.set(Setting.java:913)
    	at com.mathworks.services.settings.Setting.set(Setting.java:769)
    	at com.mathworks.services.settings.Setting.set(Setting.java:709)
    	at com.mathworks.mlwidgets.prefs.InitialWorkingFolder.setStringSettingValue(InitialWorkingFolder.java:50)
    	... 24 more
    

    解决:切换到root用户再试一下。再有错参考问题14

    25.问题描述:

    error while loading shared libraries: libcudart.so.8.0: cannot open shared object file: No such file or directory

    解决:

    将相应的库文件复制到/usr/lib

    sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig

    sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig

    sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

    ps. ldconfig命令是一个动态链接库管理命令,是为了让动态链接库为系统共享

    26.问题:


    MEX-file '/home/zhangjiqing/caffe/matlab/+caffe/private/caffe_.mexa64' 无效:
    /home/zhangjiqing/caffe/matlab/+caffe/private/caffe_.mexa64: undefined symbol:
    _ZN2cv8imencodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11_InputArrayERSt6vectorIhSaIhEER
    解决:

    make mattest 报出以上错误。

    简单粗暴的解决方法就是将 usr/local/MATLAB/R2016b/bin/glnxa64 中 以下三个文件删除。(建议删除前进行备份)

    
     

    libopencv_core.so.2.4

    libopencv_highgui.so.2.4

    libopencv_imgproc.so.2.4

    27.遇到的错误:

    未定义变量 "caffe" 或类 "caffe.set_mode_cpu"。

    28.错误

    服务器的内存不够。

    29.错误

     ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

    这是因为我装了tensorflow-gpu 1.5版本,而我用的是cuda 8.0和cudnn6.0,1.5版本要求cuda 9.0,我的做法就是滚回:

    [plain] view plain copy

    1. pip install tensorflow-gpu==1.4  

    然后运行就没有报错了。(如果报错:

    libcudnn.so.6:cannot open sharedobjectfile: No such file or directory

    你可以试一下1.2)

    30.错误:

    Makefile:600: recipe for target 'cmake_check_build_system' failed
    make: *** [cmake_check_build_system] Error 1

    换用sudo

    31.错误

    dsg@DSG:~/caffe$ sudo make pycaffe
    NVCC src/caffe/util/math_functions.cu
    nvcc fatal   : Unsupported gpu architecture 'compute_20'
    Makefile:588: recipe for target '.build_release/cuda/src/caffe/util/math_functions.o' failed
    make: *** [.build_release/cuda/src/caffe/util/math_functions.o] Error 1

    解决:

    看了一下 Makefile.config 中 CUDA_ARCH 设置未按规定设置:

    原来:CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
                    -gencode arch=compute_20,code=sm_21 \
                    -gencode arch=compute_30,code=sm_30 \
                    -gencode arch=compute_35,code=sm_35 \
                    -gencode arch=compute_50,code=sm_50 \
                    -gencode arch=compute_52,code=sm_52 \
                    -gencode arch=compute_60,code=sm_60 \
                    -gencode arch=compute_61,code=sm_61 \
                    -gencode arch=compute_61,code=compute_61

    这两行删除就可以了

    • gencode arch=compute_20,code=sm_20 \

    • -gencode arch=compute_20,code=sm_21 \

    变为:

    CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \
            -gencode arch=compute_35,code=sm_35 \
            -gencode arch=compute_50,code=sm_50 \
            -gencode arch=compute_52,code=sm_52 \
            -gencode arch=compute_60,code=sm_60 \
            -gencode arch=compute_61,code=sm_61 \
            -gencode arch=compute_61,code=compute_61

    32.错误

    fatal error: numpy/arrayobject.h: 没有那个文件或目录

    解决方法:

     sudo apt-get install python-numpy

    33。/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.9:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用

    sudo apt-get remove libtiff5-dev
    conda install -c menpo opencv3

    34.error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler op

    caffe c++11编译问题

    问题:error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

    解决:修改Makefile文件

    CXXFLAGS += -pthread -fPIC $(COMMON_FLAGS) $(WARNINGS) -std=c++11
    NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) -std=c++11
    LINKFLAGS += -pthread -fPIC $(COMMON_FLAGS) $(WARNINGS) -std=c++11

    35./usr/local/MATLAB/R2016b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found.

    解决:

    Firstly, install:

    sudo apt-get install libstdc++6
    

    This should already be installed by default, but try it anyway. If it doesn't solve it, just do the following:

    sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade
    

    I didn't perform the "dist-upgrade" command, but the ones before solved it for me。

    later :

    export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtiff.so.5:/usr/lib/x86_64-linux-gnu/libstdc++.so.6

    问题:

    在anaconda虚拟环境中配置caffe的python路径:
    export CPLUS_INCLUDE_PATH=/home/dsg/anaconda3/envs/caffe/include/python2.7
     

     

     

     

     

     

     

    展开全文
  • CaffeCaffe2

    千次阅读 2017-05-18 11:51:07
    CaffeCaffe2
  • Caffe简介

    千次阅读 2016-12-02 18:28:05
    Caffe简介
  • 深度学习Caffe框架入门视频课程

    万人学习 2016-12-23 18:13:18
    深度学习框架caffe入门,详解网络配置中每一个层的结构和参数项,对于超参数配置文件详解每一个参数的含义以及选择策略。对于数据源实例演示了两种常用的数据源LMDB和HDF5格式。课程涉及许多caffe框架的小技巧如绘制...
  • pycharm中import caffe/caffe2

    千次阅读 2017-04-26 17:05:39
    pycharm中import caffe/caffe2
  • caffe安装系列——安装caffe

    万次阅读 2015-10-13 14:21:25
    网上关于caffe的安装教程非常多,但是关于每一步是否操作成功,出现了什么样的错误又该如何处理没有给出说明。因为大家的操作系统的环境千差万别,按照博客中的教程一步步的安装,最后可能失败——这是很常见的哦。...
  • 利用caffecaffenet运行bvlc_reference_caffenet.caffemodel时(即试验一下caffe/examples/images的猫的图片),,命令行如下: ./build/examples/cpp_classification/classification.bin models/bvlc_reference_...
  • caffe-Windows】微软官方caffe之 matlab接口配置

    万次阅读 多人点赞 2016-06-17 22:10:42
    按照微软的官方地址配置可能会出现一个问题caffe_.mexw64找不到引用模块问题,或者在matlab里面压根找不到caffe_这个函数,下面会提到这两个问题。还是按照步骤来吧 【PS1】有GPU同样按照下述步骤,进行即可 【PS2...
  • caffecaffe2的区别

    千次阅读 2018-07-12 21:21:12
    前几天 facebook 开源的 caffe2,让我们在深度学习框架上又多了一个选择。caffe2 宣称是轻量级、模块化和可扩展的一个框架,code once,run anywhere。作为一个老 caffe 玩家,自是要好好研究一番。 依赖处理 第...
  • Caffe基础介绍

    万次阅读 多人点赞 2015-10-31 20:24:56
    Caffe基础介绍!
  • Caffe源码中caffe.proto文件分析

    千次阅读 2017-02-16 18:19:41
    Caffe源码中caffe.proto文件分析
  • 解析caffe生成的caffemodel文件
  • Caffe训练结果输出

    千次阅读 2016-07-18 21:58:48
    Caffe
  • Mxnet2Caffe mxnet模型转换caffe

    千次阅读 2019-03-08 10:56:52
    Mxnet2Caffe 将mxnet静态图symbol转换为caffe的prototxt文本,支持大部分op,caffe不需要的op则需要自己添加,再转换,否则会构建失败 将json转换为prototxt 利用caffe的python接口构建网络,将mxnet的参数param...
  • Caffe2 - Caffemodel 转换为 Caffe2 pb 模型 1. 单输入单输出 - caffe_translator.py Caffe2 提供了将 caffemodel 转换为 caffe2 模型的工具——caffe_translator.py. 其使用: python -m caffe2.python....
  • 如何使用Caffe Caffe教程(http://robots.princeton.edu/courses/COS598/2015sp/slides/Caffe/caffe_tutorial.pdf) 预备知识 Google Protocol Buffer ...
  • import caffe失败 No module named caffe

    万次阅读 2016-12-10 16:16:05
    在成功编译caffe的源码之后,可以在python环境中使用caffe。 在Ubuntu环境下,打开python解释程序,输入import caffe时:出现以下错误 >>>import caffe Traceback (most recent call last): File "", line 1, in ...
  • 一文了解caffe框架

    万次阅读 多人点赞 2019-08-13 16:10:38
    caffe 框架介绍什么是caffeCafee的特点CNN框架:AlexNet数据层(data_layer)数据传递(blob)卷积层(convolution)受限线性单元(RELU)池化层(POOLING)局部响应归一化层(LRN)全连接层(INNER_PRODUCT)...
  • caffecaffe2踩坑经验分享

    万次阅读 2017-06-20 11:40:21
    caffecaffe2踩坑后的吐血经验分享
  • Caffe:生成caffe.pb.h

    2019-01-20 09:44:23
    caffe/src/caffe/proto文件夹利用caffe.proto生成caffe.pb.cc和caffe.pb.h的命令: protoc --cpp_out=./ caffe.proto
  • 您可以查看所有文章的索引:Caffe简明教程0:文章列表 本文介绍在已安装 CUDA8.0 及 cuDNN5.1 的前提下安装Caffe 1. 下载Caffe 下载caffe很简单,从GitHub仓库克隆即可(仓库地址:...
  • Caffe】Linux安装Caffe

    千次阅读 2016-12-03 20:31:40
    Linux安装Caffe笔记
  • caffe 读取caffemodel的参数 C++

    千次阅读 2018-07-04 09:10:39
    3.拷贝 caffe 源码生成的 caffe.pb.cc 和caffe.pb.h 文件到 当前工程目录。 (注意 protobuf 库 跟caffe 版本要匹配) 4.读取代码 #include "caffe.pb.h" #include &lt;fstream&gt; int ...
  •  前面介绍了在win10系统下搭建caffe的环境,其中也讲述了包括caffe对 python的接口支持,环境搭建成功后会在..\caffe-master\Build\x64\Release\下生成如下文件 并且在pycaffe目录下有caffe文件,caffe文件里面是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,638
精华内容 20,255
关键字:

caffe