Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)

欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

本篇概览

  • 本篇记录了自己在Ubuntu 16.04.7 LTS系统上搭建TensorFlow2开发环境的过程,用于将来重装时的参考
  • 硬件是2018年购买的惠普暗隐精灵3代,显卡GTX1060,已经安装了Ubuntu16 LTS桌面版
  • 执行本篇操作前需要安装Nvidia的驱动,详情请参考《Ubuntu16安装Nvidia驱动(GTX1060显卡)》
  • 查看驱动信息,如下图,可见CUDA版本是10.1

Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)

版本匹配

Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)

安装

Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)
  • 由于个人习惯,我的操作都是在MacBook上远程SSH到Ubuntu16电脑上操作的,和在本地执行命令行并无区别,您可以随意
  • 增加可执行权限:
chmod a+x Anaconda3-2021.05-Linux-x86_64.sh
  • 运行:
bash Anaconda3-2021.05-Linux-x86_64.sh
  • 按照提示输入回车:

Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)
  • 翻阅文档,按照要求输入yes:

Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)
  • 是否初始化,输入yes:

Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)
  • 安装完成:

Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)
  • 退出ssh重新登录,输入python即可进入anaconda环境的python:
(base) will@ubuntu-hp:~$ python
Python 3.8.8 (default, Apr 13 2021, 19:58:26)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.

  • 创建新的conda环境,名为py38:
conda create -n py38 python=3.8.8
  • 激活py38:
conda activate py38
  • 安装指定版本的tensorflow,指定国内源以加快下载速度:
pip install tensorflow-gpu==2.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 安装CUDA:
conda install cudatoolkit=10.1 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
  • 安装cudnn:
conda install cudnn=7.6.5
  • 安装完成,接下来验证一下是否GPU版的TensorFlow是否安装成功

验证

  • 退出ssh,重新登录
  • 查看有哪些conda环境,以及正在使用哪个,输入命令conda info –e,如下,星号所在的行表示正在使用的是base环境,并非咱们要用的py38:
(base) will@ubuntu-hp:~$ conda info --e
conda environments:
#
base                  *  /home/will/anaconda3
py38                     /home/will/anaconda3/envs/py38
  • 执行source activate py38即可切换到py38环境
  • 直接输入python进入python交互模式
  • 导入tensorflow:
import tensorflow as tf
  • 显示导入成功:
2021-10-08 23:08:55.391471: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
  • 以下代码表示检查tensorflow能否得到CUDA支持,支持就会返回True,否则返回false:
tf.test.is_built_with_cuda()
  • 以下代码表示检查tensorflow能否获取到GPU:
tf.test.is_gpu_available()
  • 如果能获取到会返回Ture,并且输出的部分日志信息如下,可见显卡信息已成功取到:
2021-10-08 23:09:34.367795: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2021-10-08 23:09:34.368110: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1402] Created TensorFlow device (/device:GPU:0 with 5088 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1)
True
  • 作为对比,下图是MabBook上的CPU版本TensorFlow执行结果:

Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)
  • 至此,安装完成。

你不孤单,欣宸原创一路相伴

  1. Java系列
  2. Spring系列
  3. Docker系列
  4. kubernetes系列
  5. 数据库+中间件系列
  6. DevOps系列

欢迎关注公众号:程序员欣宸

微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界…

https://github.com/zq2599/blog_demos

Original: https://www.cnblogs.com/bolingcavalry/p/15786798.html
Author: 程序员欣宸
Title: Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/588851/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 操作系统知识点

    操作系统 内核态和用户态 内核态和用户态的区别? 内核态与用户态是操作系统的两种运行级别,当程序运行在 3 级特权级上时,就可以称之为运行在用户态。因为这是最低特权级,是普通的用户…

    Java 2023年6月5日
    076
  • 使用yml多环境配置和创建多环境profile打包 springboot俩个@@ active: @profileActive@

    1、yml多环境配置在Spring Boot中多环境配置文件名需要满足application-{profile}.yml的格式,其中{profile}对应你的环境标识; appli…

    Java 2023年5月30日
    087
  • Spring:SpringMVC一例

    文章目录 + [目录结构](#-1) + [web.xml](#webxml-4) + [SpringMVC核心配置文件:md5-servlet.xml](#springmvcmd…

    Java 2023年5月30日
    095
  • java实现红黑树

    好久没更新了 今天发个有点技术含量的 java实现红黑树代码 下面是代码 由于我才疏学浅 和自己对于特别复杂的问题的讲解能力问题 可能不能特别清晰明了的为大家讲解清晰 后面会抽时间…

    Java 2023年6月5日
    063
  • Nacos服务注册为指定IP和端口

    转至:https://www.jianshu.com/p/64e1f7d50c6e 如果选择固定Ip注册可以配置 spring.cloud.nacos.discovery.ip =…

    Java 2023年6月8日
    099
  • 通俗易懂讲枚举

    枚举使用关键字 enum 进行定义,每个元素都是一个实例,如下,FOO 和 BAR 都是一个 EnumClazz 实例。 public enum EnumClazz { FOO, …

    Java 2023年6月8日
    051
  • SpringBoot读取resource中的文件

    //使用File获取resources里面资源文件的相对路径 若文件名称为中文可能会报文件不存在 File file = new File(this.getClass().getR…

    Java 2023年5月30日
    0254
  • 程序员如何利用技术能力变现

    本文节选左耳朵耗子相关文章,与读者共勉! 本质上来说,程序员是手艺人,有手艺的人就能做出别人做不出来的东西,而付费也是一件很自然的事了。那么,这个问题就成了,如何让自己的&#822…

    Java 2023年6月6日
    091
  • 从SVN完美迁移到Git,我只用了5分钟

    为什么现在大家都不用SVN了? SVN (Subversion) 是一个曾经热门的集中式版本控制工具,然而 Git 作为分布式版本控制工具,近年来特别受欢迎,很多公司、开发人员开始…

    Java 2023年6月8日
    0109
  • 设计模式之责任链模式

    责任链模式又称职责链模式,属于行为型模式;在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请…

    Java 2023年6月5日
    0102
  • 面试题:synchronized 与 Lock的区别?

    区别: 相同:二者都可以解决线程安全问题不同:synchronized机制在执行完相应的同步代码以后,自动的释放同步监视器Lock需要手动的启动同步(lock()),同时结束同步也…

    Java 2023年6月14日
    071
  • SpringBoot集成RabbitMQ简单举例

    操作步骤: 引入依赖包、配置连接参数、新建队列、生产者代码、消费者代码 依赖包 配置连接参数 新建队列 生产者代码 消费者代码 来源项目:dms-test-data Origina…

    Java 2023年5月30日
    069
  • IO流–创建文件夹,复制移动文件

    创建多级文件夹 final String ROOTPATH = "/Users/mac/Downloads"; // 默认文件下载的位置 @Test //创建多…

    Java 2023年6月6日
    098
  • 机器学习常用指标

    一、机器学习常用指标 对于一个分类任务,我们预测情况大致如下面混淆矩阵所示: 预测为正样本预测为负样本 标签为正样本 TP FN 标签为负样本 FP TN 1、accuracy a…

    Java 2023年6月15日
    071
  • Spring Boot 入门(一)搭建第一个Spring Boot程序

    *maven构建项目 官网地址:https://start.spring.io/ Packaging:这里选择War包,方便Application启动应用 点击”GEN…

    Java 2023年6月5日
    0101
  • redis分析系列之set命令

    前言 最近研究下redis源码,现在从最基本的命令行操作来分析,redis是如何处理命令操作的 redis的set命令操作 我们在redis-cli执行下面的命令 java;gut…

    Java 2023年6月5日
    0101
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球