构建TensorFlow数据流图

构建TensorFlow数据流图

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

TensorFlow工作模式:

(1) 定义数据流图;

(2) 运行数据流图。

In [1]:

import tensorflow as tf

In [2]:

a = tf.constant(5, name = "input_a")

In [3]:

b = tf.constant(3, name = "input_b")

In [4]:

c = tf.multiply(a, b, name = "mul_c")

In [5]:

d = tf.add(a, b, name = "add_d")

In [6]:

e = tf.add(c, d, name = "add_e")

In [7]:

sess = tf.Session()

In [9]:

sess.run(e)

Out[9]:

23

flow_graph

代码对应的数据流图

(1) 最开始时,可看到两个值5和3流入该数据流图;

(2) 这些初始值被分别传入两个明确的input节点(a与b);

(3) 节点c表示乘法运算,它分别从节点a与b接收输入值5和3,并将运算结果15输出到节点e;与此同时,节点d对相同的两个输入执行加法运算,并将计算结果8传递给节点e;

(4) 最后,该数据流图的终点——节点e接收输入值15和8,将两者相加,并输出该数据流图的最终结果23。

补充:可以使用TensorBoard可视化该数据流图。先用pip在当前环境下安装TensorBoard,再添加如下语句:
writer = tf.summary.FileWriter("logs/", sess.graph)
可以看到在当前路径下多了logs文件夹,里面有存放的数据流图文件。再在cmd里面将地址换成logs的上一级地址,并输入:
tensorboard --logdir=logs
最后可以得到一个网址,或者在地址栏输入http://localhost:6006 ,即可得到可视化的数据流图。
最后再添加两句将其关闭:
writer.close()
sess.close()

In [1]:

reset

Once deleted, variables cannot be recovered. Proceed (y/[n])? y

In [9]:

# 张量思维

In [2]:

import tensorflow as tf

In [3]:

a = tf.constant([5, 3], name = "input_a")

In [4]:

b = tf.reduce_prod(a, name = "prod_b")

In [5]:

c = tf.reduce_sum(a, name = "sum_c")

In [6]:

d = tf.add(b, c, name = "add_d")

In [7]:

sess = tf.Session()

In [8]:

sess.run(d)

Out[8]:

23

flow_tensor

代码对应的数据流图

与之前相比,原先的两个独立输入节点被替换为一个统一的输入节点,传入一组数值之后,它们会由tf.constant函数转化为一个一阶张量。
之前的标量加法乘法,现在可用tf.reduce_prod()与tf.reduce_sum()重新定义。
在TensorFlow中,所有节点之间传递的数python教程据都是张量对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值