Tensorflow 2.0 和 Tensorflow 1.x 的计算区别

TensorFlow 2 是一个与 TensorFlow 1.x 使用体验完全不同的框架,TensorFlow 2 不兼容TensorFlow 1.x 的代码,同时在编程风格、函数接口设计等上也大相径庭,TensorFlow 1.x的代码需要依赖人工的方式迁移,自动化迁移方式并不靠谱。

TensorFlow 2 支持动态图优先模式,在计算时可以同时获得计算图与数值结果,可以代码中调试实时打印数据,搭建网络也像搭积木一样,层层堆叠,非常符合软件开发思维。

以简单的a + b的相加运算为例,在 TensorFlow 1.x 中,首先创建计算图, 创建计算图的过程就类比通过符号建立公式 c= a+b 的过程,仅仅是记录了公式的计算步骤,并没有实际计算公式的数值结果,需要通过运行公式的输出端子,并赋值 a=2.0, b= 4.0才能获得的数值结果:

tensorflow 1.x:a + b

import tensorflow as tf

# 1.创建计算图阶段
# 创建 2 个输入端子,指定类型和名字
a = tf.placeholder(tf.float32, name='variable_a')
b = tf.placeholder(tf.float32, name='variable_b')
# 创建输出端子的运算操作,并命名

c = tf.add(a, b, name='variable_c')

# 2.运行计算图阶段
# 创建运行环境
sess = tf.InteractiveSession()
# 初始化步骤也需要作为操作运行
init = tf.global_variables_initializer()
sess.run(init) # 运行初始化操作,完成初始化
# 运行输出端子,需要给输入端子赋值
sum_ = sess.run(c, feed_dict={a: 2., b: 4.})
# 运算完输出端子才能得到数值类型的 c_numpy
print('a+b=', sum_)

 tensorFlow 2 :a+b

import tensorflow as tf

# 1.创建输入张量
a = tf.constant(2.)
b = tf.constant(4.)
# 2.直接计算并打印
print('a+b=',a+b)

这种运算时同时创建计算图 + 和计算数值结果a+b的方式叫做命令式编程,也称为动态图优先模式。TensorFlow 2 和 PyTorch 都是采用动态图(优先)模式开发,调试方便,所见即所得。一般来说,动态图模型开发效率高,但是运行效率可能不如静态图模式,TensorFlow 2 也支持通过 tf.function 将动态图优先模式的代码转化为静态图模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DYF-AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值