tensorflow 模型可视化_TensorFlow 的计算模型、数据模型和运行模型

TensorFlow 读书笔记之一

TensorFlow 的计算模型、数据模型和运行模型

(1)计算模型-计算图

在 TensorFlow 中,张量(Tensor)可以被简单地理解为多维数组。如果说 TensorFlow 的第一个词 Tensor 表明了它的数据结构,那么 Flow 则体现了它的计算模型。Flow 翻译成中文是“流”,它直观地表达了张量之间通过计算相互转化的过程。 TensorFlow 是一个通过计算图的形式来表述计算的编程系统 。TensorFlow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。

如果一个运算的输入依赖于另 一个运算的输出,那么这两个运算有依赖关系。

fd3984c9b0f4423ca0864e42b7dbe9cd

上图是TensorFlow构建的一个计算图。所有 TensorFlow 的程序都可以通过类似上图所示的计算图的形式来表示,这就是 TensorFlow 的基本计算模型。

TensorFlow程序一般分为两个阶段:

  • 定义计算图所有的计算;
  • 在session中执行计算;

在TensorFlow程序中,系统会自动维护一个默认的计算图,可以通过tf.get_default_graph()函数获取。

import tensorflow as tf

v1 = tf.constant(1, name="value1")

v2 = tf.constant(2, name="value2")

add_op = tf.add(v1, v2, name="add_op_name")

print(v1)

# 设置写入的文件夹

summary_writer = tf.summary.FileWriter("./calc_graph")

# 获取默认的图

graph = tf.get_default_graph()

summary_writer.add_graph(graph)

# 将图结构写入文件

summary_writer.flush()

# 获取图中的所有操作

operations = graph.get_operations()

print("运算操作:%d" % len(operations))

print("operations:")

for op in operations:

print(op)

输出结果:

066cd7f714e44b628b89e0edc42e8ceb

上述输出结果中,可以看到3个操作,分别是value1、value2和add_op_name。

还可以借助TensorBoard工具来可视化这些运算操作,以及运算操作之间的依赖。

上述代码将图结构写入到 calc_graph 文件夹中,在命令行执行如下命令:

tensorboard --logdir=./calc_graph

2826a107b3524e6cad097d817c4d429b

然后在浏览器中访问:http://localhost:6006,就会看到图结构示意图。

f618fecb9b9145baa99fdd517aed6a84

(2)数据模型-张量

张量是 TensorFlow 管理数据的形式。

TensorFlow 中最基本的单位是常量(Constant)、变量(Variable)和占位符(Placeholder)。常量定义后值和维度不可变,变量定义后值可变而维度不可变。在神经网络中,变量一般可作为储存权重和其他信息的矩阵,而常量可作为储存超参数或其他结构信息的变量。

在TensorFlow中,所有的数据都通过张量的形式来表示。

  • 零阶张量表示标量(scalar),也就是一个数;
  • 第一阶张量为向量(vector),也就是一个一维数组;
  • 第n阶张量可以理解为一个n为数组;

但是张量在TensorFlow中并不是直接采用数组的形式,它只是对TensorFlow 中运算结果的引用。

import tensorflow as tf

v1 = tf.constant(1, name="value1")

v2 = tf.constant(2, name="value2")

add_op = tf.add(v1, v2, name="add_op_name")

print(v1)

输出结果:Tensor("value1:0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值