
- 外文名
- Convolutional Architecture for Fast Feature Embedding
- 领 域
- 人工智能
- 特 点
- 清晰,可读性高,学习快速
- 简 称
- Caffe
- 中文名
- 快速特征嵌入的卷积结构
- 接 口
- Python和Matlab 相关接口
- 实 质
- 一种深度学习框架
-
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:18make: *** [.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, from1\编译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:20caffe编译遇到的问题(持续更新) 问题: 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
1 错误:
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_LENGTH8.错误
Checkfailed: error == cudaSuccess (2 vs. 0) out of memory
***Check failure stack trace: ***
@ 0x7fcd92132daa (unknown)
解决:
一次性读入的图片太多了,所以就超出了显存。因此需要将train.prototxt中的文件train和test的batch_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
- export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:/usr/local/cuda-8.0/lib64
- 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
- sudo gedit ~/.bashrc
然后把如下两个路径加到文件最下面。
[plain] view plain copy
- export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:/usr/local/cuda-8.0/lib64
- 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:$PYTHONPATH21.错误
“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_hl 和hdf5_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
- 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
-
Caffe 与 Caffe2
2017-05-18 11:51:07Caffe 与 Caffe2 -
Caffe简介
2016-12-02 18:28:05Caffe简介 -
深度学习Caffe框架入门视频课程
2016-12-23 18:13:18深度学习框架caffe入门,详解网络配置中每一个层的结构和参数项,对于超参数配置文件详解每一个参数的含义以及选择策略。对于数据源实例演示了两种常用的数据源LMDB和HDF5格式。课程涉及许多caffe框架的小技巧如绘制... -
pycharm中import caffe/caffe2
2017-04-26 17:05:39pycharm中import caffe/caffe2 -
caffe安装系列——安装caffe
2015-10-13 14:21:25网上关于caffe的安装教程非常多,但是关于每一步是否操作成功,出现了什么样的错误又该如何处理没有给出说明。因为大家的操作系统的环境千差万别,按照博客中的教程一步步的安装,最后可能失败——这是很常见的哦。... -
caffe利用caffenet运行bvlc_reference_caffenet.caffemodel时错误
2017-12-14 20:00:50利用caffe的caffenet运行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... -
caffe和caffe2的区别
2018-07-12 21:21:12前几天 facebook 开源的 caffe2,让我们在深度学习框架上又多了一个选择。caffe2 宣称是轻量级、模块化和可扩展的一个框架,code once,run anywhere。作为一个老 caffe 玩家,自是要好好研究一番。 依赖处理 第... -
Caffe基础介绍
2015-10-31 20:24:56Caffe基础介绍! -
Caffe源码中caffe.proto文件分析
2017-02-16 18:19:41Caffe源码中caffe.proto文件分析 -
解析caffe生成的caffemodel文件
2019-01-30 14:28:31解析caffe生成的caffemodel文件 -
Caffe训练结果输出
2016-07-18 21:58:48Caffe -
Mxnet2Caffe mxnet模型转换caffe
2019-03-08 10:56:52Mxnet2Caffe 将mxnet静态图symbol转换为caffe的prototxt文本,支持大部分op,caffe不需要的op则需要自己添加,再转换,否则会构建失败 将json转换为prototxt 利用caffe的python接口构建网络,将mxnet的参数param... -
Caffe2 - (七)Caffemodel 转换为 Caffe2 pb 模型
2018-01-03 09:56:41Caffe2 - Caffemodel 转换为 Caffe2 pb 模型 1. 单输入单输出 - caffe_translator.py Caffe2 提供了将 caffemodel 转换为 caffe2 模型的工具——caffe_translator.py. 其使用: python -m caffe2.python.... -
学习Caffe(二)使用Caffe:Caffe加载模型+Caffe添加新层+Caffe finetune
2016-07-17 20:25:12如何使用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:38caffe 框架介绍什么是caffeCafee的特点CNN框架:AlexNet数据层(data_layer)数据传递(blob)卷积层(convolution)受限线性单元(RELU)池化层(POOLING)局部响应归一化层(LRN)全连接层(INNER_PRODUCT)... -
caffe转caffe2踩坑经验分享
2017-06-20 11:40:21caffe转caffe2踩坑后的吐血经验分享 -
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简明教程4:安装Caffe的第三步-安装Caffe
2018-02-08 09:21:20您可以查看所有文章的索引:Caffe简明教程0:文章列表 本文介绍在已安装 CUDA8.0 及 cuDNN5.1 的前提下安装Caffe 1. 下载Caffe 下载caffe很简单,从GitHub仓库克隆即可(仓库地址:... -
【Caffe】Linux安装Caffe
2016-12-03 20:31:40Linux安装Caffe笔记 -
caffe 读取caffemodel的参数 C++
2018-07-04 09:10:393.拷贝 caffe 源码生成的 caffe.pb.cc 和caffe.pb.h 文件到 当前工程目录。 (注意 protobuf 库 跟caffe 版本要匹配) 4.读取代码 #include "caffe.pb.h" #include <fstream> int ... -
caffe生成caffemodel以及利用caffemodel进行对自己的图片分类
2017-10-05 17:33:44前面介绍了在win10系统下搭建caffe的环境,其中也讲述了包括caffe对 python的接口支持,环境搭建成功后会在..\caffe-master\Build\x64\Release\下生成如下文件 并且在pycaffe目录下有caffe文件,caffe文件里面是...
-
JAVAEE主流框架之SpringMvc框架实战开发教程(源码+讲义
-
关于安卓插件使用时的几个extensions的注意点
-
利用智能手机三轴加速计实现计步器应用软件及商用价值
-
clang-format.exe
-
WebStorm设置智能代码提示及代码没有提示解决方法
-
遥测数据地面网络化传输系统的设计与应用
-
基于支持向量机的旋转机械振动故障诊断研究
-
线程调度:你的电脑能同时做多少件事?
-
EN 17375:2020 Electronic cigarettes and e-liquids-Reference e-liquids-完整英文版(11页)
-
鼠标指针-简约黑.zip
-
Debian 9安装与root密码修改
-
vcf是什么?
-
soul源码学习(十二)-SPI机制在soul中的应用
-
crontab执行失败的几种场景
-
商业的本质——杰克·韦尔奇著
-
经典排序之--快速排序(挖坑填补法)及其优化(区间分割法)
-
转行做IT-第5章 流程控制语句
-
realme flash.zip
-
我的思维模式的阿喀琉斯之踵
-
基于贝叶斯网络的防空雷达毁伤效果评估研究