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;
上一篇: wide & deep 模型
推荐阅读
-
Java和C++通过new创建的对象有何区别?
-
详谈锁和监视器之间的区别_Java并发
-
深入Synchronized和java.util.concurrent.locks.Lock的区别详解
-
浅析Python中元祖、列表和字典的区别
-
java final 和instanceof 关键字的区别
-
WinForm中KeyDown,KeyPress和KeyUp的顺序与区别解析
-
师范学校和非师范学校的师范专业有什么区别?全国师范排名三十强2021
-
浅谈Java中BIO、NIO和AIO的区别和应用场景
-
Java中HashMap和Hashtable及HashSet的区别
-
C#中Convert.ToString和ToString的区别分析