说明:如果你按照这个文档操作,请完全按照这下面的目录进行操作。如你是对这个环境非常熟悉,就当我没有说这句,哈哈~
整体步骤:

  1. 查询显卡型号
  2. 安装显卡驱动
  3. 安装CUDA
  4. 安装cuDNN
  5. 安装opencv
  6. 配置caffe
  7. 安装ffmpeg,此项如果没有用到可以选择不安装

详细描述:

  1. 显卡型号查询
 lspci | grep -i nvidia

  1. 根据查询出的显卡型号去下载对应的显卡驱动 NVIDIA官网,我这里下载是GeForce GTX 1050Ti的显卡驱动
  2. 显卡驱动安装
    1)首先屏蔽自带的显卡驱动
vim  /etc/modprobe.d/blacklist.conf
#最后一行加入后面的内容将自带显卡驱动屏蔽 blacklist nouveau
sudo update-initramfs -u #将修改后的内容生效

此处需要重启一下电脑

2)重启电脑后Ctrl+Alt+F1进入命令行界面,此处会黑屏了。这时一定要找一个备用电脑来看接下的操作

sudo service lightdm stop
sudo chmod +x ./NVIDIA-Linux-x86_64-384.111.run --no-opengl-files

重点:如果你是双显卡的电脑,请一定要加上这个参数–no-opengl-files,如果没有加,那么你将无法进去图形界面了,就会在登录页面一直登录。
重启电脑后,输入sudo nvidia-smi 命令会显示显卡相关信息,如果看到以下图片说明显卡驱动安装成功了。

4. 安装CUDA
1)下载安装官网地址
2)安装,一定要去安装的时候显卡驱动去掉,因为我们已经安装过驱动了。

sudo chmod 777 cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run

3)环境配置

#vim ~/.bashrc 最后增加以下就可以了
exportPATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
exportLD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

4) 测试是否安装成功

cd /usr/local/cuda-10.1/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery

看到以下显示,说明你的cuda安装成功了。
5. 安装配置cuDNN
1)下载cuDNN下载,此处需要注意的是版本要与cuda版本一致
2)安装

sudo tar -zxvf ./cudnn-10.1-linux-x64-v7.tgz
cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include  #复制头文件到cuda头文件目录
cd ..cd lib64sudo cp lib*/usr/local/cuda/lib64/    #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7    #删除原有动态文件
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7  #生成软衔接
sudo ln -s libcudnn.so.7 libcudnn.so      #生成软链接
  1. 安装opencv+opencv_contrib
  1. 下载opencv下载地址,可以选择对应的版本,opencv与opencv_contrib要版本一致。
    2)先解压opencv,再将opencv_contrib源码解压到opencv目录中
    3)注:在第4步安装的时候就出现以下两个错误:
  • 编译时遇到缺少boostdesc_bgm.i等文件,手动添加到缺少文件的位置(opencv_contrib-3.4.6/modules/xfeatures2d/src)下载地址
  • 找不到hpp文件目录,根据报错路径找到报错位置,修改hpp文件为绝对路径
/usr/local/opencv-3.4.6/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:42: fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录
/usr/local/opencv-3.4.6/modules/stitching/src/precomp.hpp:91:42: fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录/usr/local/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp/usr/local/opencv-3.4.6/modules/stitching/src/matchers.cpp:52:35: fatal error: opencv2/xfeatures2d.hpp: 没有那个文件或目录
/usr/local/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp/usr/local/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp:43:43: fatal error: opencv2/xfeatures2d/nonfree.hpp: 没有那个文件或目录/usr/local/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/include/opencv2/xfeatures2d/nonfree.hpp

4)安装
谨记设置WITH_GTK=ON

cd release // release是自己创建的存放cmake结果的目录
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=/opencv_contrib路径/modules ..
make -j8
sudo make install
  1. 配置caffe
  1. 安装依赖包
apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
apt-get install --no-install-recommends libboost-all-dev
apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2)下载源码包caffe git 地址
3)修改配置文件

cp Makefile.config.example Makefile.config
vim Makefile.config

将以下三项的注释去掉

#USE_CUDNN:= 1
#OPENCV_VERSION:= 3
#WITH_PYTHON_LAYER:= 1

修改此处(此处不要直接全部手复制,直接加一些新加的部分就可以),如下:

#Whatever else you find you need goes here
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,记得这个文件和Makefile.config不是一个文件噢

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC$(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

4) 编译,测试

make all -j8
sudo make runtest


当看到以下显示时,恭喜你,配置完成了。如果你需要ffmpeg可以安装,如果不需要。那么到这里就可以了。
在此提示一下,这个环境的安装与配置,请不要这找一点内容那里找一点内容,结果安装的时候就出现各种错误。因为我当时就是这样找了各种的文章,结果出现了各种错误。照此文章一般不会出什么错误,因为这是我验证过的。希望对你有帮助~~~

  1. 安装ffmpeg,这个就是相对好安装多了,我选择了一个最快的方法
apt-get install ffmpeg

备注:在安装的过程遇到了这个问题,到最后也没有定位到这个问题是什么原因(我重新从第一步安装了一下就好了),我估计应该是我之前安装opencv的时候出现了问题。有朋友遇到过这个问题解决了,可以在下面留言告诉我一下,谢谢。

NVCC src/caffe/util/im2col.cu
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0
CXX tools/upgrade_net_proto_binary.cpp
CXX/LD -o .build_release/tools/upgrade_net_proto_binary.bin
/usr/bin/ld: .build_release/lib/libcaffe.so: undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:635: recipe for target '.build_release/tools/upgrade_net_proto_binary.bin' failed
make: *** [.build_release/tools/upgrade_net_proto_binary.bin] Error 1

错误备注:

  1. 提示找不到库文件,需要安装 apt-get install libxml2 libxml2-dev
找不到xml2库错误:apt-get install libxml2 libxml2-dev
  1. 报错*** Error in `python’: free(): invalid pointer
apt-get install libtcmalloc-minimal4
vim ~/.bashrc
#增加以下配置文件
export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.4"
#重新加载环境变量
sudo source ~/.bashrc

锁定固定版本,启动默认使用内核
https://blog.csdn.net/haijun7013/article/details/105454293?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

  1. Ubuntu指定默认启动内核
    可以通过开机启动Ubuntu时按 ESC 键来进入GRUB选项,
    选择 Advanced options for Ubuntu,然后可以看到所有内核启动菜单,Index从0开始。
cat /boot/grub/grub.cfg |grep menuentry


Index同样从0开始,记住你需要指定内核的Index
修改grub文件,修改后如下:

以上只修改了 GRUB_DEFAULT=“1> 6” 部分,1代表启动时第一层菜单里的 Advanced options for Ubuntu,6即为指定内核的Index。
注意引号是必须的,注意空格。
修改完毕之后:

sudo update-grub

重启之后查看内核:

uname -r

参考:https://www.cnblogs.com/zoneofmine/p/13229347.html

Ubuntu16.04操作系统下配置caffe环境(GPU版本)相关推荐

  1. Ubuntu 16.04下安装Caffe(GPU版本 GTX970)

    Ubuntu 16.04下安装Caffe(GPU版本 GTX970) 个人分类: Deep Learning 2018年8月6日更新说明:距上次安装成功没多久,显卡驱动莫名失效,没有解决,索性重装了系 ...

  2. 服务器ubuntu16.04安装Miniconda配置pytorch环境

    服务器ubuntu16.04安装Miniconda配置pytorch环境 刚进入实验室时配置过服务器node1节点,node1节点有4张p100,但是总是被占满,几个月后申请了node2节点,但是完全 ...

  3. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)...

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  4. ubuntu16.04下配置caffe无GPU

    1. 安装依赖项  1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5- ...

  5. Win7下安装Ubuntu16.04以及Ubuntu配置Android环境

    1.安装Ubuntu系统 1用windows磁盘管理给硬盘划分空白空间 2下载USBWriter( http://www.linuxidc.com/Linux/2014-10/108015.htm)( ...

  6. ubuntu16.04+Virtualenv+python2.7+Caffe安装(CPU版本,无opencv)

    环境: Ubuntu16.04 AMD 64位 双核 python 2.7.12 虚拟环境:Virtualenv 虚拟环境路径如下: (python2.7) appleyuchi@ubuntu:~/. ...

  7. Windows下编译配置Caffe的GPU版本

    2020-12-09 参考链接:https://www.cnblogs.com/zjutzz/p/9532483.html 本文采用官方提供的步骤进行编译,只记录了和该参考链接不同的地方 环境说明 系 ...

  8. ubuntu 14.04 java_Ubuntu14.04下配置Java环境

    Java环境配置网上已经有很多资料了,不过大多不适合初学者,Linux菜鸟更是不知所措了...Ubuntu14.04下配置Java环境,具体方案如下: Oracle官网上下载"jdk-8-l ...

  9. Linux热点无网络,Linux网络配置:手提在连接WIFI热点情况下,Ubuntu16.04中怎样配置网络?...

    Linux网络配置:手提在连接WIFI热点情况下,Ubuntu16.04中怎样配置网络?,范佩西致敬温格:你是我的足球父亲,是你塑造了我,磷菩屹倨竿,布加迪推出Chiron Sport特别版,百公里加 ...

最新文章

  1. hdu 2063+hdu 1083(最大匹配数)
  2. 「3」Java开发环境搭建
  3. OpenDiscussion_DataDrivenDesign
  4. 多线程之任务: Task 基础, 多任务并行执行, 并行运算(Parallel)
  5. 本地虚拟机上的docker安装mysql_linux下利用Docker安装mysql的步骤
  6. 如何操作别人计算机,如何远程控制别人的电脑【图解】
  7. cmd命令查看服务器硬盘序列号,硬盘序列号查询命令_Win7系统中怎么通过CMD查看硬盘序列号...
  8. koreader下载_Koreader阅读器app免费安装最新版|Koreader阅读器2018手机最新版下载_v1.0_9ht安卓下载...
  9. 安装kafka+golang操作kafka
  10. 淘宝dsr评分如何提升?
  11. 联想和柳传志的5G标准投票辩白和抗争为啥那么苍白?
  12. python高级进阶_20_进程之间的通信之queue(Poo演示)
  13. C++EXCEL排序
  14. 数字转字符串;字符串转数字
  15. Oracle配置服务
  16. 实战|Python轻松实现绘制词云图(附详细源码)
  17. Python爬取《你好李焕英》豆瓣短评并基于SnowNLP做情感分析
  18. 《图解 HTTP》 读书笔记
  19. 经常用的代码 命令行解析 api 以及vue组件复用方法总结
  20. Winform控件镂空、窗体本身镂空和鼠标击穿(录屏会用到)

热门文章

  1. mysql取出的emoji表情是乱码_解决MySQL emoji表情乱码问题
  2. qq2013怎么设置好友上线提醒和关闭提醒声音
  3. 正规网站莫名其妙被QQ微信拦截?怎么解除?
  4. 计算机光驱参数,光驱基本性能参数购买光驱应注意的方面之写入方式
  5. HTML单标签和双标签的区别及分类
  6. 触摸事件UITouch的用法
  7. 2B SaaS:得大客户者得天下
  8. MySQL连接为什么挂死了及解决方案有哪些?[图]
  9. Symfony学习笔记之管理CSS和JavaScript-----现代前端实践 Webpack Encore总结
  10. noip模拟赛 站军姿