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

相关文章

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨