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

TensorFlow1.x和TensorFlow2.0的区别

程序员文章站 2022-07-13 13:10:30
...

TensorFlow 1.x主要是用于处理静态计算图的框架。计算图中的节点是Tensors,当图形运行时,它将保持n维数组;
图中的边表示在运行图以实际执行有用计算时将在张量上运行的函数。

在Tensorflow 2.0之前,将图表分为两个阶段:

  • 构建一个描述您要执行的计算的计算图
    这个阶段实际上不执行任何计算,它只是建立了计算的符号表示。该阶段通常将定义一个或多个表示计算图输入的“占位符”(placeholder)对象。如:
a_ph = tf.placeholder(tf.float32, name='variable_a')
  • 多次运行计算图
    每次运行图形时(例如,对于一个梯度下降步骤),您将指定要计算的图形的哪些部分,并传递一个“feed_dict”字典,该字典将给出具体值为图中的任何“占位符”。

这种先创建计算图后运行的方式即为符号式编程

而Tensorflow 2.0中,采用动态图(优先)模式开发,动态图开发效率高,运行效率可能不如静态图;TensorFlow 2 也支持通过 tf.function 将动态图优先模式的代码转化为静态图模式
这种运算同时创建计算图和数值结果的方式叫做命令式编程

关于静态图和动态图可以参考:https://blog.csdn.net/qq_36653505/article/details/87875279;