Ubuntu16.04下TensorFlow-GPU安装记录

  • 1 确定电脑型号(重要的是显卡型号)
  • 2 确定CUDA版本、ubuntu版本
  • 3 Win10系统下安装Ubuntu组成双系统(简述过程)
    • 3.1 Win10下分出一个40G以上的分区用来安装Ubuntu
    • 3.2 制作Ubuntu16.04启动盘
    • 3.3 安装Ubuntu16.04及遇到的问题
      • 3.3.1 安装过程中界面卡死
      • 3.3.2 安装时一定要分出一个/boot分区
    • 3.4 Windows10下卸载ubuntu
  • 4 清理环境 禁用nouveau
  • 5 安装英伟达NVIDIA驱动
  • 6 安装CUDA
    • 6.1 如果有错误版本CUDA,卸载
    • 6.2 下载CUDA,安装
      • 6.2.1 下载
      • 6.2.2 Base Installer安装包
      • 6.2.2 Patch安装包
  • 7 安装cuDNN
  • 安装anaconda3
  • pycharm的安装
  • Windows下查看英伟达显卡对应的CUDA版本方法

参考:https://blog.csdn.net/weixin_42535742/article/details/89501857
参考:https://blog.csdn.net/qq_30490125/article/details/80784890

1 确定电脑型号(重要的是显卡型号)

  电脑型号:微星(MSI)GL62VR 7RFX-848CN
  系统:ubuntu16.04 64位
  处理器:英特尔 Core i7-7700HQ
  内存:16GB(8G+8G) (三星 DDR4 2400MHz)
  显卡:英伟达Nvidia GeForce GTX 1060 6GB

  windows下鲁大师结果如下:

2 确定CUDA版本、ubuntu版本

  搭建TensorFlow的开发环境需要至少需要安装3个软件,分别为:1.python2.CUDA和CuDNN3.TensorFlow(GPU版)。安装前一定要确认好每个软件的版本是否相互支持。
  安装Tensorflow,重要的一环是要安装对应的CUDA版本,我的电脑显卡是GTX1060,最高支持CUDA9.2,目前网上的版本大多都是基于CUDA9.0的,所以这里使用CUDA9.0,从下文看,这两个工具对Ubuntu16.04支持比较好,所以使用Ubuntu16.04(在这个坑中重装过好几次Ubuntu系统)。

  CUDA9.0下载地址: https://developer.nvidia.com/cuda-90-download-archive
  从这里可以发现CUDA9.0只有Ubuntu16.04和17.04的版本,为了后续更容易配置成功,只好选择16.04的系统。


  cuDNN下载地址: https://developer.nvidia.com/cudnn
  下载时需要注册英伟达账户。
  cuDNN可以看到对Ubuntu16.04支持比较好,所以综合来说不要使用过新的Ubuntu18.04系统。

3 Win10系统下安装Ubuntu组成双系统(简述过程)

3.1 Win10下分出一个40G以上的分区用来安装Ubuntu

  分区时可以从装系统的固态硬盘中分出来一个分区,这样Ubuntu安装在固态硬盘中运行比较快。

3.2 制作Ubuntu16.04启动盘

  需要一个8GB以上优盘

3.3 安装Ubuntu16.04及遇到的问题

3.3.1 安装过程中界面卡死

  安装过程中界面卡死是因为英伟达显卡过新,Ubuntu不支持的原因,参考网上教程把显卡先屏蔽掉,安装好系统后再重新安装英伟达显卡驱动。

3.3.2 安装时一定要分出一个/boot分区

  详细原因见Windows10和Ubuntu双系统安装

3.4 Windows10下卸载ubuntu

  如果安装的Ubuntu版本有问题,那么可以在Windows10下下载Ubuntu,第一步进入Windows10,设备管理器中删除Ubuntu的几个分区,这时候Ubuntu就从电脑删除了,但是这时候注意,因为电脑启动的时候加载的是Ubuntu加载启动项,删除了Ubuntu无法启动Windows10,这时候可以使用大白菜、老毛桃等工具进入PE,使用启动修复工具修复。然后就可以进入Ubuntu了。

4 清理环境 禁用nouveau

  首先运行以下代码,看是否有输出。

lsmod | grep nouveau

  如果终端中有输出,则证明该驱动正在运行,需要手动禁掉nouveau,如果有运行下面命令

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

  在文本中加入以下代码:

blacklist nouveau
options nouveau modeset=0

  执行下面语句进行更新

sudo update-initramfs -u

  再执行下面语句查看nouveau禁用结果,没有信息输出说明禁用成功,仍有信息输出,重启即可。

lsmod | grep nouveau

5 安装英伟达NVIDIA驱动

  输入一下命令看英伟达驱动版本,如果在前期解决安装时界面卡死问题的时候安装了英伟达驱动,此时系统运行的可能就是安装的英伟达驱动。

nvidia-smi

  解决界面卡死的时候安装的驱动,版本384。

  如果之前有不合适的英伟达驱动,需要删除驱动,安装新的驱动版本。
  执行删除驱动命令:

sudo apt-get remove –purge nvidia

安装新的NVIDIA驱动,我安装的是384

sudo apt-get install nvidia-384

输入以下代码看是否安装成功

nvidia-smi


显示以上显卡信息,则安装成功,否则重启,再执行以上代码看是否成功。

6 安装CUDA

6.1 如果有错误版本CUDA,卸载

这里如果安装有错误版本的话,需要先卸载错误版本,版本一定要对应。
执行以下命令进入cuda安装文件夹,如果安装的是9.0,安装的其他版本号9.0改成其他的:

cd  /usr/local/cuda-9.0/bin

执行一下命令卸载cuda

sudo ./uninstall_cuda_9.0.pl
sudo rm -rf /usr/local/cuda-9.0

6.2 下载CUDA,安装

6.2.1 下载

  CUDA9.0下载地址: https://developer.nvidia.com/cuda-90-download-archive

可以下载多种版本的,这里我下载的是deb(local)版本,需要下载1个Base Installer和4个Patch包,也可以下载runfile版本,这时候用的命令是:sudo sh xxxxxx.run。注意:过程中终端提示你安装英伟达驱动,选择no,因为之前装好了合适版本了。

在下载链接下边有具体的安装方法。

6.2.2 Base Installer安装包

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub

这两句话相当于在建立了一个可信任的本地仓库/var/cuda-repo-9-0-local
仓库包括:cuda的安装包,cuda的开发包,cuda的动态库,nvidia的安装包。。。

7fa2af80.pub
cuda_9.0.176-1_amd64.deb
cuda-9-0_9.0.176-1_amd64.deb
cuda-command-line-tools-9-0_9.0.176-1_amd64.deb
cuda-core-9-0_9.0.176-1_amd64.deb
cuda-cublas-9-0_9.0.176-1_amd64.deb
cuda-cublas-dev-9-0_9.0.176-1_amd64.deb
cuda-cudart-9-0_9.0.176-1_amd64.deb
cuda-cudart-dev-9-0_9.0.176-1_amd64.deb
cuda-cufft-9-0_9.0.176-1_amd64.deb
cuda-cufft-dev-9-0_9.0.176-1_amd64.deb
cuda-curand-9-0_9.0.176-1_amd64.deb
cuda-curand-dev-9-0_9.0.176-1_amd64.deb
cuda-cusolver-9-0_9.0.176-1_amd64.deb
cuda-cusolver-dev-9-0_9.0.176-1_amd64.deb
cuda-cusparse-9-0_9.0.176-1_amd64.deb
cuda-cusparse-dev-9-0_9.0.176-1_amd64.deb
cuda-demo-suite-9-0_9.0.176-1_amd64.deb
cuda-documentation-9-0_9.0.176-1_amd64.deb
cuda-driver-dev-9-0_9.0.176-1_amd64.deb
cuda-drivers_384.81-1_amd64.deb
cuda-gdb-src-9-0_9.0.176-1_amd64.deb
cuda-libraries-9-0_9.0.176-1_amd64.deb
cuda-libraries-dev-9-0_9.0.176-1_amd64.deb
cuda-license-9-0_9.0.176-1_amd64.deb
cuda-minimal-build-9-0_9.0.176-1_amd64.deb
cuda-misc-headers-9-0_9.0.176-1_amd64.deb
cuda-npp-9-0_9.0.176-1_amd64.deb
cuda-npp-dev-9-0_9.0.176-1_amd64.deb
cuda-nvgraph-9-0_9.0.176-1_amd64.deb
cuda-nvgraph-dev-9-0_9.0.176-1_amd64.deb
cuda-nvml-dev-9-0_9.0.176-1_amd64.deb
cuda-nvrtc-9-0_9.0.176-1_amd64.deb
cuda-nvrtc-dev-9-0_9.0.176-1_amd64.deb
cuda-runtime-9-0_9.0.176-1_amd64.deb
cuda-samples-9-0_9.0.176-1_amd64.deb
cuda-toolkit-9-0_9.0.176-1_amd64.deb
cuda-visual-tools-9-0_9.0.176-1_amd64.deb
libcuda1-367_384.81-0ubuntu1_amd64.deb
libcuda1-384_384.81-0ubuntu1_amd64.deb
libxnvctrl0_384.81-0ubuntu1_amd64.deb
libxnvctrl-dev_384.81-0ubuntu1_amd64.deb
nvidia-367_384.81-0ubuntu1_amd64.deb
nvidia-367-dev_384.81-0ubuntu1_amd64.deb
nvidia-384_384.81-0ubuntu1_amd64.deb
nvidia-384-dev_384.81-0ubuntu1_amd64.deb
nvidia-libopencl1-367_384.81-0ubuntu1_amd64.deb
nvidia-libopencl1-384_384.81-0ubuntu1_amd64.deb
nvidia-modprobe_384.81-0ubuntu1_amd64.deb
nvidia-opencl-icd-367_384.81-0ubuntu1_amd64.deb
nvidia-opencl-icd-384_384.81-0ubuntu1_amd64.deb
nvidia-settings_384.81-0ubuntu1_amd64.deb

最后一句才是安装的命令。Attention,如果你有多版本的本地仓库,比如我:

cuda-repo-9-0-local
cuda-repo-9-2-localap

所以正确的安装方式变成了:

sudo apt-get install cuda-9.0
从官方文档中可以看到,提示安装cuda-libraries-9-0。注意,这种方式实际上并没有完成安装,
你会发现/usr/local/cuda没有被建立(这个目录下包含了一部分的头文件和动态库)

一共分为4步,第一步,进入文件目录,执行:

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb


第二步,在第一步执行完后,终端有提示,提示的命令和网页内的第二步相同,执行:

sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub

执行后,终端显示OK。
第三步,执行:

sudo apt-get update

第四步,执行:

sudo apt-get install cuda

这里提示需要安装很多个包,需要约为2GB的空间。

输入y,回车确定,等待设置完成。

6.2.2 Patch安装包

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local-cublas-performance-update_1.0-1_amd64.deb cuda-repo-ubuntu1604-9-0-local-cublas-performance-update-2_1.0-1_amd64.deb cuda-repo-ubuntu1604-9-0-local-cublas-performance-update-3_1.0-1_amd64.deb cuda-repo-ubuntu1604-9-0-176-local-patch-4_1.0-1_amd64.deb

一次性把4个Patch包安装上。

这种方式也会在本地建立4个仓库,建议在本地仓库全部安装完成后再进行cuda的安装。

这时/usr/local/cuda中已经有文件了。

这时候应该添加环境变量:

#打开该文件配置环境变量
sudo gedit  ~/.bashrc
#在文件中写入以下环境变量:
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 保存后执行以下命令立即生效
source ~/.bashrc

查看CUDA版本

nvcc -V

如果没有添加环境变量就显示以下结果:

提示执行:

sudo apt install nvidia-cuda-toolkit

在这里应该不要执行上条命令,感觉问题时在安装CUDA完没有设置好环境变量,另外如果安装过程中提示你安装旧版本的英伟达驱动,那么选择no,因为最开始已经安装好了适合的英伟达新版本驱动了。

如果执行了sudo apt install nvidia-cuda-toolkit,此时提示需要大概1GB的空间,后面执行后发现使用nvcc --version显示版本号的7.0,应该是这句话自动从清华源下载了老版本的CUDA并进行了安装。

输入y,回车确定。

安装完成后,再次执行命令。

7 安装cuDNN

  cuDNN下载地址: https://developer.nvidia.com/cudnn
  下载时需要注册英伟达账户。
  cuDNN可以看到对Ubuntu16.04支持比较好,所以综合来说不要使用过新的Ubuntu18.04系统。

这个直接参考官方文档:https://developer.nvidia.com/rdp/cudnn-download
里面的Installation Guide:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-linux

$ tar -xzvf 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*
在这里插入代码片

验证CUDA安装

nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17

这里的软件版本有问题,需要后续解决。

安装anaconda3

下载anaconda3
进入目录

sudo bash Anaconda3-xxxxxx.sh

安装后执行

sudo gedit ~/.bashrc

打开该文件,最后可看到

# added by Anaconda3 installer
export PATH="/home/ubuntu/anaconda3/bin:$PATH"

两行文字,说明环境变量一定添加上了,退出该文件后,执行:

source ~/.bashrc

让环境变量生效。
此时检查anaconda3安装是否安装成功:conda --versionconda -V

检查目前的安装环境:conda info --envs

在没有虚拟出新的环境之前,只有一个base环境在/home/ubuntu/anaconda3路径下。

检查目前有哪些版本的python可以安装:conda search --full-name python
一般能够显示出从python2到python3很多版本。

选择一个python版本安装(这里选择python3.6版本):conda create --name tensorflow-gpu python=3.6
联网检测需要下载的安装的包,输入y后进行联网下载安装。

安装后终端会提示激活该虚拟环境和退出该环境的方法。

#
# To activate this environment, use:
# > source activate tensorflow-gpu
#
# To deactivate an active environment, use:
# > source deactivate
#

终端中使用

source activate tensorflow-gpu

进入tensorflow-gpu虚拟环境,这时如果使用pip list查看虚拟环境中的包数量,只有少数几个。

安装tensorflow-gpu==1.8.0版本。

pip install tensorflow-gpu==1.8.0

需要权限的话也可以使用:

sudo pip install tensorflow-gpu==1.8.0

运行Python程序,可在终端中,也可在pycharm中运行:

import tensorflow as tf
hello = tf.constant("Hello, TensorFlow!")
sess = tf.Session()
print(sess.run(hello))

cuDNN出现问题:

Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>from tensorflow.python.pywrap_tensorflow_internal import *File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>_pywrap_tensorflow_internal = swig_import_helper()File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/imp.py", line 243, in load_modulereturn load_dynamic(name, filename, file)File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/imp.py", line 343, in load_dynamicreturn _load(spec)
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directoryDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/site-packages/tensorflow/__init__.py", line 24, in <module>from tensorflow.python import *File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/site-packages/tensorflow/python/__init__.py", line 49, in <module>from tensorflow.python import pywrap_tensorflowFile "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 72, in <module>raise ImportError(msg)
ImportError: Traceback (most recent call last):File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>from tensorflow.python.pywrap_tensorflow_internal import *File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>_pywrap_tensorflow_internal = swig_import_helper()File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/imp.py", line 243, in load_modulereturn load_dynamic(name, filename, file)File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/imp.py", line 343, in load_dynamicreturn _load(spec)
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directoryFailed to load the native TensorFlow runtime.See https://www.tensorflow.org/install/install_sources#common_installation_problemsfor some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.

解决办法见:http://www.bubuko.com/infodetail-2325869.html

16 #======更新软连接======
17 cd /usr/local/cuda/lib64/
18 sudo rm -rf libcudnn.so libcudnn.so.7   #删除原有动态文件,版本号注意变化,可在cudnn的lib64文件夹中查看
19 sudo ln -s libcudnn.so.9.0.176 libcudnn.so.7  #生成软衔接(注意这里要和自己下载的cudnn版本对应,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)我的是9.0.176,使用命令:nvcc --version查看
20 sudo ln -s libcudnn.so.7 libcudnn.so #生成软链接
21 sudo ldconfig -v #立刻生效

这时候python的程序能够正确运行了,在后期的工作中,只需要使用conda命令虚拟出多个环境,分别配置每个环境下需要的包即可,使用pycharm来修改解释器路径来应用不同的conda虚拟环境。

pycharm的安装

Windows下查看英伟达显卡对应的CUDA版本方法

  Windows下打开英伟达控制面板

  查看显卡支持的CUDA版本,GTX1060支持最高支持CUDA 9.2,所以一定不要使用最新的CUDA10的版本

Ubuntu16.04下TensorFlow-GPU安装记录(GTX1060显卡)相关推荐

  1. Ubuntu 20.04 安装Tensorflow GPU版本 (GTX-1060显卡)

    Ubuntu 20.04 安装Tensorflow GPU版本 (GTX-1060显卡) 参考: https://cyfeng.science/2020/05/02/ubuntu-install-nv ...

  2. ubuntu16.04下源码安装arachni扫描器

    前段时候看一个对各开源扫描器的评测,arachni在综合评价上胜出.最近正好想研究一下arachni的源码,那就在ubuntu下先把玩一下.其实之前在kali和ubuntu下源码安装都失败了,这次算是 ...

  3. 双路1080Ti主机ubuntu16.04.3+nivdia小白安装记录

    硬件: 配置:i7 8700k+技嘉Z370 HD3P主板+双路1080Ti+SSD 注意阅读主板说明书,这块主板安装的时候,应该把SSD安装到靠近CPU的口,否则会占掉第二块卡的带宽,造成第二块10 ...

  4. Ubuntu16.04下的Opencv安装与使用

    目录 一.ubantu16.04安装opencv-3.4.1 二.编写一个打开图片进行特效显示的代码 test1.cpp 三.练习使用opencv库编写打开摄像头压缩视频的程序. 1).虚拟机获取主机 ...

  5. Ubuntu16.04下tensorflow安装

    博文地址:https://blog.csdn.net/wizen641372472/article/details/72675549

  6. Ubuntu16.04 下 Python3 虚拟环境安装 OpenCV

    wg_shun 2018-10-25 19:18:53 6400 收藏 20 分类专栏: 环境搭建 文章标签: Ubuntu python3 opencv 版权 前言  转载自:https://blo ...

  7. questasim linux安装包,Ubuntu16.04下Questasim10.7安装(64bit)全攻略

    第二步:Crack (1) 将sfk.MentorKG.exe文件复制到 /usr/local/games/questasim/[安装目录]下 cp sfk /usr/local/games/ques ...

  8. ubuntu16.04下FSA-Net环境安装和训练

    代码下载 下载代码, 可以使用码云下载代码 git clone FSA-Net: [CVPR19] FSA-Net: Learning Fine-Grained Structure Aggregati ...

  9. Ubuntu16.04下codeblocks16.01安装,适用于不同的架构

    1.安装编译环境,C库.C++库和Boost库装好 sudo apt-get install build-essential //有可能安装 build-essential 后gdb就已经安装过了   ...

最新文章

  1. 【2019/4/30】周进度报告
  2. ACM入门之【哈希】
  3. 机器学习中的数学--数学知识复习
  4. protobuf2和3同时安装_安装protobuf可能遇到的问题
  5. JavaScript-在当前显示区范围内实现点不到的小方块
  6. DWM1000 收发RXLED TXLED控制代码修改
  7. 微软模拟飞行2020服务器多少内存,《微软模拟飞行2020》到底有多大?我们的硬盘装得下吗?...
  8. 三种方法帮你恢复删除的文件
  9. 在邮箱中用html写邮件
  10. 以太坊区块链中的数据结构
  11. Bailian-1的个数
  12. 卖衣服有什么引流产品?微商卖衣服引流推广?
  13. 用word2003打开.docx文件
  14. F. Equalize the Array
  15. Python基础之列表(list)操作
  16. python音频处理库librosa基本操作
  17. 谐振电路及品质因数(三)
  18. button按钮居中
  19. 汇编语言——用DOSBox的debug查看CPU和内存 用机器指令和汇编指令编程
  20. 计算机网络实验感想6,计算机网络实验项目六

热门文章

  1. Unity3D制作3dRPG游戏——主角移动控制实现
  2. eclipse中配置文件中文乱码问题解决
  3. 关于微信公众号搭建H5网页时 网页授权域名配置问题
  4. JS逆向-PDD商家后台-手机号
  5. js高德地图 地理位置转经纬度 生成地图
  6. java emptyqueueexception,阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。说明 类Queue表示队列,类中的 - 赏学吧...
  7. JavaWeb:网上书店的案例
  8. 数字城市的建设有哪些意义?如何构建数字城市?
  9. IFTTT使用测试教程
  10. 【Python开发小游戏】安装 pygame