TensorFlow之计算过程与名字来历

介绍:

TensorFlow框架内部也有int, float, string等数据类型,但是直接将Python中的数据类型与TensorFlow中的数据类型进行运算是行不通的。只能是先将Python中的数据转换为TensorFlow中的数据类型,由Tensorflow计算出结果后,再从TensorFlow图中取出来。接下来我们以矩阵运算为例体验Python对象数据传入图中后,再将图的计算结果取出来的过程,代码如下:

import tensorflow as tf
# 定义Python中int类型二维矩阵
A = [[1, 2, 3],
     [4, 5, 6]]
B = [[1, 1], [1, 1], [1, 1]]

# 将Python类型数据A和B传入图中
A_tf = tf.constant(A, dtype=tf.float32, name="A")
B_tf = tf.constant(B, dtype=tf.float32, name="B")

# 构建图中的计算节点
C_tf = tf.matmul(A_tf, B_tf)

print(C_tf)

输出:

tf.Tensor(
[[ 6.  6.]
 [15. 15.]], shape=(2, 2), dtype=float32)

 

上面代码中,3-5行为定义Python中类型为int的二维数组A和B。第8-9行是将Python数据类型的数据传入TensorFlow图中;第12行是在TensorFlow图中创建一个计算节点,这个计算节点的输入是TensorFlow图中的A_tf和B_tf。到第12行为止,图构建完毕,但是要注意,当前还没有真正执行矩阵运算,只是在图中把矩阵运算的输入和矩阵计算定义完成。

真正开始执行是最后一行,在这一行中,是从图中取出C_tf数据。这要从TensorFlow的内部机制说起,在TensorFlow中,一切数据节点都是Tensor对象,如A_tf和B_tf分别是TensorFlow图中的Tensor对象,C_tf也是TensorFlow图中的Tensor对象。

现在要将C_tf这个Tensor对象从图中取出,TensorFlow框架会自动寻找所有叶子节点到C_tf的路径,并把路径中所有的计算节点(即本例中的矩阵计算)都执行,直到计算结束,即得到C_tf结果。如下图所示。这也正是TensorFlow框架的命名来历,即Tensor+Flow.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

越来越胖的GuanRunwei

祝老板们身体健康,财源广进!

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

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

打赏作者

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

抵扣说明:

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

余额充值