[深度学习]Ubuntu16.04 + GTX 1050 + cuda8.0 + cuDNN5.1 + caffe安装详解

首先吐个槽,ubuntu + nvidia的显卡驱动简直是反人类,害的我折腾了一天多。

一、问题及解决办法

寒假放假回家没事干,正好给家里电脑升级了显卡gtx1050可以跑跑CNN。我在实验室的显卡是560,比较老了,按着实验室的环境配置流程走下来居然不能用,症状就是在Python中不能成功的import caffe,然后重启后无限循环登录。

问题:

不能进入ubuntu的图形界面,在登录界面循环。

解决办法:

Nvidia显卡驱动的锅,卸载显卡驱动,按Ctrl+Alt+F1进入终端模式登录,输入命令

  1. sudoapt-getremove--purgenvidia*
卸载显卡驱动,然后重启计算机,命令如下:
  1. sudoreboot
现在就可以登录图形界面进行cuda + cudnn + caffe的环境配置了。

二、安装流程

2.1 Opencv安装

在caffe中其实是调用了Opencv的一些服务的,因此我们首先需要安装Opencv,安装流程如下:
(1)在Opencv官网下载 http://opencv.org/downloads.html需要的Opencv linux版的安装包,这里我选择的Opencv 2.4.12;
(2)依赖包的安装,主要命令如下:
  1. sudoapt-getinstallbuild-essential
  2. sudoapt-getinstalllibgtk2.0-devlibavcodec-devlibavformat-devlibtiff4-devlibswscale-devlibjasper-dev
  3. sudoapt-getinstallcmake
  4. sudoapt-getinstallpkg-config
(3)把Opencv安装包解压,放到某目录下,这里我是放到了home目录下,在Opencv的目录下新建文件夹为release,在终端中进入Opencv的release目录,运行如下命令:
  1. cmake-DCMAKE_BUILD_TYPE=RELEASE-DCMAKE_INSTALL_PREFIX=/usr/local..
(4)使用如下命令编译Opencv并安装:
  1. make
  2. sudomakeinstall
至此Opencv已经安装完成,可以使用codeblocks建工程使用Opencv进行测试,方法见我的一篇博文 《Ubuntu下codeblocks安装配置方法及opencv配置方法》

2.2 配置其他依赖

这里我有一个shell脚本文件,可以把它复制到一个新的.sh文件中,并使用如下命令给该.sh文件赋予运行的权限(xxx表示文件名)
  1. sudochmoda+xxxx.sh
运行该shell脚本
  1. sh./xxx.sh
shell脚本内容如下:
  1. #!/bin/bash
  2. #ATLAS
  3. echo"===========atlas=============="
  4. apt-get-yinstalllibatlas-base-dev
  5. #snappy
  6. echo"===========snappy=============="
  7. #apt-get-yinstallsnappy
  8. apt-get-yinstalllibsnappy-dev
  9. #boost
  10. echo"===========boost=============="
  11. apt-get-yinstalllibboost-dev
  12. apt-get-yinstalllibboost-filesystem-dev
  13. apt-get-yinstalllibboost-system-dev
  14. apt-get-yinstalllibboost-thread-dev
  15. apt-get-yinstalllibboost-python-dev
  16. #protobuf
  17. echo"===========protobuf=============="
  18. apt-get-yinstalllibprotobuf-dev
  19. apt-get-yinstallprotobuf-compiler
  20. apt-get-yinstallpython-protobuf
  21. #leveldb
  22. echo"===========leveldb=============="
  23. apt-get-yinstalllibleveldb-dev
  24. #lmdb
  25. echo"===========lmdb=============="
  26. apt-get-yinstallliblmdb-dev
  27. #hdf5
  28. echo"===========hdf5=============="
  29. apt-get-yinstalllibhdf5-dev
  30. #glog
  31. echo"===========glog=============="
  32. apt-get-yinstalllibgoogle-glog-dev
  33. #gflag
  34. echo"===========gflag=============="
  35. apt-get-yinstalllibgflags-dev
  36. #cython
  37. echo"===========cython=============="
  38. apt-get-yinstallcython
  39. #scipy
  40. echo"===========scipy=============="
  41. apt-get-yinstallpython-scipy
  42. #scikit-image
  43. echo"===========scikit-image=============="
  44. apt-get-yinstallpython-skimage
  45. #pyyaml
  46. echo"===========pyyaml=============="
  47. apt-get-yinstallpython-yaml
  48. #easydict
  49. echo"===========easydict=============="
  50. apt-get-yinstallpython-pip
  51. #指定使用科大镜像源安装easydict
  52. pipinstalleasydict-ihttps://pypi.mirrors.ustc.edu.cn/simple
  53. ##错误排查
  54. #修复一个比较奇怪的一定要检查这个目录是否存在的问题
  55. mkdir-p/usr/lib64
  56. #修复cuda链接库找不到的问题
  57. echo"/usr/local/cuda/lib64">cuda.conf
  58. cpcuda.conf/etc/ld.so.conf.d
  59. ldconfig
这个shell脚本是我师兄写的,在这里鸣谢我师兄!

2.3 caffe源码下载及编译

(1)安装git
  1. sudoapt-getinstallgit
(2)拉取caffe源码
  1. gitclonehttps://github.com/BVLC/caffe.git
(3)设置Makefile.config文件
把Makefile.config.example文件中内容进行复制,复制到新建的文件Makefile.config中,修改以下几项:
i:把USE_CUDNN := 1这一行的注释取消掉,因为gtx1050的算力是6.1高于3.0,是可以使用cuDNN加速的,这里具体看自己的显卡配置;
ii:在INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include行后加空格,然后添加/usr/include/hdf5/serial
(4)编译caffe
i:在计算机中搜寻libhdf5_serial.so.10.1.0文件,找到其所在目录,在终端中进入该目录,并执行以下命令:
  1. sudolnlibhdf5_serial.so.10.1.0libhdf5.so
  2. sudolnlibhdf5_serial_hl.so.10.0.2libhdf5_hl.so
  3. sudoldconfig
  4. makeall-j4
ii:执行以下命令,其中-j4是表示使用4个线程进行编译
  1. maketest-j4
  2. makeruntest-j4
  3. makepycaffe-j4
  4. makedistribute
至此,caffe已经安装完成。

2.4 Nvidia驱动安装

这里注意,一定要 去Nvidia官网上去下载驱动,特别是 针对10系的显卡!!!
其他的老显卡,比如我实验室的GTX 560不用这么麻烦就可以,我也只配置过这两个显卡,10系显卡最好按照我这里的方法进行操作。
(1)去Nvidia官网下载GTX 1050驱动,网址如下: http://www.geforce.cn/drivers
(2)给下载的驱动程序赋予可执行权限,这里的.run文件是显卡的驱动程序,安装时注意换成自己的文件名
  1. sudochmoda+xNVIDIA-Linux-x86_64-375.26.run
(3)关闭Ubuntu图形界面
  1. sudoservicelightdmstop
使用Ctrl + Alt + F1进入终端界面并登录
(4)安装Nvidia驱动
在终端中进入之前下载的驱动程序所在的目录并执行以下命令:
  1. sudo./NVIDIA-Linux-x86_64-375.26.run--no-x-check--no-nouveau-check--no-opengl-files
安装好驱动程序以后开启Ubuntu图形界面
  1. sudoservicelightdmstart
按Ctrl + Alt + F7进入图形界面。
至此Nvidia驱动安装完成。

2.5 Cuda安装

同样,这里的Cuda安装时也不要使用命令行直接安装, 去Nvidia官网https://developer.nvidia.com/cuda-downloads下载cuda进行安装
这里同样要注意,下载时要 选择runfile类型文件,具体的选择类型如下图所示:


文件有1.4G大小,最好用迅雷下会快一些。
下载好Cuda,安装过程如下:
  1. shcuda_8.0.27_linux.run--override
首先会提醒你看一些它的使用协议,一直按空格直到出现是否同意,选择Accept
程序会问你要不要安装Nvidia驱动,这里 千万不要选择安装,因为我们已经安装过了,而且GTX1050这里安装的驱动与我们之前安装的驱动版本是不一样的, 如果选择安装又会出现无限循环登录的问题(血的教训)
接下来的安装过程一路选择yes,然后按照默认的来就可以了。

2.6 cuDNN安装

去Nvidia官网 https://developer.nvidia.com/rdp/cudnn-download下载cuDNN安装包,选择这个: Download cuDNN v5.1 (August 10,2016),for CUDA 8.0版本
解压安装包以后会出现cuda的目录,进入该目录
  1. cdcuda/include/
  2. sudocpcudnn.h/usr/local/cuda/include/
  3. cd../lib64
  4. sudocplib*/usr/local/cuda/lib64/
  5. sudochmoda+r/usr/local/cuda/include/cudnn.h/usr/local/cuda/lib64/libcudnn*
接下来执行以下命令:
  1. cd/usr/local/cuda/lib64/
  2. sudorm-rflibcudnn.solibcudnn.so.5
  3. sudoln-slibcudnn.so.5.1.5libcudnn.so.5
  4. sudoln-slibcudnn.so.5libcudnn.so
在终端中输入以下命令进行环境变量的配置:
  1. sudogedit/etc/profile
在出现的文件中进行编辑,在末尾加上并保存:
  1. PATH=/usr/local/cuda/bin:$PATH
  2. exportPATH
创建链接文件
  1. sudogedit/etc/ld.so.conf.d/cuda.conf
在该文件中,插入/usr/local/cuda/lib64并保存,然后使用sudo ldconfig使之生效。

2.7 测试

在终端中进入CUDA 8.0 Samples默认安装路径,输入命令:
  1. sudomakeall-j4
此步可能会出错,出错处理见最下面的参考链接4,我这里没有出错。完成后继续输入
  1. cdbin/x86_64/linux/release
  2. ./deviceQuery
出现下图则表示cuda安装完成


在已经配置好的eclipse + pydev环境中,新建python工程和源程序,并在工程名下右键——Properties——PyDev-PYTHONPATH——External Libraries中Add Source folder中选择/home/hanchao/caffe/python路径
在源程序中输入
  1. importcaffe
  2. print'helloworld'
若编译运行后没有错误,则环境已经配置好。

-------------------------------------------------------------------------------更新的分割线-------------------------------------------------------------------
如果在编辑pycaffe时出现”python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: 没有这样的文件或目录“问题时,注意修改Makefile.config文件
  1. PYTHON_INCLUDE:=/usr/include/python2.7\
  2. /usr/lib/python2.7/dist-packages/numpy/core/include
修改为
  1. PYTHON_INCLUDE:=/usr/include/python2.7\
  2. /usr/local/lib/python2.7/dist-packages/numpy/core/include
即可



参考链接:
WoPawn的博客——ubuntu16.04+gtx1060+cuda8.0+caffe安装、测试经历

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读2.3k次,点赞4次,收藏22次。最近安装了CARLA预编译版,总体过程感觉还是挺简单的,但是由于在网上找的参考资料并没有和自己遇到的情况完全一样的,所以把自己的安装过程记录下来,方便和自己一样的后来人进行安装,同时也自己作个记录留作备忘。其实预编译版的CARLA本身几乎不用什么命令行进行安装,主要步骤只有解压缩和拷贝文件,和极少的命令行安装操作。但是相关依赖以及其它的CARLA所使用的一些工具需要一起安装好,下面一起来看看安装步骤吧。_ubuntu22.04安装carla
文章浏览阅读6.3k次,点赞5次,收藏15次。在清华镜像中下载Ubuntu 20 安装包_ubuntu20下载
文章浏览阅读5k次。linux环境, python3.7.问题描述: 安装rally, pip3 install -r requirements.txt 时提示如下: 说明openssl 已安装。解决:1. pip3 install --upgrade pip , 结果输出如下 ..._error: command '/usr/bin/gcc' failed with exit code 1
文章浏览阅读1.1k次。自己刚踩坑装好的W11 WSL2 miniconda_wsl2 cuda
文章浏览阅读4.2k次,点赞4次,收藏17次。要安装这个 standalone的,会有一点区别(不识别 下面的 -localhost no)上面的命令会在~/.vnc/目录下生成一个 passwd文件。具体端口号,可以查看vncserver -list返回结果中的RFB PROT。作用是vncserver启动的时候运行这些命令,把桌面程序启动起来。如果希望用某个用户比如 demo登录,就用su切换到这个用户。桌面版默认就已安装,服务器版需要手动安装,并启动。关闭某个会话可以用下面的命令。远程地址输入ip:port。查看全部的vnc会话。_ubuntu vncserver
文章浏览阅读894次,点赞51次,收藏31次。在安卓使用vscode主要是连接一个远程的code-server服务,code-server服务安装在什么系统,调用的就是什么系统的环境,如这里使用ubuntu进行安装code-server,那使用的就是ubuntu环境,如需要go,python,java开发,需要在Ubuntu安装相关环境,创建的文件夹和项目也是在Ubuntu里面.这种方式其实在访问vscode的时候利于可以随时随地进行连接使用,且不受设备影响。
安装Ubuntu上超好用的终端Terminator。通过添加软件源、更新源、安装Terminator等步骤完成。
文章浏览阅读1.1k次,点赞83次,收藏74次。不要嫌弃Ubuntu的单调的终端界面啦,快来试试这些有意思的命令_ubuntu系统有趣的玩法
文章浏览阅读2.5k次。在ubuntu系统中,swap空间就是虚拟内存,所以考虑在磁盘空间富余的目录下设置虚拟内存swap文件,用来缓解内存不足的问题。通过上面的信息可以看到,/dev/vda2 目录下还剩余45G,那么就可以把swap文件生成在/dev/vda2目录下。在系统监控中发现,当数据库服务程序启动后,占用了大量内存空间,导致系统的剩余的内存往往只有几十MB。# bs 为块的大小,count 创建多少个块。# 执行命令后,删除创建的swap目录即可。#把生成的文件转换成 Swap 文件。2、创建一个swap文件。_ubuntu20修改swap大小
文章浏览阅读2.9k次,点赞2次,收藏10次。记录RV1126的SDK编译错误,以及解决处理_command exited with non-zero status 1
文章浏览阅读1.1w次,点赞22次,收藏101次。【记录】ubuntu20.04安装nvidia显卡驱动_ubuntu20.04安装nvidia显卡驱动
文章浏览阅读727次,点赞6次,收藏27次。在嵌入式Linux开发过程中,可能遇到uboot无法通过nfs服务从Ubuntu下载系统镜像(TTTTTT)的问题。如果你使用的是较新版本的Ubuntu,那么其**默认内核将不支持nfs2**!而**uboot仅支持到nfs2**,因此我们需要修改系统内核以及nfs配置文件,开启nfs2服务。**此问题非常棘手**,因为问题出现的时间太近,并且使用的人少。由于是2023年后才出现的问题,**chatgpt也无法解答**!本文参考网络上多篇博客资料,是解决此问题的最新办法。
ubuntu系统下安装软件的方法有多种,包括使用apt工具、deb软件包安装、源码编译安装以及通过软件中心安装。还有一种以 .run 后缀的软件包也可以在ubuntu系统下安装。具体的安装方法可以通过百度搜索来获取。
文章浏览阅读814次。本篇目的:Xubuntu如何安装pkg-configpkg-config是一个计算机软件包,用于帮助开发人员查找、定位和使用依赖库。它通常用于构建软件时,开发人员需要指定程序所依赖的外部库的位置和版本信息。使用pkg-config,开发人员可以很容易地查找、检索和导出这些依赖库的信息,从而简化了软件的构建过程。_ubuntu中怎么下载pkg-config
文章浏览阅读2k次。ubuntu创建共享文件夹_ubuntu20.04共享文件夹
文章浏览阅读2.9k次,点赞74次,收藏73次。对于有长期远程桌面需求的用户,建议将cpolar套餐升级到专业套餐,支持配置固定的公网TCP端口,且带宽也会相应的增大,支持更高效便捷的远程桌面连接Ubuntu系统。【cpolar内网穿透支持http/https/tcp协议,支持永久免费使用,不限制流量,无需公网IP,也不用进入路由器设置,操作简单。隧道创建成功后,点击左侧仪表盘的状态——在线隧道列表,查看xrdp隧道的所生成的公网TCP端口地址,复制下来。,使用cpolar内网穿透映射3389端口,生成公网TCP端口地址,实现在公网环境下,_ubuntu 局域网桌面
文章浏览阅读3.2k次。而在linux的ubuntu版本中,又多出两类用户:安装ubuntu系统的源用户xxx,其与root具有相同权限,仅在执行命令时,前面加sudo。在ubuntu中,用命令deluser username可以直接删除用户账号及家目录,而用centos7中的命令userdel -r username才能达到同样目的。在ubuntu中,没有moduser命令,centos7中的usermod修改用户信息的命令,同样可以用在ubuntu中。在系统中,创建新的用户或称为账号,一般需要多步操作。_ubuntu创建一个新用户
文章浏览阅读1.6w次,点赞4次,收藏23次。系统的许多日志文件都存储在 /var/log 目录中。你可以使用 ls /var/log 命令来列出可用的日志文件。/var/log/Xorg.0.log:包含 X 服务器的日志信息(图形界面)。打开DASH,搜索日志或者log,打开app,这个是/var/log的界面版。这将显示系统日志的末尾,并提供有关系统崩溃和错误的信息。/var/log/kern.log:包含内核日志信息。/var/log/dmesg:包含开机时的日志信息。/var/log/syslog:包含系统日志信息。_ubuntu查看系统日志
文章浏览阅读857次。首先将source.list复制为source.list.bak备份,然后将source.list内容改为需要的镜像源列表即可。Ubuntu采用apt作为软件安装工具,其镜像源列表记录在/etc/apt/source.list文件中。本节均为 Ubuntu 20.04 的镜像源列表。若为其他版本,将所有focal更改为其他版本代号即可。_apt 国内源