TensorFlow2.0基础、变化、Eager Execution

一、TensorFlow基础

1、Tensor(张量)

张量是矩阵向任意维度的推广,TensorFlow的运算都是基于张量进行的

Tensorflow的基本类型

 零维张量称为“标量”

 

一维张量称为“向量”

 二维张量称为“矩阵”

 2、Flow流

流解释为数据流动或计算,TensorFlow的运作方式是通过产生数据流图来进行运算,又称作“计算图”。计算图的节点用来表示数学运算,边则表示节点间的关联性。图2-5是数学式ReLU(XW+b)的计算图。

二、TensorFlow2.0的变化

Eager Execution

动态图模式表示立即执行的意思,在该模式下执行运算会立即返回数值,让开发者的调试更加便利和快速。

Keras

TensorFlow2.0加入了Keras 作为内建的高级 API后有了更高的兼容性。内建Keras可通过tf.keras方式来调用其功能,具有指令简洁、可以自由组合且容易扩展的模块化API等特性,使得神经网络更容易搭建。

tf.data

使用tf.data建立数据输入管道(Input Pipeline),速度更快,更简单。

TensorFlow Hub

共享模型权重的Library,可以从 Hub上加载预先训练好的模型 (Model),也可以将自己训练好的模型上传到Hub,以分享给其他人。

Distribution Strategy

新的 API可用于更加轻松地完成在多台设备上的分布式训练,例如CPU、GPU或TPU。

SavedModel

TensorFlow2.0已经规范好网络模型的存储格式,使我们可以将训练好的网络模型放到想要执行的平台上,例如手机、树莓派或网页,同时也支持不同的程序设计语言,例如C、Java、Go或C#等。

图2-6展示了当前TensorFlow 2.0已经能包办从训练模型到部署模型的流程,即读取数据、训练模型、保存模型以及把模型部署到各种设备的平台上。

三、Eager Execution

TensorFlow2.0引入了 Eager Execution动态图模式,一旦执行运算就会立刻返回数值,这有别于以往的静态图模式,需要建立计算图才能执行。

Eager Execution模式的优点如下:
(1)立即返回数值,方便调试。
(2)不必定义计算图。
(3)不必初始化参数。
(4)无须tf.Session.run 就可以返回运算结果。

1、TensorFlow1.x和TensorFlow2.0的比较

TensorFlow 1.x code

a = tf.constant(1)#建立一个常数Tensor
print(a) #显示Tensor信息
#建立一个Session
sess =tf.Session()
#通过sess.run取数值并显示出来
print( "a = {} ".format (sess.run(a)))
#关闭session释放资源
sess.close()
# 结果如下
Tensor("Const 5:0",shape=(), dtype=int32) #Shape=()表示标量,dtype=int32表示整数
a=1
a = tf.constant(1) #建立一个常数Tensor
print(a) #显示Tensor常数信息,Shape=()表示标量,dtype=int32表示整数

TensorFlow 2.0 code

a = tf.constant(1) #建立一个常数Tensor
print(a) #显示Tensor常数信息,Shape=()表示标量,dtype=int32表示整数
# 结果如下
tf.Tensor(1, shape=(), dtype=int32)

2、TensorFlow基本运算

一维Tensor的运算

 二维Tensor的运算

 将Tensor格式转为NumPy格式

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值