Tensorboard的简介

一、tensorboard的简介

  1. tensorboard简介
  2. tensorboard使用流程

二、tensorflow可视化分类

  1. 计算图的可视化:add_graph()

  2. 监控指标的可视化:add_summary()

Ⅰ、 SCALAR
Ⅱ、 IMAGE
Ⅲ、 HISTOGRAM
Ⅳ、 MERGE_ALL

3、 多个时间的可视化:add_event()

三、通过命名空间美化计算图

四、将所有日志写入到文件:tf.summary.FileWriter()

五、启动tensorboard展示所有日志图表

1.通过windows下的cmd启动
2.通过Ubuntu下的bash启动

六、使用TF实现一元线性回归(并使用TensorBoard可视化)

Tensorboard的使用

简单例子

import tensorflow as tf
a=tf.constant([1.0,2.0,3.0],name='input1')
b=tf.Variable(tf.random_uniform([3]),name='input2')
add=tf.add_n([a,b],name='addOP')
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    writer=tf.summary.FileWriter("mnist_logs",sess.graph)
    print(sess.run(add))
writer.close()

七、Tensorflow手册

简述

使用图表示计算任务、再会话的上下文当中执行图、通过tensor表示数据、通过变量维护状态、使用feed和fetch可以为任意的操作赋值或者从其中获取数据

TensorFlow 是一个编程系统, 使用图来表示计算任务. 图中的节点被称之为 op (operation 的缩写). 一个 op获得 0 个或多个 Tensor , 执行计算, 产生 0 个或多个 Tensor . 每个 Tensor 是一个类型化的多维数组. 例如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels] .一个 TensorFlow 图描述了计算的过程. 为了进行计算, 图必须在 会话 里被启动. 会话 将图的 op 分发到诸如 CPU 或 GPU 之类的 设备 上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 Python 语言中, 返回的 tensor 是 numpy ndarray 对象; 在 C 和 C++ 语言中, 返回的 tensor 是 tensorflow::Tensor 实例.

计算图

构建图的第一步,是创建源op.源op不需要任何输入,例如常量.源op的输出被传递给其他op做运算.
Python 库中, op 构造器的返回值代表被构造出的 op 的输出, 这些返回值可以传递给其它 op 构造器作为输入.

构造阶段→启动图
(请阅读Graph类和Session类!!!!!!!!!)

启动图

构造阶段完成后, 才能启动图. 启动图的第一步是创建一个 Session 对象, 如果无任何创建参数, 会话构造器将启动默认图.

交互式使用

为了便于使用诸如IPython之类的交互环境,可以使用InteractiveSession代替session类,使用Tensor.eval()和Operation.run()方法代替Session.run().这样可以避免使用一个变量来持有会话

Tensor

你可以吧tensor看作是一个n维的数组或列表,一个tensor包含一个静态类型rank和一个shape.想了解TensorFlow是怎么处理这些概念的参见,Rank,Shape,Type

变量

变量维护图执行过程中的状态信息.下面的例子演示了如何使用变量实现一个简单的计数器

state = tf.Variable(0, name="counter")
one = tf.constant(1)
newvalue = tf.add(state, one)
update = tf.assign(state, new_value)
initop = tf.initializeallvariables()
with tf.Session() as sess:
    sess.run(init_op)
    print sess.run(state)
    for _ in range(3):
        sess.run(update)
        print (sess.run(state))

这个程序可以修改来适应不同计算需求

代码中 assign() 操作是图所描绘的表达式的一部分, 正如 add() 操作一样. 所以在调用 run() 执行表达式之前, 它并不会真正执行赋值操作.

Fetch

input1=tf.constant(3.0)

input2=tf.constant(2.0)

input3=tf.constant(5.0)
intermed = tf.add(input2, input3)
mul = tf.mul(input1, intermed)
with tf.Session() as sess:
    result=sess.run([mul,intermed])
    print(result)

使用tensorflow命令时应当相当注意,使用虚拟机的目的就在于防止tensorflow突然崩溃死机,我们在前面的调试当中发现tensorflow对代码的要求相当高,一旦哪里出了问题,很容易就停不下来进而蓝屏,这是一个有待解决的问题

Feed

LT4.py

import tensorflow as tf
input1=tf.placeholder(tf.float32)
input2=tf.placeholder(tf.float32)
output=tf.multiply(input1,input2)

with tf.Session() as sess:
    print(sess.run([output], feed_dict={input1:[7.], input2:[2.]}))

feed在使用一个tensor值临时替换一个操作的输出结果.你可以提供feed数据作为run()地用的参数.feed旨在调用它的方法内有效,方法结束.feed就会消失.最常见的用力是将某些特殊的操作指定为“feed”操作,标记的方法是使用tf.placeholder()为这些操作创建占位符

for a larger-scale example of feeds.如果没有正确提供feed,placeholder()操作将会产生错误,MNIST全联通feed教程给出了更大规模使用feed的例子

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容