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

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame