adding visible gpu devices: 0是什么意思_华为AI认证-TensorFlow2.0编程基础

本文介绍了TensorFlow2.0的特点,如移除graph和session机制,以及其在GPU加速和自动求导方面的优势。详细讲解了在Linux环境下搭建GPU版TensorFlow2.0的步骤,包括安装Nvidia驱动、CUDA和cuDNN。同时,文章涵盖了TensorFlow2.0的基础操作,如数据类型、张量操作、变量管理和维度变换等。
摘要由CSDN通过智能技术生成

ae643381e7877eb23cd49f18bccdc16c.png

参考《HCIA-AI2.0培训教材》《HCIA-AI2.0实验手册》

认证要求:

  1. 了解TensorFlow2.0是什么以及其特点
  2. 掌握TensorFlow2.0基础和高阶操作方法
  3. 熟悉TensorFlow2.0中的Keras API

简介:

TensorFlow是目前最为流行的深度学习框架,是人工智能领域的第一主要工具。从发布至今,共经历了0.1,1.0,2.0三个版本,认证考试要求掌握的是最新的2.0版本。

TensorFlow1.X中创建Tensor后,不能直接返回结果,只是创建计算图graph,需要在之后使用session会话机制才能运行,这种风格更像是一种硬件编程语言VHDL。

另外,TensorFlow1.X调试困难,API混乱,入门不易,使用更难,很多研究人员转向了PyTorch,但是比如在移动端的部署还是非常头疼。

TensorFlow2.0最大的特性就是去掉了graph和session机制,变得像Python和PyTorch一样,所见即所得。计算图、会话、变量管理与共享、Define-and-Run这些概念将一去不返了。

TensorFlow2.0包括了TensorFlow核心库,JavaScript,Lite,Extend。构成了一个完整的TensorFlow生态系统。

Why TensorFlow?

TensorFlow成为当下最流行的框架主要因为以下几个优势:

  • 支持GPU加速
  • 支持自动求导
  • 丰富的深度学习API

GPU可以对矩阵的加减乘除做并行加速:

import tensorflow as tf
import timeit
with tf.device('/cpu:0'):
    cpu_a = tf.random.normal([10000,1000])
    cpu_b = tf.random.normal([1000,2000])
    print(cpu_a.device,cpu_b.device)

def cpu_run():
    with tf.device('/cpu:0'):
        c = tf.matmul(cpu_a,cpu_b)
    return c

with tf.device('/gpu:0'):
    gpu_a = tf.random.normal([10000,1000])
    gpu_b = tf.random.normal([1000,2000])
    print(gpu_a.device,gpu_b.device)

def gpu_run():
    with tf.device('/gpu:0'):
        d = tf.matmul(gpu_a,gpu_b)
    return d

# warm up
cpu_time = timeit.timeit(cpu_run,number=10)
gpu_time = timeit.timeit(gpu_run,number=10)

print('warm up: ',cpu_time,gpu_time)

# run time
cpu_time = timeit.timeit(cpu_run,number=10)
gpu_time = timeit.timeit(gpu_run,number=10)

print('run time: ',cpu_time,gpu_time)

e9a79fe15237a6cb0e197e9dce539548.png
i7-9700 v.s. RTX 2070 S

自动求导tf.Gradient(Tape):

import tensorflow as tf

a = tf.constant(1.)
b = tf.constant(2.)
c = tf.constant(4.)

with tf.GradientTape() as tape:
    tape.watch([a,b,c])
    y = a**2 + b*c + c
    [da,db,dc] = tape.gradient(y,[a,b,c])

print(da)
print(db)
print(dc)

22ae2687cf244e2d013f9c04461d4b95.png
da=2*a=2,db=c=4,dc=b+1=3

TensorFlow提供大量的深度学习API:

fdb583a488f851b9f73f297d9dbb30cb.png

Tensorflow2.0 GPU环境搭建(linux平台下)

Nvidia显卡驱动:需要在Nvidia官网https://www.nvidia.com/Download/index.aspx?lang=en-us查询显卡对应的驱动包,下载。下面提供了一个适合RTX 20XX系列的安装包的百度云链接。链接:https://pan.baidu.com/s/1b1daIaMaz7-oy28sMLjysA 密码:4jeg

下载后进入tty3命令行模式,关闭lightdm,禁用nouveau显卡驱动,并安装Nividia显卡驱动程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值