TensorFlow2 AutoGraph

简介: 【8月更文挑战第18天】TensorFlow2 AutoGraph。

TensorFlow2 AutoGraph
当使用tf.function装饰器注释函数时,可以像调用任何其他函数一样调用它。它将被编译成图,这意味着可以获得更高效地在在GPU或TPU上运行。此时函数变成了一个TensorFlow中的operation。我们可以直接调用函数,输出返回值,但是函数内部是在graph模式下执行的,无法直接查看中间变量数值

代码:
@tf.function
def simple_nn_layer(w,x,b):
print(b)
return tf.nn.relu(tf.matmul(w, x)+b)

w = tf.random.uniform((3, 3))
x = tf.random.uniform((3, 3))
b = tf.constant(0.5, dtype='float32')

simple_nn_layer(w,x,b)

输出:
Tensor("b:0", shape=(), dtype=float32)

通过输出结果可知,无法直接查看函数内部b的数值,而返回值可以通过.numpy()查看。
通过相同的操作(执行一层lstm计算),比较graph和eager execution模式的性能。

代码:

timeit测量小段代码的执行时间

import timeit

创建一个卷积层。

CNN_cell = tf.keras.layers.Conv2D(filters=100,kernel_size=2,strides=(1,1))

利用@tf.function,将操作转化为graph。

@tf.function
def CNN_fn(image):
return CNN_cell(image)

image = tf.zeros([100, 200, 200, 3])

比较两者的执行时间

CNN_cell(image)
CNN_fn(image)

调用timeit.timeit,测量代码执行10次的时间

print("eager execution模式下做一层CNN卷积层运算的时间:", timeit.timeit(lambda: CNN_cell(image), number=10))
print("graph模式下做一层CNN卷积层运算的时间:", timeit.timeit(lambda: CNN_fn(image), number=10))

输出:
eager execution模式下做一层CNN卷积层运算的时间: 18.26327505100926
graph模式下做一层CNN卷积层运算的时间: 6.740775318001397

通过比较,我们可以发现graph模式下代码执行效率要高出许多。因此我们以后,可以多尝试用@tf.function功能,提高代码运行效率。

目录
相关文章
|
机器学习/深度学习 TensorFlow API
《30天吃掉那只 TensorFlow2.0》4-5 AutoGraph和tf.Module
《30天吃掉那只 TensorFlow2.0》4-5 AutoGraph和tf.Module
《30天吃掉那只 TensorFlow2.0》4-5 AutoGraph和tf.Module
|
TensorFlow 算法框架/工具 C++
《30天吃掉那只 TensorFlow2.0》 4-4 AutoGraph的机制原理
《30天吃掉那只 TensorFlow2.0》 4-4 AutoGraph的机制原理
《30天吃掉那只 TensorFlow2.0》 4-4 AutoGraph的机制原理
|
TensorFlow 算法框架/工具 Python
《30天吃掉那只 TensorFlow2.0》4-3 AutoGraph的使用规范
《30天吃掉那只 TensorFlow2.0》4-3 AutoGraph的使用规范
《30天吃掉那只 TensorFlow2.0》4-3 AutoGraph的使用规范
|
12天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
43 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
12天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
42 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
12天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
52 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
28天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
72 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
110 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
3月前
|
机器学习/深度学习 算法 TensorFlow
深入探索强化学习与深度学习的融合:使用TensorFlow框架实现深度Q网络算法及高效调试技巧
【8月更文挑战第31天】强化学习是机器学习的重要分支,尤其在深度学习的推动下,能够解决更为复杂的问题。深度Q网络(DQN)结合了深度学习与强化学习的优势,通过神经网络逼近动作价值函数,在多种任务中表现出色。本文探讨了使用TensorFlow实现DQN算法的方法及其调试技巧。DQN通过神经网络学习不同状态下采取动作的预期回报Q(s,a),处理高维状态空间。
59 1
|
2月前
|
机器学习/深度学习 数据挖掘 TensorFlow
解锁Python数据分析新技能,TensorFlow&PyTorch双引擎驱动深度学习实战盛宴
在数据驱动时代,Python凭借简洁的语法和强大的库支持,成为数据分析与机器学习的首选语言。Pandas和NumPy是Python数据分析的基础,前者提供高效的数据处理工具,后者则支持科学计算。TensorFlow与PyTorch作为深度学习领域的两大框架,助力数据科学家构建复杂神经网络,挖掘数据深层价值。通过Python打下的坚实基础,结合TensorFlow和PyTorch的强大功能,我们能在数据科学领域探索无限可能,解决复杂问题并推动科研进步。
66 0
下一篇
无影云桌面