欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

TensorFlow发布了一则劲爆消息!Python就是这么牛逼!不信?你看

程序员文章站 2022-06-08 20:40:08
恢复内容开始 一般而言,在写 TensorFlow 代码时,我们需要构建整个算法的计算图,或者规划所有数据流的计算过程,然后再投入数据并快速执行整个或局部计算图。当然因为当前 PyTorch 和 Keras 等动态计算图的流行,TensorFlow 也发布了 Eager Execution,它可以帮 ......

---恢复内容开始---

TensorFlow发布了一则劲爆消息!Python就是这么牛逼!不信?你看

 

一般而言,在写 TensorFlow 代码时,我们需要构建整个算法的计算图,或者规划所有数据流的计算过程,然后再投入数据并快速执行整个或局部计算图。当然因为当前 PyTorch 和 Keras 等动态计算图的流行,TensorFlow 也发布了 Eager Execution,它可以帮助用户自动构建计算图。但一般的 TensorFlow 还是常使用静态计算图的方式,因为它的构建逻辑与部署都非常有优势。

TensorFlow发布了一则劲爆消息!Python就是这么牛逼!不信?你看

 

TensorFlow发布了一则劲爆消息!Python就是这么牛逼!不信?你看

 

在执行时变成如下代码:

TensorFlow发布了一则劲爆消息!Python就是这么牛逼!不信?你看

 

AutoGraph 不只是有用宏命令的集合,它还可以使用源代码转换来覆写 Python 语言的任意部分,包括控制流、函数应用和分配,生成样板代码,重构惯用 Python,以使转换成图的过程变得简单。

使用任意编译器,都会对错误信息可读性产生担忧;为此,AutoGraph 可以创建错误信息,并堆叠揭示原始源代码中错误来源的多个轨迹,而不是仅仅显示生成代码的 reference。

可运行示例

那么,AutoGraph 可以为我们做什么呢?以下有一些示例代码,它们可以直接转换为图代码而不需要任何的改写。如果你想实际运行这些操作,谷歌在这个 GitHub 的 Colab 中提供了一个 notebook 可供使用。

TensorFlow发布了一则劲爆消息!Python就是这么牛逼!不信?你看

 

AutoGraph 允许你在循环中添加元素到数组中。为了让其工作,我们使用一些 AutoGraph 辅助工具,set_element_type 和 stack。

TensorFlow发布了一则劲爆消息!Python就是这么牛逼!不信?你看

 

Graph Performance 对比 Eager Execution

Eager Execution 相当合用,但图更快。尽管对比基准较为复杂(由应用以及硬件配置决定),但在一些简单示例中我们可以看到,当从 Eager 转换到 AutoGraph 代码时有极大的加速,使用了大量 if 和 while 等语句。

最终,AutoGraph 让你可以在 GPU 和 Cloud TPU 这样的加速器硬件上使用动态和流控制极严模型,这对在大量数据上训练大型模型非常有帮助。

AutoGraph 和 Eager Execution

虽然使用 Eager Execution,你也能通过 tf.contrib.eager.defun 对部分代码根据计算图执行。但这需要你使用 tf.cond() 这样计算图类的 TensorFlow ops。未来,AutoGraph 将无缝与 defun 融合,让你用简单的 eager-style Python 编写图代码。当成为现实时,通过选择性的把 eager 代码转换到图分段,你就可以期待使用 AutoGraph 加速热点了。

TensorFlow发布了一则劲爆消息!Python就是这么牛逼!不信?你看

 

进群:125240963   即可获取数十套PDF哦!

TensorFlow发布了一则劲爆消息!Python就是这么牛逼!不信?你看