TensorBoard

TensorFlow自带的可视化工具,能够以直观的流程图的方式,清楚展示出整个神经网络的结构和框架,便于理解模型和发现问题。

启动TensorBoard

  • 使用命令“tensorboard --logdir=path/to/log-directory”(或者“python -m tensorboard.main”);
  • 参数logdir指向FileWriter将数据序列化的目录,建议在logdir上一级目录执行此命令;
  • TensorBoard运行后,在浏览器输入“localhost:6006”即可查看TensorBoard;

帮助信息

  • 使用“tensorboard --help”查看tensorboard的详细参数

示例

程序代码

 # coding=utf-8
from __future__ import print_function
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '' # ### 添加神经层 def add_layer(inputs, in_size, out_size, n_layer, activation_function=None): # 参数n_layer用来标识层数
layer_name = 'layer{}'.format(n_layer)
with tf.name_scope(layer_name): # 使用with tf.name_scope定义图层,并指定在可视化图层中的显示名称
with tf.name_scope('weights'): # 定义图层并指定名称,注意这里是上一图层的子图层
Weights = tf.Variable(tf.random_normal([in_size, out_size]), name='W') # 参数name指定名称
tf.summary.histogram(layer_name + '/weights', Weights) # 生成直方图summary,指定图表名称和记录的变量
with tf.name_scope('biases'): # 定义图层并指定名称
biases = tf.Variable(tf.zeros([1, out_size]) + 0.1, name='b') # 参数name指定名称
tf.summary.histogram(layer_name + '/biases', biases) # 生成直方图summary
with tf.name_scope('Wx_plus_b'): # 定义图层并指定名称
Wx_plus_b = tf.matmul(inputs, Weights) + biases
if activation_function is None:
outputs = Wx_plus_b
else:
outputs = activation_function(Wx_plus_b)
tf.summary.histogram(layer_name + '/outputs', outputs) # 生成直方图summary
return outputs # ### 构建数据
x_data = np.linspace(-1, 1, 300, dtype=np.float32)[:, np.newaxis]
noise = np.random.normal(0, 0.05, x_data.shape).astype(np.float32)
y_data = np.square(x_data) - 0.5 + noise # ### 搭建网络
with tf.name_scope('inputs'): # 定义图层并指定名称
xs = tf.placeholder(tf.float32, [None, 1], name='x_input') # 指定名称为x_input,也就是在可视化图层中的显示名称
ys = tf.placeholder(tf.float32, [None, 1], name='y_input') # 指定名称为y_input h1 = add_layer(xs, 1, 10, n_layer=1, activation_function=tf.nn.relu) # 隐藏层
prediction = add_layer(h1, 10, 1, n_layer=2, activation_function=None) # 输出层 with tf.name_scope('loss'): # 定义图层并指定名称
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction),
reduction_indices=[1]))
tf.summary.scalar('loss', loss) # 用于标量的summary,loss在TensorBoard的event栏 with tf.name_scope('train'): # 定义图层并指定名称
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) sess = tf.Session()
merged = tf.summary.merge_all() # 合并之前定义的所有summary操作
writer = tf.summary.FileWriter("logs/", sess.graph) # 创建FileWriter对象和event文件,指定event文件的存放目录
init = tf.global_variables_initializer()
sess.run(init) # ### 结果可视化
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.scatter(x_data, y_data)
plt.ion()
plt.show() # ### 训练
for i in range(1001):
sess.run(train_step, feed_dict={xs: x_data, ys: y_data})
if i % 50 == 0:
result = sess.run(loss, feed_dict={xs: x_data, ys: y_data})
print("Steps:{} Loss:{}".format(i, result))
rs = sess.run(merged, feed_dict={xs: x_data, ys: y_data}) # 在sess.run中运行
writer.add_summary(rs, i)
try:
ax.lines.remove(lines[0])
except Exception:
pass
prediction_value = sess.run(prediction, feed_dict={xs: x_data})
lines = ax.plot(x_data, prediction_value, 'r-', lw=5)
plt.pause(0.2) # ### TensorBoard
# TensorFlow自带的可视化工具,能够以直观的流程图的方式,清楚展示出整个神经网络的结构和框架,便于理解模型和发现问题;
# - 可视化学习:https://www.tensorflow.org/guide/summaries_and_tensorboard
# - 图的直观展示:https://www.tensorflow.org/guide/graph_viz;
# - 直方图信息中心:https://www.tensorflow.org/guide/tensorboard_histograms
#
# ### 启动TensorBoard
# 使用命令“tensorboard --logdir=path/to/log-directory”(或者“python -m tensorboard.main”);
# 参数logdir指向FileWriter将数据序列化的目录,建议在logdir上一级目录执行此命令;
# TensorBoard运行后,在浏览器输入“localhost:6006”即可查看TensorBoard;

程序运行结果

运行过程中显示的图形:

某一次运行的命令行输出:

Steps:0  Loss:0.19870562851428986
Steps:50 Loss:0.006314810831099749
Steps:100 Loss:0.0050856382586061954
Steps:150 Loss:0.0048223137855529785
Steps:200 Loss:0.004617161583155394
Steps:250 Loss:0.004429362714290619
Steps:300 Loss:0.004260621033608913
Steps:350 Loss:0.004093690309673548
Steps:400 Loss:0.003932977095246315
Steps:450 Loss:0.0038178395479917526
Steps:500 Loss:0.003722294932231307
Steps:550 Loss:0.003660505171865225
Steps:600 Loss:0.0036110866349190474
Steps:650 Loss:0.0035716891288757324
Steps:700 Loss:0.0035362064372748137
Steps:750 Loss:0.0034975067246705294
Steps:800 Loss:0.003465239657089114
Steps:850 Loss:0.003431882942095399
Steps:900 Loss:0.00339301535859704
Steps:950 Loss:0.0033665322698652744
Steps:1000 Loss:0.003349516075104475

生成的TensorBoard文件:

(mlcc) D:\Anliven\Anliven-Code\PycharmProjects\TempTest>dir logs
驱动器 D 中的卷是 Files
卷的序列号是 ACF9-2E0E D:\Anliven\Anliven-Code\PycharmProjects\TempTest\logs 的目录 2019/02/24 23:41 <DIR> .
2019/02/24 23:41 <DIR> ..
2019/02/24 23:41 137,221 events.out.tfevents.1551022894.DESKTOP-68OFQFP
1 个文件 137,221 字节
2 个目录 219,401,887,744 可用字节 (mlcc) D:\Anliven\Anliven-Code\PycharmProjects\TempTest>

启动与TensorBoard

执行下面的启动命令,然后在浏览器中输入“http://localhost:6006/”查看。

(mlcc) D:\Anliven\Anliven-Code\PycharmProjects\TempTest>tensorboard --logdir=logs
TensorBoard 1.12.0 at http://DESKTOP-68OFQFP:6006 (Press CTRL+C to quit)

栏目Scalars

栏目Graphs

  • 通过鼠标滑轮可以改变显示大小和位置
  • 鼠标双击“+”标识可以查看进一步的信息
  • 可以将指定图层从主图层移出,单独显示

栏目Distributions

栏目histograms

AI - TensorFlow - 可视化工具TensorBoard的更多相关文章

  1. TensorFlow高级API(tf.contrib.learn)及可视化工具TensorBoard的使用

    一.TensorFlow高层次机器学习API (tf.contrib.learn) 1.tf.contrib.learn.datasets.base.load_csv_with_header 加载cs ...

  2. 深度学习可视化工具--tensorboard的使用

    tensorboard的使用 官方文档 # writer.add_scalar() # 添加标量 """ Args: tag (string): Data identif ...

  3. 深度学习-CNN tensorflow 可视化

    tf.summary模块的简介 在TensorFlow中,最常用的可视化方法有三种途径,分别为TensorFlow与OpenCv的混合编程.利用Matpltlib进行可视化.利用TensorFlow自 ...

  4. 0703-可视化工具tensorboard和visdom

    0703-可视化工具tensorboard和visdom 目录 一.可视化工具概述 二.TensorBoard 三.Visdom 3.1 visdom 概述 3.2 visdom 的常用操作 3.3 ...

  5. 使用TensorBoard可视化工具

    title: 使用TensorBoard可视化工具 date: 2018-04-01 13:04:00 categories: deep learning tags: TensorFlow Tenso ...

  6. 可视化学习Tensorboard

    可视化学习Tensorboard TensorBoard 涉及到的运算,通常是在训练庞大的深度神经网络中出现的复杂而又难以理解的运算.为了更方便 TensorFlow 程序的理解.调试与优化,发布了一 ...

  7. tensorflow学习笔记----TensorBoard讲解

    TensorBoard简介 TensorBoard是TensorFlow自带的一个强大的可视化工具,也是一个Web应用程序套件.TensorBoard目前支持7种可视化,Scalars,Images, ...

  8. 一个简单的TensorFlow可视化MNIST数据集识别程序

    下面是TensorFlow可视化MNIST数据集识别程序,可视化内容是,TensorFlow计算图,表(loss, 直方图, 标准差(stddev)) # -*- coding: utf-8 -*- ...

  9. BERT可视化工具bertviz体验

    BERT可视化工具体验:bertviz是用于BERT模型注意力层的可视化页面. 1,bertviz的github地址:https://github.com/jessevig/bertviz 2,将be ...

随机推荐

  1. 由HashMap哈希算法引出的求余%和与运算&转换问题

    1.引出问题 在前面讲解HashMap 的源码实现时,有如下几点: ①.初始容量为 1<<4,也就是24 = 16 ②.负载因子是0.75,当存入HashMap的元素占比超过整个容量的75 ...

  2. 谁还没遇上过NoClassDefFoundError咋地——浅谈字节码生成与热部署

    谁还没遇上过NoClassDefFoundError咋地--浅谈字节码生成与热部署 前言 在Java程序员的世界里,NoClassDefFoundError是一类相当令人厌恶的错误,因为这类错误通常非 ...

  3. 7-25 :active :after :before :disabled

    1:<list,<datalist>,required,<select>,<option>,title,draggable,hidden 2:data-*和命 ...

  4. vue的常用组件方法应用

    项目技术: webpack + vue + element + axois (vue-resource) + less-loader+ ... vue的操作的方法案例: 1.数组数据还未获取到,做出预 ...

  5. Python web简约表白网页源码分享,时光不老,我们不散!

    演示站:c.lmz8.cn打开js/4.js,复制到工具箱的js代码整理那,先解密,方便查看.工具箱:tool.lmz8.cnjs代码整理.在线解码 这个便是文字,只不过呗转码了,所以要用到解码工具. ...

  6. QM4_Probability

    Basic Concepts Probability concepts Terms Random variable A quantity whose possible values are uncer ...

  7. Python集合set

    集合 set 集合是无序的 集合的值是唯一的 求两个集合的关系: list1 = [1,4,5,7,3,6,7,9] list2 = set([2,6,0,66,22,8,4]) list3 = se ...

  8. loj6045 「雅礼集训 2017 Day8」价

    我们考虑最小割. 我一开始觉得是裸的最小割,就直接S到每个减肥药连up+p[i]的边,减肥药到药材连inf边,药材到T连up,然后得到了40分的好成绩. 之后我发现这是一个假的最小割,最小割割的是代价 ...

  9. BZOJ_1369_[Baltic2003]Gem_树形DP

    BZOJ_1369_[Baltic2003]Gem_树形DP Description 给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数 唯一的限制条件是相临的两个结点不能标上相同的权值, ...

  10. python 备份文件脚本

    使用python备份服务器的文件 #coding=utf- import os import os.path def copyFiles(sourceDir, targetDir): for file ...