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


参考: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_module
    return load_dynamic(name, filename, file)
  File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory

During 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_tensorflow
  File "/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_module
    return load_dynamic(name, filename, file)
  File "/home/ubuntu/.conda/envs/tensorflow-gpu-1.4.1/lib/python3.6/imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory


Failed to load the native TensorFlow runtime.

See https://www.tensorflow.org/install/install_sources#common_installation_problems

for 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的版本
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点灯小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值