Ubuntu配置caffe

2024-08-29 02:18
文章标签 配置 ubuntu caffe

本文主要是介绍Ubuntu配置caffe,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Ubuntu是以桌为主面应用的Linux发行版。本人使用Ubuntu 16.04.3版本。可通过以下命令查看本机Ubuntu的内核版本和发行版本号。

cat /etc/issue

输出如下:

Ubuntu 16.04.3 LTS \n \l

本人显卡:TITAN Xp

NVIDIA Titan Xp显卡驱动和CUDA安装

本人安装CUDA Toolkit 9.0版本。下载链接:https://developer.nvidia.com/cuda-90-download-archive

具体选择如下:


整个机器只安装Ubuntu16.04.3系统后,需要先将Ubuntu默认安装并使用的nouveau集成显卡驱动禁用掉。

(1)改变blacklist.conf文件的属性,使之可编辑

sudo chmod 666 /etc/modprobe.d/blacklist.conf

(2)用gedit软件打开,用vi也可以

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

(3)在文件末尾加入以下几句话

blacklist vga16fb

blacklist nouveau

blacklist rivafb

blacklist rivatv

blacklist nvidiafb

(4)保存

(5)按下ctrl+alt+F1进入控制台模式

        sudo service lightdm stop

(6)输入以下命令,使得(1)到(4)步的配置生效,这一步很关键,否则安装显卡驱动时会一直提示目前运行的是nouveau驱动

       sudo update-initramfs -u

(7)重启,按下ctrl+alt+F1进入控制台模式

(8)安装显卡驱动

       sudo service lightdm stop  #关掉界面

       sudo sh cuda_9.1.85_387.26_linux.run

(9)sudo service lightdm start进入图形界面,界面恢复正常表示驱动安装成功

(10)设置环境变量

终端中输入 $ sudo gedit /etc/profile 

在打开的文件末尾,添加以下两行。

$ export PATH=/usr/local/cuda-7.5/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda7.5/lib64

保存文件。

安装CuDNN

cuDNN是GPU加速计算深层神经网络的库。

下载版本:cudnn-9.0-linux-x64-v7.tgz。下载地址:https://developer.nvidia.com/rdp/cudnn-download

解压:

tar -zxvf cudnn-9.0-linux-x64-v7.tgz

sudo cp cuda/include/cudnn.h /usr/local/cuda/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

cd /usr/local/cuda/lib64/

ls

sudo chmod +r libcudnn.so.7.0.5(具体的版本要自己查)

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

sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成软衔接(注意这里要和自己下载的cudnn版本对应,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)

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

sudo ldconfig -v

设置环境变量,
在/etc/profile中添加CUDA环境变量
sudo gedit /etc/profile
在打开的文件最后加入如下3句话
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PYTHONPATH=/home/用户名/caffe/python:$PYTHONPATH (具体注意用户名)
保存后, 使环境变量立即生效,
source /etc/profile
sudo gedit ~/.bashrc
在打开的文件最后加入如下3句话
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}(具体要注意cuda的版本号)
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}(具体要注意cuda的版本号)
export PYTHONPATH=/home/用户名/caffe/python:$PYTHONPATH
source ~/.bashrc
进入/usr/local/cuda/samples, 执行下面的命令来build samples,
cd /usr/local/cuda/samples
sudo make all -j16(如果电脑CPU比较低,则用-j16或者不加)
全部编译完成后, 进入
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery(具体要注意cuda的版本号)
sudo ./deviceQuery
如果出现显卡信息,结果为pass, 则驱动及显卡安装成功。

Caffe安装

1、安装caffe所需要的依赖库

sudo apt-get install python-pipsudo pip install easydict protobuf pydot sudo apt-get install graphviz libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libopenblas-dev liblapack-dev libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev python-tk python-numpy python-scipy python-matplotlibpython-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflagssudo apt-get install --no-install-recommends libboost-all-dev 

2、下载caffe

如果没有安装git,则sudo apt-get install git进行安装

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

3、配置Caffe文件

sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config
USE_CUDNN := 1#去掉这个注释,因为要使用cudnn(但是假如显卡太低级,兼容性不够,就用不了cudnn)
# CPU_ONLY := 1#加上这个注释(因为要使用cuda,所以就不用改)
WITH_PYTHON_LAYER := 1 #去掉这个注释,因为以后经常会用到caffe 的 Python layer
            #使用opencv

            OPENCV_VERSION := 3

然后根据自己的cuda根据该文档提示删去或者注释掉相应的版本的,例如
CUDA_ARCH := #-gencode arch=compute_20,code=sm_20 \
#-gencode arch=compute_20,code=sm_21 \(要根据自己实际才cuda版本注释,文件本身有提示)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib/x86_64-linux-gnu/hdf5/serial(一般是这两条,具体路径可以自己看机器的hdf5文件夹路径)
保存退出。

4、编译Caffe

sudo mkdir build
sudo cd build
sudo cmake ..
sudo make all -j16
sudo make install -j16
sudo make runtest -j16

5、检查编译是否成功

从终端进入python

import caffe

没有错误提示表示成功。


错误和解决方案

1..build_release/src/caffe/proto/caffe.pb.h:9:42: fatal error: google/protobuf/stubs/common.h: 没有那个文件或目录 CXX .build_release/src/caffe/proto/caffe.pb.cc

In file included from .build_release/src/caffe/proto/caffe.pb.cc:5:0:
.build_release/src/caffe/proto/caffe.pb.h:9:42: fatal error: google/protobuf/stubs/common.h: 没有那个文件或目录
 #include <google/protobuf/stubs/common.h>
                                          ^
compilation terminated.
Makefile:588: recipe for target '.build_release/src/caffe/proto/caffe.pb.o' failed
make: *** [.build_release/src/caffe/proto/caffe.pb.o] Error 1

没有安装依赖导致:

sudo apt-get install git
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 libatlas-base-dev
sudo apt-get install python-dev
sudo apt-get insall libgflags-dev libgoogle-glog-dev liblmdb-dev

2、nvcc fatal   : Unsupported gpu architecture 'compute_20'
错误详细信息:
NVCC src/caffe/util/im2col.cu
nvcc fatal   : Unsupported gpu architecture 'compute_20'
Makefile:594: recipe for target '.build_release/cuda/src/caffe/util/im2col.o' failed

make: *** [.build_release/cuda/src/caffe/util/im2col.o] Error 1

异常原因是 caffe的makefile.config中有cuda版本限制,设置的参数有可能cuda不支持。打开makefile.config

# 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

       #-gencode arch=compute_20,code=sm_20 \

       #-gencode arch=compute_20,code=sm_21 \

3、ImportError: No module named skimage.io

pip install scikit-image

4、ImportError:"No module named google.protobuf.internal"

pip install protobuf

5、No module named caffe

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

sudo gedit ~/.bashrc  

添加:

  1. export PYTHONPATH=~/caffe/python:$PYTHONPATH  

上述语句中 “~” 号表示caffe 所在的根目录。

B.关闭文件,在终端写入下面语句,使环境变量生效
[python]  view plain  copy
  1. source ~/.bashrc  


一些小问题

ubuntu没有权限 创建文件夹:在终端直接运行  sudo nautilus ,弹出来的nautilus可以直接GUI操作,中途别关终端。

Ubuntu解压:点击打开链接


笔记:

cuda(CUDA Toolkit目录)安装位置:/usr/local/targets/x86_64-linux/




这篇关于Ubuntu配置caffe的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116557

相关文章

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

CentOS 7 YUM源配置错误的解决方法

《CentOS7YUM源配置错误的解决方法》在使用虚拟机安装CentOS7系统时,我们可能会遇到YUM源配置错误的问题,导致无法正常下载软件包,为了解决这个问题,我们可以替换YUM源... 目录一、备份原有的 YUM 源配置文件二、选择并配置新的 YUM 源三、清理旧的缓存并重建新的缓存四、验证 YUM 源