TensorFlow1.x和TensorFlow2.0的区别

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;

发布了7 篇原创文章 · 获赞 0 · 访问量 206
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览