文章目录

  • Ubuntu18.04安装cuDNN和Tensorflow的正确姿势
    • 一、检查NVIDIA驱动是否安装成功
    • 二、检查CUDA是否安装成功
    • 三、安装cuDNN
      • 1. 确定版本
      • 2. 下载安装包
      • 3. 解压安装
      • 4. 安装libcupti
    • 四、安装Tensorflow
      • 1. 确定版本
      • 2. 安装pip
      • 3. 安装Tensorflow
      • 4. 检查是否正常运行
    • 五、错误解决
      • 1. so文件找不到的错误
      • 2. 安装Tensorflow时报错`python setup.py egg_info`
      • 3. error: invalid command 'bdist_wheel'

Ubuntu18.04安装cuDNN和Tensorflow的正确姿势

本文章主要讲解 ubuntu 系统如何正确安装 cuDNNTensorflow

需要提前准备:

  • 一个安装好的Ubuntu 18.04
  • NVIDIA 驱动已经安装成功
  • CUDA已经安装成功

一、检查NVIDIA驱动是否安装成功

打开终端执行:

nvidia-smi
Wed Jul 10 11:49:26 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26       Driver Version: 430.26       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 208...  Off  | 00000000:42:00.0  On |                  N/A |
|  0%   42C    P8    17W / 300W |    309MiB / 11011MiB |      0%      Default |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1520      G   /usr/lib/xorg/Xorg                            18MiB |
|    0      1626      G   /usr/bin/gnome-shell                          79MiB |
|    0      7641      G   /usr/lib/xorg/Xorg                            95MiB |
|    0      7772      G   /usr/bin/gnome-shell                         113MiB |
+----------------------------------------------------------------------------

如果出现上面的结果说明成功。如果没有安装请参考这篇文章Linux安装NVIDIA显卡驱动的正确姿势或这篇文章Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡进行安装。

二、检查CUDA是否安装成功

关于 CUDA 的安装可以参考
Linux安装CUDA的正确姿势这篇文章。

打开终端执行:

nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168

说明CUDA的命令已经安装成功。接下来测试案例是否能够正常运行。

#编译并测试设备 deviceQuery:
cd /usr/local/cuda-9.2/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery#编译并测试带宽 bandwidthTest:
cd ../bandwidthTest
sudo make
./bandwidthTest

如果这两个测试的最后结果都是Result = PASS,说明 CUDA 安装成功啦。

三、安装cuDNN

1. 确定版本

在安装之前需要参考与Tensorflow的支持关系,可以通过这个网址查看。

因为目前本地安装的环境如下:

  • Ubuntu 18.04
  • NVIDIA Driver 430.26
  • CUDA 10.1

所以推荐安装 cuDNN 7.6.0 版本,并配合 Tensorflow 1.13.0/1.14.0 都可以。

2. 下载安装包

下载地址可以在NVIDIA官网下载。要下载 cuDNN Library for Linux这项。

3. 解压安装

打开终端执行:

tar -zxvf cudnn-10.1-linux-x64-v7.6.0.64.tgz
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64/
sudo cp  cuda/include/cudnn.h /usr/local/cuda-10.1/include/# 为所有用户设置读取权限
sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h sudo chmod a+r /usr/local/cuda-10.1/lib64/libcudnn*

4. 安装libcupti

这是 NVIDIA CUDA 分析工具接口,此库提供高级分析支持。

打开终端执行:

sudo apt-get install libcupti-dev

四、安装Tensorflow

1. 确定版本

由于上一步我们选择安装了 cnDNN 7.6.0 并且是配合 CUDA 10.1,所以从这个网址我们可以得知,可以安装最高版本 Tensorflow 1.13.0。

2. 安装pip

大家可以根据实际情况进行选择是安装 pip 还是 pip3,本文以 pip3 为例子。

sudo apt-get install python3-dev python3-pip

此时 pip3 已经安装成功。

3. 安装Tensorflow

终端执行:

pip3 install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.12.0-cp36-cp36m-linux_x86_64.whl

关于下载的连接可以参考官方网址。

此步骤可能会很慢,如果有代理的可以提前设置好代理。

4. 检查是否正常运行

以下两个测试可以直接在终端内复制执行。

测试 1:

python3 -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"

测试 2:

python3 -c "from tensorflow.python.client import device_lib; device_lib.list_local_devices()"

如果以上两条返回的内容中都没有错误,代表Tensorflow安装成功。

五、错误解决

1. so文件找不到的错误

错误例子如下:

2019-07-10 11:26:57.200271: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcublas.so.10.0'; dlerror: libcublas.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64::/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/lib64{LD_LIBRARY_PATH:+:/usr/local/cuda-10.1/lib64{LD_LIBRARY_PATH:+:/usr/local/cuda-10.1/lib64}}:/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/lib

主要错误信息为Could not dlopen library 'libcublas.so.10.0'。造成这样的原因是链接文件不对造成的。

这种问题很好解决,下面我罗列一些常发生这样错误的so文件解决办法,首先大家要确定报错的so文件名称是什么,例如上面报错的是libcublas.so.10.0这个文件,那么就找到对应的libcublas库文件,然后在/usr/local/cuda-10.1/lib64/目录下创建一个bcublas.so.10.0连接文件即可。

一般缺失的so文件都在/usr/local/cuda-10.1/lib64/目录下,有一些特别的在/usr/lib/x86_64-linux-gnu/目录下。

  • libcudart

    sudo ln -s /usr/local/cuda-10.1/lib64/libcudart.so.10.1 /usr/local/cuda-10.1/lib64/libcudart.so.10.0
    
  • libcufft
    sudo ln -s /usr/local/cuda-10.1/lib64/libcufft.so.10.1.168 /usr/local/cuda-10.1/lib64/libcufft.so.10.0
    
  • libcurand
    sudo ln -s /usr/local/cuda-10.1/lib64/libcurand.so.10.1.168 /usr/local/cuda-10.1/lib64/libcurand.so.10.0
    
  • libcusolver
    sudo ln -s /usr/local/cuda-10.1/lib64/libcusolver.so.10.1.168 /usr/local/cuda-10.1/lib64/libcusolver.so.10.0
    
  • libcusparse
    sudo ln -s /usr/local/cuda-10.1/lib64/libcusparse.so.10.1.168 /usr/local/cuda-10.1/lib64/libcusparse.so.10.0
    
  • libcublas
    sudo ln -s /usr/lib/x86_64-linux-gnu/libcublas.so.10.2.0.168 /usr/local/cuda-10.1/lib64/libcublas.so.10.0
    

    如果/usr/lib/x86_64-linux-gnu/目录下没有libcublas库,可以在/usr/local/cuda10.1/targets/x86_64-linux/lib/查找libcublas库。

2. 安装Tensorflow时报错python setup.py egg_info

如果错误如下:

    Complete output from command python setup.py egg_info:Traceback (most recent call last):File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'setuptools'----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-szai5bvj/absl-py/

解决办法为安装setuptools

pip3 install --upgrade setuptools

然后重新安装Tensorfow。

3. error: invalid command ‘bdist_wheel’

如果遇到此错误:

pip3 install wheel

然后重新安装Tensorfow。


END

Ubuntu18.04安装cuDNN和Tensorflow的正确姿势相关推荐

  1. Ubuntu18.04安装cudnn

    下载Cudnn cudnn下载版本要与cudn版本相对应.笔者cudn为10.0,则cudnn选7.65.下载地址: https://developer.nvidia.com/rdp/cudnn-ar ...

  2. 笔记本显卡1660Ti,Ubuntu18.04安装Cuda、Cudnn、Anaconda、PyTorch、Tensorflow和Keras

    /**********************************************************************/ 注:写到最后不能放图片了,安装PyTorch.Tens ...

  3. Ubuntu18.04安装CUDA10.1和cuDNN v7.6.5

    Ubuntu18.04安装CUDA10.1和cuDNN v7.6.5 前言 深度学习需要使用使用GPU加速,在安装tensorflow之前需要根据选用的版本安装 就我的经验而言,CUDA的安装在Lin ...

  4. ubuntu18.04安装pytorch、cuda、cudnn和miniconda

    目录 0. 前言 1. nvidia驱动安装及卸载 1.1 安装 1.2 卸载 2. cuda-10.2安装验证及卸载 2.1 安装 2.2 验证 2.3 卸载 3. cudnn安装及验证 3.1 安 ...

  5. Ubuntu18.04安装CUDA、cudnn、pycharm、tensorflow-gpu

    前言 虚拟机里的linux系统似乎不能安装nvidia显卡驱动,在虚拟机Ubuntu系统上跑tensorflow只能使用cpu..看来还得去物理机装双系统或者用服务器了 因为,安装nvidia驱动报错 ...

  6. Ubuntu18.04安装驱动、cuda、cudnn(亲测有效)

    1.Ubuntu18.04安装显卡驱动 禁用SecureBoot(按照主板型号,查询开机进入bios按键,关闭secureboot) 禁用nouveau sudo gedit /etc/modprob ...

  7. 树莓派4B安装Ubuntu18.04运行DonkeyCar和TensorFlow

    树莓派4B安装Ubuntu18.04运行DonkeyCar和TensorFlow 一.安装Python3.7 1.1 准备工作 1.1.1安装工具 1.2 正式开始 1.2.1 下载python文件 ...

  8. Ubuntu18.04安装hls4ml+tensorflow-gpu

    Ubuntu18.04安装hls4ml+tensorflow-gpu 主要分为两部分,一部分是安装hls4ml 另一个是安装gpu 版本的tensorflow,比较难安装的是tf 1. https:/ ...

  9. Ubuntu18.04安装python3.7.7和tensorflow-gpu 2.2.0

    Ubuntu18.04安装python3.7.7和tensorflow-gpu 2.2.0 前言 安装python3.7.7与环境变量设置 使用pip3安装tensorflow-gpu 2.2.0 测 ...

最新文章

  1. 在后SCI时代需要什么样的人才?
  2. 怎么发一篇IEEE文章呢?
  3. Big Sur:加州一号公路和比克斯比大桥
  4. mile for gallon 汽车省油
  5. rstudio安装包_如何安装R与Rstudio
  6. [Alamofire] 错误总结
  7. C# WinForm关闭窗体确认
  8. 字符串的模板 Manacher kmp ac自动机 后缀数组 后缀自动机
  9. Source Code Pro一款堪称完美的编程字体
  10. 前言:电商产品经理必修课-如何打造实战型商品系统
  11. JAVA智能分析的简单聚众筹平台计算机毕业设计Mybatis+系统+数据库+调试部署
  12. Python:罗马数字转整数
  13. DPI vs DFI
  14. linux dlna 网络优化,Linux DLNA
  15. Android内购+IM
  16. html5+css3笔记整理
  17. 【原创】快速上手使用思维导图
  18. 深度调查:危险的“360安全卫士”!
  19. webpack学习之 style-loader / css-loader
  20. LeetCode680删除一个字符后是否还是回文字符串

热门文章

  1. linux上修改html,linux进程名修改
  2. vb 读取mysql所有表名_vb怎么列举出一个mdb数据库里面所有表名?
  3. 事物与持久化_跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现...
  4. mysql 使用场景_MySQLMHA典型使用场景
  5. 安卓总线传输协议常用关键词
  6. python金融数据怎么获取_class类怎样在python中获取金融数据?
  7. html中加减号怎么输入,jQuery 实现点击加减号改变input标签中的value值,该怎么解决...
  8. mysql rr 更新失败_RR 级别下 update 操作的是快照读还是当前读?
  9. eos和以太坊有什么关系_【EOS价格分析】EOS,宇宙,以太坊价格分析:8月6日
  10. linux nifi指定jdk,nifi在arm架构启动不了,怎么办?