Caffe研究实践 ---环境搭建

首先说一下pycharm下使用caffe的问题,并且是anaconda下配置的caffe cpu版本

pycharm中 ImportError: No module named caffe 

首先,需要看下在命令行能不能import caffe

先CTRL+ALT+T打开终端


python                 %打开python
import caffe         %测试caffe在终端中能不能用
如果还是出现No module named caffe输入一下命令就可以了
export PYTHONPATH=/home/...caffe-master/python   %export caffe文件夹 中python
sudo ldconfig    
或者

sudo vim ~/.bashrc 
将export PYTHONPATH=/home/wanghh/caffe/python:$PYTHONPATH添加到文件中。 
source ~/.bashrc 使更改生效。

如果还是没用,得看一下caffe的python接口是否编译成功

首先cd到caffe的目录下

sudo make pycaffe


这时候在终端应该可以import caffe了 但是在pycharm中还是会出现 No module named caffe
没有想到永久解决的办法,只好每次在在代码前两行加入
import sys
sys.path.append('/home/.../caffe-master/python')     %caffe文件夹 中python的位置


等以后熟悉了再解决永久解决的问题吧
 

一、cpu上的操作:

sudo apt-get update #更新软件列表 

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

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 
1
界面提示如下则说明已成功安装依赖包,否则继续安装直到安装成功。

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 个软件包未被升级。

3.安装必要的库
A:

sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml  

B:

sudo easy_install pillow

4.下载caffe  
cd ~  

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

5.安装python相关的依赖库

cd caffe  

cat python/requirements.txt | xargs -L 1 sudo pip install

6.增加符号链接:
sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7  

sudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ /usr/local/include/python2.7/numpy  

7.修改Makefile.config配置文件
在~/caffe目录下:

A

先将Makefile.config.example复制为Makefile.config

cp Makefile.config.example Makefile.config

B

去掉 # CPU_ONLY: = 1 的注释

用gedit打开Makefile.config(或者直接用vim在终端中打开修改也可以)

gedit Makefile.config

结果如下图:

C

修改PYTHON_INCLUDE路径

/usr/lib/python2.7/dist-packages/numpy/core/include  

改为:

/usr/local/lib/python2.7/dist-packages/numpy/core/include

如图:


D

如果没有 hdf5,安装一下,如果有了,就跳过安装

安装hdf5

sudo apt-get install libhdf5-dev

添加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/

如图:


8.编译caffe
在caffe目录下面:

make pycaffe  

make all  

make test

可以编译成功,caffe基本上就已经安装成功了。

9.使用MNIST手写数据集测试,训练数据模型
A

cd ~/caffe (or whatever you called your Caffe directory)  

./data/mnist/get_mnist.sh  

./examples/mnist/create_mnist.sh  

B

编辑examples/mnist文件夹下的lenet_solver.prototxt文件,将solver_mode模式从GPU改为CPU。

C

训练模型

./examples/mnist/train_lenet.sh  

https://blog.csdn.net/liuweizj12/article/details/52138269(白话先生)
三、总结
到这一步,大功告成了!

A.下载文件太多,太大,太慢

B.步骤麻烦

C.以此文档做为记录

四、参考资料
http://blog.csdn.net/hjl240/article/details/51460884
 

出错参考的下面文章:

https://blog.csdn.net/forest_world/article/details/51371560

.build_release/tools/caffe: error while loading shared libraries: libopencv_core.so.3.3: cannot open

2019年01月06日 11:59:54 Hello_World_admin 阅读数:129

ubuntu@ubuntu-ST-KN:~/caffe$ sudo make runtest -j8

CXX src/caffe/test/test_mvn_layer.cpp
CXX src/caffe/test/test_tanh_layer.cpp
NVCC src/caffe/test/test_im2col_kernel.cu
CXX src/gtest/gtest-all.cpp
CXX/LD -o .build_release/test/test_all.testbin src/caffe/test/test_caffe_main.cpp
.build_release/tools/caffe
.build_release/tools/caffe: error while loading shared libraries: libopencv_core.so.3.3: cannot open shared object file: No such file or directory
Makefile:544: recipe for target 'runtest' failed
make: *** [runtest] Error 127

https://blog.csdn.net/sahusoft/article/details/7388617

先去在/usr/local/lib目录下查看,找到了libopencv_core.so.3.3

再接着执行:

ubuntu@ubuntu-ST-KN:~/caffe$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf

ubuntu@ubuntu-ST-KN:~/caffe$ sudo echo "/usr/local/lib" >> sudo /etc/ld.so.conf

ubuntu@ubuntu-ST-KN:~/caffe$ sudo ldconfig

ubuntu@ubuntu-ST-KN:~/caffe$ sudo make runtest -j8

https://blog.csdn.net/gph2319/article/details/56497740

https://blog.csdn.net/avatar1912/article/details/52072885

error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

https://www.cnblogs.com/Anker/p/3209876.html

和TensorFlow对应的是Theano,Torch; 
Caffe专精于图像处理,Caffe方便,更快入门上手; 
在通用的DL task上,Caffe不如Theano。 
CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)

开发环境搭建:

一、没有GPU

learning@learning-virtual-machine:~$ lspci | grep -i nvidia 
learning@learning-virtual-machine:~$ 

二、ubuntu版本

learning@learning-virtual-machine:~$ uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=15.10
DISTRIB_CODENAME=wily
DISTRIB_DESCRIPTION="Ubuntu 15.10"
NAME="Ubuntu"
VERSION="15.10 (Wily Werewolf)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 15.10"
VERSION_ID="15.10"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
learning@learning-virtual-machine:~$ 

三、gcc

learning@learning-virtual-machine:~$ gcc --version  
gcc.real (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

learning@learning-virtual-machine:~$ 

四、安装依赖库

learning@learning-virtual-machine:~$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
[sudo] password for learning: 
Reading package lists... Done
Building dependency tree      

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

sudo apt-get install libatlas-base-dev

五、安装python

六、安装Opencv

安装Opencv 
http://blog.csdn.net/forest_world/article/details/51372703Ubuntu

七、安装依赖库 
learning@learning-virtual-machine:~$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev 
[sudo] password for learning: 
Reading package lists… Done

八、下载Caffe

learning@learning-virtual-machine:~$ git clone git://github.com/BVLC/caffe.git
Cloning into 'caffe'...
remote: Counting objects: 34637, done.
Receiving objects: 100% (34637/34637), 47.81 MiB | 81.00 KiB/s, done.
remote: Total 34637 (delta 0), reused 0 (delta 0), pack-reused 34636
Resolving deltas: 100% (23287/23287), done.
Checking connectivity... done.
 


九、修改

Makefile 修改: 
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

这一块代码不需要修改 


修改处: 
caffe/examples/cpp_classification/classification.cpp文件

十、编译

learning@learning-virtual-machine:~/caffe$ cp Makefile.config.example Makefile.config

learning@learning-virtual-machine:~/caffe$ ls
caffe.cloc       data      INSTALL.md               matlab     src
cmake            docker    LICENSE                  models     tools
CMakeLists.txt   docs      Makefile                 python
CONTRIBUTING.md  examples  Makefile.config          README.md
CONTRIBUTORS.md  include   Makefile.config.example  scripts
learning@learning-virtual-machine:~/caffe$ 

learning@learning-virtual-machine:~/caffe$ gedit Makefile.config

learning@learning-virtual-machine:~/caffe$ make all 
出现问题:

learning@learning-virtual-machine:~/caffe$ make all
PROTOC src/caffe/proto/caffe.proto
CXX .build_release/src/caffe/proto/caffe.pb.cc
CXX src/caffe/data_transformer.cpp
CXX src/caffe/common.cpp
CXX src/caffe/internal_thread.cpp
CXX src/caffe/blob.cpp
CXX src/caffe/data_reader.cpp
CXX src/caffe/parallel.cpp
CXX src/caffe/util/hdf5.cpp
In file included from src/caffe/util/hdf5.cpp:1:0:
./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory
compilation terminated.
Makefile:572: recipe for target '.build_release/src/caffe/util/hdf5.o' failed
make: *** [.build_release/src/caffe/util/hdf5.o] Error 1
learning@learning-virtual-machine:~/caffe$ 

解决: 
Makefile.config 
INCLUDE_DIRS 
/usr/include/hdf5/serial/ 
Makefile 
LIBRARIES 
hdf5_hl and hdf5 改为 hdf5_serial_hl ,hdf5_serial

出现问题:

LD -o .build_release/lib/libcaffe.so.1.0.0-rc3
CXX tools/finetune_net.cpp
CXX/LD -o .build_release/tools/finetune_net.bin
CXX tools/net_speed_benchmark.cpp
CXX/LD -o .build_release/tools/net_speed_benchmark.bin
CXX tools/compute_image_mean.cpp
CXX/LD -o .build_release/tools/compute_image_mean.bin
.build_release/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)'
.build_release/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_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
Makefile:616: recipe for target '.build_release/tools/compute_image_mean.bin' failed
make: *** [.build_release/tools/compute_image_mean.bin] Error 1


解决方法: 
Makefile 
修改: 
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

编译成功:

make test

make runtest

[----------] 2 tests from BatchReindexLayerTest/0, where TypeParam = caffe::CPUDevice<float>
[ RUN      ] BatchReindexLayerTest/0.TestForward
[       OK ] BatchReindexLayerTest/0.TestForward (0 ms)
[ RUN      ] BatchReindexLayerTest/0.TestGradient
[       OK ] BatchReindexLayerTest/0.TestGradient (373 ms)
[----------] 2 tests from BatchReindexLayerTest/0 (374 ms total)

[----------] Global test environment tear-down
[==========] 1058 tests from 146 test cases ran. (134225 ms total)
[  PASSED  ] 1058 tests.
learning@learning-virtual-machine:~/caffe$ 

十一、配置pycaffe

sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython

sudo apt-get install protobuf-c-compiler protobuf-compiler

learning@learning-virtual-machine:~/caffe$ make pycaffe

learning@learning-virtual-machine:~/caffe$ make pycaffe
CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
touch python/caffe/proto/__init__.py
PROTOC (python) src/caffe/proto/caffe.proto
learning@learning-virtual-machine:~/caffe$ 

sudo gedit /etc/profile 
末尾添加: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH 
用完整路径 
source /etc/profile

learning@learning-virtual-machine:~/caffe$ python 
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type “help”, “copyright”, “credits” or “license” for more information. 
.>>>

出现问题:

.>>> import caffe
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ImportError: No module named caffe

解决方法: 
sudo gedit /etc/profile 
export PYTHONPATH=$PYTHONPATH:/home/learning/caffe/python 
source /etc/profile

补充:baidu解释 
Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。 
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议[1] 。 
Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。 
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[2] 有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

参考资料:Ubuntu14.04 安装Caffe 
http://blog.csdn.net/u011762313/article/details/47262549
-

二、GPU上的操作

https://blog.csdn.net/balixiaxuetian/article/details/79154013

Ubuntu 16.04+CUDA 9.1+cuDNN v7+OpenCV 3.4.0+Caffe+PyCharm 完全安装指南,国内最全!(适用CUDA 9.0)

置顶 2018年01月28日 17:55:22 天朝小王子 阅读数:13696

   原创博客,转载请说明出处!   (本人第一篇博客,用心之作,有用求赞)

    首先得感谢一篇博客的作者yhao:点击打开链接 (http://blog.csdn.net/yhaolpz/article/details/71375762) 他提供了很详细的基于CUDA 8.0 的安装过程。由于我需要安装的是CUDA 9.1+cuDNN v7+OpenCV 3.4.0,照搬CUDA 8.0的安装过程会有很多错误出现,通过我的不断探索也已一一解决(官方安装文档+stackover+Nvidia官方论坛+各种搜和问),而且给出了很多可能出现问题的解决方法。我还添加了很多配置过程的说明,让大家知其然也知其所以然。

我的安装硬件是两块 TITAN Xp 显卡。

安装过程分为以下八步:

1、安装依赖包

2、安装显卡驱动

3、配置环境变量

4、安装 CUDA 9.1

5、安装 cuDNN v7

6、安装 OpenCV 3.4.0

7、安装 caffe

8、用 mnist 手写数据集验证

9、在PyCharm上运行caffe

10、补充(持续更新)

第一步:安装依赖包

这一步和yhao的博客基本相同,安装后续步骤或环境必需的依赖包,按ctrl+ALT+T进入终端,依次输入以下命令(可复制):

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 

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

Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version (12.1ubuntu2).
cmake is already the newest version (3.5.1-1ubuntu3).
git is already the newest version (1:2.7.4-0ubuntu1.3).
0 upgraded, 0 newly installed, 0 to remove and 126 not upgraded.


假如有安装包一直下载失败,可以使用:

sudo apt-get update 

更新下载源,然后重新输入安装命令。

第二步:安装显卡驱动

Ubuntu 16.04 自带 nouveau显卡驱动,这个自带的驱动是不能用于CUDA的,需要卸载重装。假如你以重装过显卡驱动则可跳过这一步。没有重装过的就跟着我的步骤往下走。

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

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

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

blacklist nouveau
options nouveau modeset=0


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

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

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

sudo update-initramfs -u

然后测试一下,假如输入以下命令什么都没显示那么说明禁用nouveau生效了:

lsmod | grep nouveau

接下来就可以开始重装显卡驱动了。

特别注意!!!!!!!!!!!!!!


虽然CUDA 9.1 安装包里说需要安装384.00版本之后的驱动,但是亲测384.98和384.111都是不支持CUDA 9.1的,这也在NVIDIA官方论坛里得到了NVIDIA工程师的肯定,巨坑!所以假如亲们无法安装CUDA 9.1安装包里自带的387版本的驱动,那么就放弃CUDA 9.1,转而下载安装CUDA 9.0。CUDA 9.0是支持384.xx版本的驱动的,配置方法完全相同,此博客同样适用,只是路径中若出现cuda-9.1的地方改成cuda-9.0即可。CUDA 9.0的下载见“10、补充”。

重装显卡驱动提供两种方法:(方法二不适用于 CUDA 9.1,但是适用于CUDA 9.0)

方法一:使用 CUDA 9.1 安装包里自带的驱动

CUDA 9.1安装包里自带的显卡驱动为:linux-x86_64 387.26,可以适配新出的很多显卡。(特别说明:我的电脑安装完387.26版本的驱动后成功配置了caffe,但在某次异常断电重启后显卡驱动失效,感觉此驱动不稳定。求稳的朋友可以安装CUDA 9.0,配置方法此博客同样适用。)

CUDA 9.1 和cuDNN安装包没下的同志可以从我自己上传的百度云下载:链接:https://pan.baidu.com/s/1c4m5aiG 密码:ckj4

      下载完成后,把解压出来的CUDA 安装文件(cuda_9.1.85_387.26_linux.run)移动到 HOME 路径下,方便安装过程的文件检索。然后通过 Ctrl + Alt + F1 进入文本模式,输入帐号密码登录,通过 Ctrl + Alt + F7 可返回图形化模式,在文本模式登录后首先关闭桌面服务:

sudo service lightdm stop

     这里会要求你输入账户的密码。然后通过 Ctrl + Alt + F7 发现已无法成功返回图形化模式,说明桌面服务已成功关闭,注意此步对接下来的 nvidia 驱动安装尤为重要,必需确保桌面服务已关闭。按Ctrl + Alt + F1 再次进入文本模式,先卸载之前的显卡驱动:

sudo apt-get purge nvidia*

然后运行 CUDA 安装文件安装驱动,之前我们已经把 CUDA 安装文件移动至 HOME文件夹,直接通过 sh 命令运行安装文件即可:

sudo sh cuda_9.1.85_387.26_linux.run --no-opengl-libs    #run文件的文件名根据自己下的文件名修改,默认是我提供的文件

     执行此命令约1分钟后会出现安装协议要你看,刚开始是0%,此时长按回车键让此百分比增长,直到100%,然后按照提示操作即可,先输入 accept ,然后是否安装显卡驱动选择yes

 
  1. Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?

  2. (y)es/(n)o/(q)uit: y

    之后会问你是否安装 nvidia-xconfig,建议选择no。

 
  1. do you want to run nvidia-xconfig?

  2. (y)es/(n)o/(q)uit: n

     是否安装 CUDN 9.1 都选择no。也就是我们这次只安装一个显卡驱动,目的是先保证显卡驱动安装成功,否则安装CUDA 9.1很容易失败。

 
  1. Install the CUDA 9.1 Samples?

  2. (y)es/(n)o/(q)uit: n

 
  1. Install the CUDA 9.1 Toolkit?

  2. (y)es/(n)o/(q)uit: n

安装完成后重启系统:

reboot

     重启系统后看看桌面显示的分辨率正不正常。如果应用图标很大,像素很渣,说明显卡驱动没有安装成功,有可能是因为禁用nouveau没有生效,也有可能是驱动不匹配,这时候可以使用我提供的方法二。安装完成后通过以下命令查看显卡信息:

nvidia-settings

我的电脑显示如下信息:

方法二:直接在线安装(此方法需要联网),适用于CUDA 9.0

注意:再次提醒此方法暂时不适用于CUDA 9.1

首先仍旧是关闭桌面服务并卸载之前的显卡驱动(这两步见方法一),随后加入官方ppa源:

sudo add-apt-repository ppa:graphics-drivers/ppa

之后刷新软件库并安装显卡驱动:

 
  1. sudo apt-get update

  2.  
  3. sudo apt-get install nvidia-384 nvidia-settings nvidia-prime

      我用此命令会自动安装 384.111版本的驱动(我使用 nvidia-367 安装的也是384.111版本的驱动)。安装完成后输入reboot重启系统,假如桌面分辨率没什么问题应该安装成功了。之后通过下面命令查看显卡信息:

nvidia-settings

第三步:配置环境变量

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

sudo gedit ~/.bashrc

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

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

  2.  
  3. export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

保存并退出。

第四步:安装 CUDA 9.1

安装完显卡驱动后,CUDA toolkit和samples可单独安装,直接在终端运行安装,无需进入文本模式:

sudo sh cuda_9.1.85_387.26_linux.run --no-opengl-libs

 执行此命令约1分钟后会出现安装协议要你看,刚开始是0%,此时长按回车键让此百分比增长,直到100%,然后按照提示操作即可,先输入 accept ,是否安装显卡驱动选择no:

 
  1. Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?

  2. (y)es/(n)o/(q)uit: n

其他的都选择yes或者默认,等待安装完成:

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?
(y)es/(n)o/(q)uit: n

Install the CUDA 9.1 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-9.1 ]: 

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 9.1 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
 [ default is /home/ccem ]: 

Installing the CUDA Toolkit in /usr/local/cuda-9.1 ...
Installing the CUDA Samples in /home/ccem ...
Copying samples to /home/ccem/NVIDIA_CUDA-9.1_Samples now...
Finished copying samples.

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-9.1
Samples:  Installed in /home/ccem

Please make sure that
 -   PATH includes /usr/local/cuda-9.1/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-9.1/lib64, or, add /usr/local/cuda-9.1/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.1/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.1/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.1 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
 sudo <CudaInstaller>.run -silent -driver

Logfile is /tmp/cuda_install_36731.log

假如出现:

Installing the CUDA Toolkit in /usr/local/cuda-9.1 … 
Missing recommended library: libGLU.so 
Missing recommended library: libX11.so 
Missing recommended library: libXi.so 
Missing recommended library: libXmu.so

原因是缺少相关的依赖库,安装相应库就解决了,安装库完成后重装一下CUDA Toolkit即可:

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 

安装完成后配置CUDA环境变量,使用 gedit 命令打开配置文件:

sudo gedit ~/.bashrc

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

 
  1. export PATH=/usr/local/cuda/bin:$PATH #/usr/local/cuda和/usr/local/cuda-9.1是同一个文件夹,前者是后者的镜像

  2.  
  3. export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

使该配置生效:

source ~/.bashrc

检验CUDA 是否安装成功,输入:

cd /usr/local/cuda-9.1/samples/1_Utilities/deviceQuery

sudo make

./deviceQuery

会出现你的显卡的详细信息。假如出现:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 35
-> CUDA driver version is insufficient for CUDA runtime version
Result = FAIL

那说明显卡驱动版本和CUDA 9.1不适配,目前 384.xx版本的驱动是不支持CUDA 9.1 的,这时候就尝试安装更加新的驱动。若还是不行就放弃 CUDA 9.1,安装CUDA 9.0吧,趁还来得及。此博客同样适用于安装CUDA 9.0,只需将配置文件中出现cuda-9.1的地方改成cuda-9.0即可。

卸载CUDA 9.1 的方法:

cd /usr/local/cuda/bin
sudo ./uninstall_cuda_9.1.pl

卸载完成后如果显示:Not removing directory, it is not empty: /usr/local/cuda-9.1 ,假如需要重装CUDA 9.0的话就把这个文件夹删除。在/usr/local/路劲下输入:

sudo rm -r cuda-9.1

第五步:安装cuDNN v7

我提供的百度云文件解压后的cudnn文件以“.solitairetheme8”结尾,将其重命名为“.tgz”结尾的文件,然后解压到当前文件夹,得到一个cudn 文件夹,该文件夹下有include 和 lib64 两个文件夹,命令行进入其中的include 文件夹路径下,然后进行以下操作:

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

然后命令行进入 cudn/lib64 文件夹路径下,运行以下命令(CUDA 9.0也是一样的命令):

 
  1. sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库

  2. cd /usr/local/cuda/lib64/

  3. sudo rm -rf libcudnn.so libcudnn.so.7 #删除原有动态文件

  4. sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成软衔接

  5. sudo ln -s libcudnn.so.7 libcudnn.so #生成软链接

随后需要将路径/usr/local/cuda/lib64 添加到动态库,分两步:

      1)安装vim。输入:

sudo apt-get install vim-gtk

      2)输入:

sudo vim /etc/ld.so.conf.d/cuda.conf

          键盘按i进入编辑状态,添加文字:                 

/usr/local/cuda/lib64

        然后按esc,输入:(注意有冒号)

:wq  #保存退出

       终端下接着输入 sudo ldconfig 命令使链接生效。

      软链接后可以用sudo ldconfig -v 命令查看是否链接成功:是否有/usr/local/cuda/lib64文件夹。ldconfig命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。


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

 
  1. nvcc: NVIDIA (R) Cuda compiler driver

  2. Copyright (c) 2005-2017 NVIDIA Corporation

  3. Built on Fri_Nov__3_21:07:56_CDT_2017

  4. Cuda compilation tools, release 9.1, V9.1.85

第六步:安装 OpenCV 3.4.0 

  

   进入官网 : http://opencv.org/releases.html , 选择 3.4.0 版本的 sources , 下载 opencv-3.4.0.zip 。随后解压到你要安装的位置,命令行进入已解压的文件夹 opencv-3.4.0 目录下,执行:

mkdir build # 创建编译的文件目录

cd build

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

make -j8  #编译

在98%的时候会等很久很久,属于正常现象。编译过程很顺利,编译成功后安装:

sudo make install #安装

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

pkg-config --modversion opencv

卸载OpenCV的方法:进入OpenCV解压文件夹中的buid 文件夹:

cd /home/ccem/opencv-3.4.0/build

运行:

sudo make uninstall

然后把整个opencv-3.4.0文件夹都删掉。随后再运行:

sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv

把一些残余的动态链接文件和空文件夹删掉。有些文件夹已经被删掉了所以会找不到路径。

第七步:安装 Caffe

首先cd 到你要安装的路径下运行:

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

这时候会出现一个caffe文件夹。命令行进入此文件夹,运行:

sudo cp Makefile.config.example Makefile.config

    此命令是将 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 3 版本

将:
#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  

此python路径为系统自带python的路径,假如想使用Anaconda的python的话需要在其他地方修改。

5.去掉compute_20

找到
# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
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

改为:
# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
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



由于CUDA 9.x +并不支持compute_20,此处不修改的话编译caffe时会报错:

nvcc fatal   : Unsupported gpu architecture 'compute_20'

然后修改 caffe 目录下的 Makefile 文件(修改的地方找起来比较困难的话可以复制到word里查找):

将:
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

     至此caffe配置文件修改完毕,可以开始编译了。假如显卡不是feimi架构的可以输入如下命令防止出现Unsupported gpu architecture 'compute_20'的问题:

cmake -D CMAKE_BUILD_TYPE=RELEASE  -D CUDA_GENERATION=Kepler ..

在 caffe 目录下执行 :

make all -j8

      这时如果之前的配置或安装出错,那么编译就会出现各种各样的问题,所以前面的步骤一定要细心。假如编译失败可对照出现的问题Google解决方案,再次编译之前使用 sudo make clean 命令清除之前的编译,报错:nothing to be done for all 就说明没有清除之前的编译。编译成功后可运行测试:

sudo make runtest -j8

运行结果如下:


 

可以看到2123个tests中只有一个失败了:

BatchReindexLayerTest/3.TestGradient, where TypeParam = caffe::GPUDevice<double>

Google了一下,貌似使用CUDA 9.1加双显卡的都有这个错误,暂且不管它,目前不影响使用。使用mnist测试程序是可以运行的。CUDA 9.0则测试全部通过。

第八步:用 mnist 手写数据集验证

mnist测试方法如下(以下命令都在caffe目录下运行):

1)进入caffe文件夹,看看此文件夹里是否有一个build文件夹,没有的话运行:

make all -j8

2)下载mnist数据库,在caffe目录下运行:

sudo ./data/mnist/get_mnist.sh

3) 将二进制数据库文件转换成lmdb数据库格式:

sudo ./examples/mnist/create_mnist.sh

4)训练lenet网络:

sudo ./examples/mnist/train_lenet.sh

结果如下:


       

      可以看到测试的识别准确率为 99.08%。至此整个caffe已经配置完毕。

第九步:在PyCharm上运行caffe  

     

目前虽然已经成功配置了caffe,但是只能在命令行里运行,弊端很明显,不利于调试。所以可以配置一下使其在PyCharm上运行。PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。

我已经成功在PyCharm上运行了caffe,这一部分我另外写了一篇博客,详见:点击打开链接 

:http://blog.csdn.net/balixiaxuetian/article/details/79161821

10、补充(持续更新)

1)caffe配置完成后将cuda 9.1换成 9.0的方法

我前面也提到过,电脑安装CUDA 9.1自带的显卡驱动版本 387.26不稳定,在某次重启后失效了。于是我重新安装了384.111版本的显卡驱动。但恶心的是,CUDA 9.1 不支持384.xx版本的驱动,于是我想换成CUDA 9.0。但是此时我已经完全配置好caffe了,不需要全部推倒重来,只需先卸载CUDA 9.1和openCV 3.4.0,然后重装CUDA 9.0,cuDNN 和openCV 3.4.0 即可,卸载的方法前面步骤里有,其他的都不需要动(完全按照我的教程配置的话环境变量都不需要改,否则需要检查一下环境变量,将cuda-9.1出现的地方换成cuda-9.0), make runtest 即可全部通过。第九步中把pycaffe重新编译一下即可。

 2)CUDA 9.0下载

CUDA 9.0可在此链接下载:https://developer.nvidia.com/cuda-toolkit-archive,还需要下载对应的cuDNN:https://developer.nvidia.com/rdp/cudnn-download#a-collapse704-9 ,也可以通过我的百度云分享下载,见我的资源:点击打开链接http://download.csdn.net/download/balixiaxuetian/10229488

下面是pycharm配置caffe运行的设置

Ubuntu 16.04 使用PyCharm运行caffe配置

置顶 2018年01月25日 15:23:07 天朝小王子 阅读数:2201

原创博客,转载请说明出处!

Ubuntu 16.04+CUDA 9.1+cuDNN v7+OpenCV 3.4.0+Caffe的配置见我的另一篇博文,这边博文讲解配置好caffe之后如何使其在PyCharm上运行。配置过程分为以下六步:

1、安装依赖库

2、配置环境变量

3、编译 pycaffe

4、配置PyCharm所需环境

5、安装PyCharm

6、设置PyCharm解释器

以下为详细配置过程:

1、安装依赖库

为了防止遗漏,把下面的都装一下,已经装过的不会重复安装的,防止后面出现找不到模块的问题,在终端依次输入如下命令:

pip install -U scikit-image (有待安装) #若没有安装pip: sudo apt install python-pip
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 python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags (有待安装的包)
sudo apt-get install protobuf-c-compiler protobuf-compiler  (有待安装的包)
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev (如果前面已经安装这里不需要)

2、配置环境变量


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

sudo gedit ~/.bashrc

在文件最下面写入(导入caffe/python文件夹的路径,检查一下此路径是否和我的相同):

export PYTHONPATH=~/caffe/python:$PYTHONPATH (注意路径 我的是/usr/local/caffe)

不做这一步 import caffe的时候会报错:找不到caffe模块。保存退出,并在终端写入下面语句,使环境变量生效:

source ~/.bashrc

3、编译 pycaffe

cd 进入caffe文件夹,运行:

sudo make pycaffe -j8

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

python(注意运行哪个版本的python)

然后导入 caffe :

>>> import caffe

若不报错则表示 caffe 的 python 接口已正确编译。假如报错的话执行一下 “4、配置pycharm所需环境”后再试一下。退出python按ctrl+z即可。


 

4、配置PyCharm所需环境

这一步的目的其实和第一步相同,进一步安装所需的依赖库。在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, 没有安装成功的,会继续安装。


 

5、安装PyCharm

安装过程参考:http://blog.csdn.net/zhuanshu666/article/details/73554885

专业版的可能无法激活,可以下载免费的社区版。

打开PyCharm客户端的方法:

cd /home/ccem/Downloads/pycharm-2017.3.3/bin  #此处按照自己的pycharm解压文件夹的路径修改
sh ./pycharm.sh

6、设置PyCharm解释器

由于系统中安装了多个python版本,需要指定使用哪一个版本。先创建一个工程(命名为test)和一个python文件,创建方法和visual studio类似。然后设置解释器:依次点击:左上角file -- settings..-- Project:test-- Project interpreter --弹出窗口右上角齿轮--add local--System Interpreter --下拉菜单选择 usr/bin/python 2.7 -- OK -- Apply

随后在python文件里输入 import caffe ,点击上方菜单栏里的Run下面的Run运行,显示Process finished with exit code 0 说明运行成功。假如显示找不到某个模块就通过上述步骤在下拉里选择其他解释器进行尝试。选择解释器时下面会列出已经安装的依赖库,安装依赖库最多的那个一般就是要选的那个。


接下来就可以愉快的开始caffe的编程之旅啦!

https://blog.csdn.net/xunan003/article/details/73555424  anaconda下caffe的坑

caffe利用anaconda配置python接口(cpu版可视化工具)

2017年06月22日 16:08:40 xunan003 阅读数:8838

参考博文:http://www.cnblogs.com/denny402/p/5679037.html

前沿

       何为可视化,请参考《21天实战caffe第16天》可视化的相关理论。caffe提供三种接口,分别为C++接口、python接口和matlab接口。C++接口不用我们自己配置,因为caffe的底层代码都是由C++编写的,而python接口和matlab接口作为可视化的工具需要我们自己配置。由于matlab文件太大,所以博主没有配置matlab接口,今天就来讲一讲博主配置python接口的一些心酸事并最终成功跳坑。

一、坑人的安装方法

        首先我们要知道的是 python环境不能单独配置,必须要先编译好caffe,才能编译python环境。如果读者连caffe都没有配置好那就不要玩接口了,先去把caffe配置好。相关配置方法可以参考博主博文,博文链接:点击打开链接

       参考博文中提到的第一种方法,先安装python和pip,然后再安装pyhon接口依赖库配置。一般ubuntu14.04系统自带的是python2.7,所以如果我们不要求更高的python版本就默认版的就可以了,如果需要可以自行搜索安装python3.4的方法。具体配置接口的方法与2.7版本类似。我们就以python2.7为例说明。

       如果选用安装python接口依赖库的方法来配置,我相信你们会被各种各样的问题给整哭的,按照参考博文的方法去配置。并不是方法本身有什么问题,解决的方法只有不停的重新安装,一次不成功马上再来一次。

二、利用anaconda安装

1、首先第一步我们来安装anaconda,其实如果我们学到这里了,我相信大多数人已经安装了anaconda。安装方法为:

      先到https://www.continuum.io/downloads 下载anaconda, 现在的版本有python2.7版本和python3.5版本,下载好对应版本、对应系统的anaconda,它实际上是一个sh脚本文件,大约280M左右。我下载的是linux版的python 2.7版本。

        下载成功后,在终端执行(2.7版本):

# bash Anaconda2-2.4.1-Linux-x86_64.sh

        或者3.5 版本:

# bash Anaconda3-2.4.1-Linux-x86_64.sh

        在安装的过程中,会问你安装路径,直接回车默认就可以了。有个地方问你是否将anaconda安装路径加入到环境变量(.bashrc)中,这个一定要输入yes

安装成功后,会有当前用户根目录下生成一个anaconda2的文件夹,里面就是安装好的内容。

        博主安装的为anaconda2。安装完成后在主文件夹下生成了一个文件为anaconda2。

2、我们来看看之前我们安装过的python依赖库,注意这个跟咱们之前配置caffe安装的那些依赖库关系不大。不要想着我以前装过了怎么还要装。

       首先我们要知道我们到底要安装那些依赖库。在caffe/python目录下我们可以找到一个文件为requirements.txt,里面都是我们需要安装的,后面的版本号我们可以不用去要求,管他,最新版的也可以的。

        在安装之前,我们先来查看一下我们都已经安装过了哪些。在主目录下命令:conda list将会把所有的以安装的显示出来。我们只要对着requirements.txt这个文件查找哪个还没有安装。

        这里有一个问题,可能会出现报错:conda:未找到命令

        解决方法:

        在你的主目录(自己的权限目录)下,使用下面的命令:

 
  1. export PATH=~/anaconda2/bin:$PATH

  2. conda --v

        如果结果是你的anaconda2的版本号,那就成功了

        然后就可以使用conda命令了。

        将没有安装的库应用以下命令安装:

conda install ***

        例如博主经过conda list检查然后发现leveldb和protobuf没有安装,则安装:

 
  1. conda install leveldb

  2. conda install protobuf


       安装完成后,我们就可以编译配置了。

3、编译python接口      

      首先,将caffe根目录下的python文件夹加入到环境变量

      打开配置文件bashrc

# sudo vi ~/.bashrc

      在最后面加入

export PYTHONPATH=/home/xxx/caffe/python:$PYTHONPATH

      注意 /home/xxx/caffe/python 是我的路径,这个地方每个人都不同,需要修改

      保存退出,更新配置文件

# sudo ldconfig

       然后修改编译配置文件Makefile.config。在caffe目录下打开Makefile.config修改。注意,不是随便修改的,按照参考博文的说法直接给了结果,一开始是不知所云的,所以汇总一下需要修改的地方。汉字标注需要注意:

 
  1. ## Refer to http://caffe.berkeleyvision.org/installation.html

  2. # Contributions simplifying and improving our build system are welcome!

  3.  
  4. # cuDNN acceleration switch (uncomment to build with cuDNN).

  5. # USE_CUDNN := 1 #参考博文是gpu版本的,所以这里没有屏蔽,而我们cpu版本的则需要屏蔽

  6.  
  7. # CPU-only switch (uncomment to build without GPU support).

  8. CPU_ONLY := 1 #cpu版本的不需要屏蔽

  9.  
  10. # uncomment to disable IO dependencies and corresponding data layers

  11. # USE_OPENCV := 0

  12. # USE_LEVELDB := 0

  13. # USE_LMDB := 0

  14.  
  15. # uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary)

  16. # You should not set this flag if you will be reading LMDBs with any

  17. # possibility of simultaneous read and write

  18. # ALLOW_LMDB_NOLOCK := 1

  19.  
  20. # Uncomment if you're using OpenCV 3

  21. # OPENCV_VERSION := 3

  22.  
  23. # To customize your choice of compiler, uncomment and set the following.

  24. # N.B. the default for Linux is g++ and the default for OSX is clang++

  25. # CUSTOM_CXX := g++

  26.  
  27. # CUDA directory contains bin/ and lib/ directories that we need.

  28. CUDA_DIR := /usr/local/cuda

  29. # On Ubuntu 14.04, if cuda tools are installed via

  30. # "sudo apt-get install nvidia-cuda-toolkit" then use this instead:

  31. # CUDA_DIR := /usr

  32.  
  33. # CUDA architecture setting: going with all of them.

  34. # For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.

  35. # For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.

  36. CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \

  37. -gencode arch=compute_20,code=sm_21 \

  38. -gencode arch=compute_30,code=sm_30 \

  39. -gencode arch=compute_35,code=sm_35 \

  40. -gencode arch=compute_50,code=sm_50 \

  41. -gencode arch=compute_52,code=sm_52 \

  42. -gencode arch=compute_60,code=sm_60 \

  43. -gencode arch=compute_61,code=sm_61 \

  44. -gencode arch=compute_61,code=compute_61

  45.  
  46. # BLAS choice:

  47. # atlas for ATLAS (default)

  48. # mkl for MKL

  49. # open for OpenBlas

  50. BLAS := atlas

  51. # Custom (MKL/ATLAS/OpenBLAS) include and lib directories.

  52. # Leave commented to accept the defaults for your choice of BLAS

  53. # (which should work)!

  54. # BLAS_INCLUDE := /path/to/your/blas

  55. # BLAS_LIB := /path/to/your/blas

  56.  
  57. # Homebrew puts openblas in a directory that is not on the standard search path

  58. # BLAS_INCLUDE := $(shell brew --prefix openblas)/include

  59. # BLAS_LIB := $(shell brew --prefix openblas)/lib

  60.  
  61. # This is required only if you will compile the matlab interface.

  62. # MATLAB directory should contain the mex binary in /bin.

  63. # MATLAB_DIR := /usr/local

  64. # MATLAB_DIR := /Applications/MATLAB_R2012b.app

  65.  
  66. # NOTE: this is required only if you will compile the python interface.

  67. # We need to be able to find Python.h and numpy/arrayobject.h.

  68. PYTHON_INCLUDE := /usr/include/python2.7 \

  69. /usr/lib/python2.7/dist-packages/numpy/core/include

  70. # Anaconda Python distribution is quite popular. Include path:

  71. # Verify anaconda location, sometimes it's in root.

  72. ANACONDA_HOME := $(HOME)/anaconda #此处anaconda路径原始文件是屏蔽的,现在我们把它改过来下面的也是这样,这是基于python2.7版本需要修改的地方

  73. PYTHON_INCLUDE := $(ANACONDA_HOME)/include \

  74. $(ANACONDA_HOME)/include/python2.7 \

  75. $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include

  76.  
  77. # Uncomment to use Python 3 (default is Python 2)

  78. # PYTHON_LIBRARIES := boost_python3 python3.5m #如果你的python是3.5版本的那么就需要把这里的屏蔽去掉

  79. # PYTHON_INCLUDE := /usr/include/python3.5m \

  80. # /usr/lib/python3.5/dist-packages/numpy/core/include

  81.  
  82. # We need to be able to find libpythonX.X.so or .dylib.

  83. # PYTHON_LIB := /usr/lib

  84. PYTHON_LIB := $(ANACONDA_HOME)/lib

  85.  
  86. # Homebrew installs numpy in a non standard path (keg only)

  87. # PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include

  88. # PYTHON_LIB += $(shell brew --prefix numpy)/lib

  89.  
  90. # Uncomment to support layers written in Python (will link against Python libs)

  91. WITH_PYTHON_LAYER := 1

  92.  
  93. # Whatever else you find you need goes here.

  94. INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /home/xn/local_install/include

  95. LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /home/xn/local_install/lib

  96.  
  97. # If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies

  98. # INCLUDE_DIRS += $(shell brew --prefix)/include

  99. # LIBRARY_DIRS += $(shell brew --prefix)/lib

  100.  
  101. # NCCL acceleration switch (uncomment to build with NCCL)

  102. # https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0)

  103. # USE_NCCL := 1

  104.  
  105. # Uncomment to use `pkg-config` to specify OpenCV library paths.

  106. # (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)

  107. # USE_PKG_CONFIG := 1

  108.  
  109. # N.B. both build and distribute dirs are cleared on `make clean`

  110. BUILD_DIR := build

  111. DISTRIBUTE_DIR := distribute

  112.  
  113. # Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171

  114. # DEBUG := 1

  115.  
  116. # The ID of the GPU that 'make runtest' will use to run unit tests.

  117. TEST_GPUID := 0

  118.  
  119. # enable pretty build (comment to see full commands)

  120. Q ?= @

  121.  

       至此Makefile.config文件修改并保存完成。下面就是真的编译了。

      编译之前最好先clean一下可以减少出错几率:

sudo make clean

      在caffe路径下编译:

sudo make pycaffe

       编译成功后,不能重复编译,否则会提示 Nothing to be done for "pycaffe"的错误。下图是编译成功的界面。


      

       防止其它意外的错误,最好还编译一下:

 
  1. # sudo make test -j8

  2. # sudo make runtest -j8

(1)也许你在编译runtest的时候,会报这样的错误:

.build_release/test/test_all.testbin: error while loading shared libraries: libhdf5.so.10: cannot open shared object file: No such file or directory

       这是因为 libhdf5.so的版本问题,你可以进入/usr/lib/x86_64-linux-gnu看一下,你的libhdf5.so.x中的那个x是多少,比如我的是libhdf5.so.7

       因此可以执行下面几行代码解决:

 
  1. # cd /usr/lib/x86_64-linux-gnu

  2. # sudo ln -s libhdf5.so.7 libhdf5.so.10

  3. # sudo ln -s libhdf5_hl.so.7 libhdf5_hl.so.10

  4. # sudo ldconfig

 (2)也可能这样报错: .build_release/tools/caffe: error while loading shared libraries: libboost_system.so.1.58.0: cannot open shared object file: No such file or directory

原因与上面类似在usr/lib/x86_64-linux-gnu下查看到我的版本是libboost_system.so.1.54.0,所以用下面的命令解决后重新runtest。

 
  1. # cd /usr/lib/x86_64-linux-gnu

  2. # sudo ln -s libboost_system.so.1.54.0 libboost_system.so.1.58.0

  3. # sudo ln -s _libboost_system_hl.so.1.54.0 libboost_system_hl.so.1.58.0

  4. # sudo ldconfig

(3)之后还可能出现这样的报错:.build_release/tools/caffe: error while loading shared libraries: libboost_thread.so.1.58.0: cannot open shared object file: No such file or directory
原因与上面类似,解决方法:

 
  1. # cd /usr/lib/x86_64-linux-gnu

  2. # sudo ln -s libboost_thread.so.1.54.0 libboost_thread.so.1.58.0

  3. # sudo ln -s _libboost_thread_hl.so.1.54.0 libboost_thread_hl.so.1.58.0

  4. # sudo ldconfig


完成这些只有,再次runtest发现可以运行了。

最终查看python接口是否编译成功:
进入python环境,进行import操作

 
  1. # python

  2. >>> import caffe

博主最后这里出现一个问题,配置不成功。出现报错无法识别caffe。搜索了解决方案但不可以解决。不知到是哪里除了问题,唯一有可能的就是

# sudo make runtest -j8

出了问题,然后博主重新执行此命令,make完成后发现成功了。至此python环境接口配置完成。
3、安装jupyter
       安装了python还不行,还得安装一下ipython,后者更加方便快捷,更有自动补全功能。而ipython notebook是ipython的最好展现方式。最新的版本改名为jupyter notebook,我们先来安装一下。(如果安装了anaconda, jupyter notebook就已经自动装好,不需要再安装)

# sudo pip install jupyter


       这里博主又出现了报错,一堆红色,如下图。

      根据之前的经验,应该是不可以用sudo权限运行。采用如下命令:

pip install jupyter

       成功!!!!

也有可能不成功,因为本来是配好了,结果博主隔了两天重新启动jupter无法打开了。不知哪里出现问题。

根据以上红色的问题发现还是pip的问题,其实就是pip版本太老的原因,博主先卸载原先pip,命令如下:

sudo apt-get remove python-pip


然后利用install安装新下载的pip,不要用apt-get安装。

 
  1. wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz"

  2.  
  3. tar -xzvf pip-1.5.6.tar.gz

  4.  
  5. cd pip-1.5.6

  6.  
  7. python setup.py install


然后再次利用pip安装看看能不能成功,如果继续报错,则利用如下命令更新pip:

sudo easy_install --upgrade pip

然后再次安装jupyter应该就差不多可以成功了。
安装成功后,运行notebook

# jupyter notebook

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

至此,全部完成。如有意见或建议,请留言!

如要退出jupyter终端环境,按下ctrl+c然后选择y即可。

180519 五种方法利用Anaconda安装Caffe

2018年05月19日 20:41:22 hustliu2018 阅读数:6002

 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_33039859/article/details/80377356

Google: 使用anaconda安装caffe 
使用Anaconda安装caffe 
ubuntu16.04 + caffe +python 
在 python3.5 下使用 Caffe 
Python3.5 Anaconda3 Caffe深度学习框架搭建 
*-ubuntu16.04下安装opencv3.1+anaconda2+caffe 
*-Ubuntu16.04+matlab2014a+anaconda2+OpenCV3.1+caffe安装 
Ubuntu 16.04下安装CUDA8.0+Caffe+TensorFlow-GPU+Pycharm过程(Simple) 
Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装

方法1Conda-caffe-python=2.7 
这里写图片描述

# 虽然该方法安装的是python=2.7版本,但是目前是我看到最简单的安装方法了
# 首先创建一个新的运行环境并安装相应工具包,避免与其他配置的冲突
# 指定版python=2.7 此处一起先安装anaconda,进而可以安装spyder与jupyter编辑器
conda create -n caffe27 python=2.7 anaconda 
# 然后下面二选一即可,安装caffe
conda install -c conda-forge caffe
conda install -c conda-forge/label/broken caffe 

# 如果出现numpy导入错误,是因为 conda-forge中的numpy版本过低,可再输入下面命令
pip install numpy --upgrade
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这里写图片描述

方法2Install Caffe With Anaconda python=2.7

方法3使用Anaconda创建caffe和tensorflow共存环境python=3.6

方法4Caffe installation with anaconda in one line (with solvable bugs)

  • 笔者方法 4.1
$conda create -n py2cv3 python=2.7
$source activate py2cv3
(py2cv3)$conda install -c intel caffe
  • 1
  • 2
  • 3
  • 读者留言 4.2
GPU version: conda install -c anaconda caffe-gpu 
CPU version: conda install -c anaconda caffe
  • 1
  • 2
  • 添加编辑器(否者其他编辑器无法访问caffe所在目录,出现 no module named caffe)
conda install spyder
conda install jupyter notebook
  • 1
  • 2
  • 解决conda升级后出现QOpenGLShader问题

  • 将Github下载的代码解压,复制所有文件至caffe-gpu 安装的文件夹,警告出选skip

  • 运行example的时候,将import caffe方式jupyter notebook最前面,后面这点非常重要,否则会报错!

方法5Install Caffe With Anaconda (Python 3 version)

猜你喜欢

转载自blog.csdn.net/gdengden/article/details/88372954