可视化Tensorboard

•数据序列化-events文件

TensorBoard 通过读取 TensorFlow 的事件文件来运行

•tf.summary.FileWriter('/tmp/tensorflow/summary/test/',graph=

default_graph)

返回filewriter,写入事件文件到指定目录(最好用绝对路径),以提供给tensorboard使用

•开启

tensorboard --logdir=/tmp/tensorflow/summary/test/

一般浏览器打开为127.0.0.1:6006 或者 localhost:6006

注:修改程序后,再保存一遍会有新的事件文件,打开默认为最新

import tensorflow as tf
import os
# 防止警告
os.environ['TF_CPP_MIN_LOG_LEVEL'] = ''
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.add(input1,input2)
with tf.Session() as sess:
print(sess.run([output],feed_dict={input1:10.0,input2:20.0}))
summary_writer = tf.summary.FileWriter('./tmp/summary/test/', graph=sess.graph)

Scalar merge

目的:观察模型的参数、损失值等变量值的变化

1、收集变量

•tf.summary.scalar(name=’’,tensor)收集对于损失函数和准确率等单值变量,name为变量的名字,tensor为值

•tf.summary.histogram(name=‘’,tensor)收集高维度的变量参数

•tf.summary.image(name=‘’,tensor) 收集输入的图片张量能显示图片

cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_label, logits=y))
# 梯度下降
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
# 比较真实标签
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_label, 1))
# tf.cast(xx,tf.float32)改变tensor类型
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) tf.summary.scalar("loss",cross_entropy) tf.summary.scalar("accuracy", accuracy) tf.summary.histogram("W",W)

2、合并变量写入事件文件

•merged= tf.summary.merge_all()

•运行合并:summary= sess.run(merged),每次迭代都需运行

•添加:FileWriter.add_summary(summary,i),i表示第几次的值

merged = tf.summary.merge_all()
summary_writer = tf.summary.FileWriter(FLAGS.summary_dir, graph=sess.graph)
summary = sess.run(merged)
summary_writer.add_summary(summary,i)

来个复杂一点的:

import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '' graph = tf.Graph()
with graph.as_default():
with tf.name_scope("name1") as scope:
a = tf.Variable([1.0,2.0],name="a")
with tf.name_scope("name2") as scope:
b = tf.Variable(tf.zeros([20]),name="b")
c = tf.Variable(tf.ones([20]),name="c")
with tf.name_scope("name3") as scope:
a1 = tf.Variable(tf.constant(21.0), name="a1")
b1 = tf.Variable(tf.constant(13.0), name="b1")
with tf.name_scope("cal") as scope:
d = tf.concat([b,c],0)
e = tf.add(a,57)
c1 = tf.add(a1, b1) with tf.Session(graph=graph) as sess:
tf.global_variables_initializer().run()
# merged = tf.summary.merge_all()
summary_writer = tf.summary.FileWriter('./tmp/summary/test/', graph=sess.graph)
# print(sess.run([d, e, c1]))

TensorFlow笔记-可视化Tensorboard的更多相关文章

  1. tensorflow笔记(三)之 tensorboard的使用

    tensorflow笔记(三)之 tensorboard的使用 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7429344.h ...

  2. tensorflow笔记:模型的保存与训练过程可视化

    tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 ...

  3. Tensorflow 笔记 -- tensorboard 的使用

    Tensorflow 笔记 -- tensorboard 的使用 TensorFlow提供非常方便的可视化命令Tensorboard,先上代码 import tensorflow as tf a = ...

  4. tensorflow笔记(一)之基础知识

    tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...

  5. tensorflow笔记(二)之构造一个简单的神经网络

    tensorflow笔记(二)之构造一个简单的神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7425200.html ...

  6. 学习笔记TF039:TensorBoard

    首先向大家和<TensorFlow实战>的作者说句不好意思.我现在看的书是<TensorFlow实战>.但从TF024开始,我在学习笔记的参考资料里一直写的是<Tenso ...

  7. tensorflow笔记:使用tf来实现word2vec

    (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 (四) tensorflow笔 ...

  8. tensorflow笔记:多层LSTM代码分析

    tensorflow笔记:多层LSTM代码分析 标签(空格分隔): tensorflow笔记 tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) ten ...

  9. TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点

    TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点 首先提醒一下,第7讲的最后滑动平均的代码已经更新了,代码要比理论重要 今天是过拟合,和正则化,本篇后面可能或更有兴趣, ...

随机推荐

  1. FMX App的Application的事件(各种手机的全局按键)

    直接上代码,还有条经验就是SetApplicationEventHandler可注册多个事件方法. unit Unit6; interface uses  System.SysUtils, Syste ...

  2. SOA 相关开发调试软件

    开发工具 IntelliJ IDEA:https://www.jetbrains.com/idea/ SOA调试 soapui:http://www.soapui.org/ wcfstorm:http ...

  3. C++大小写转换和性能(C语言,C++,API,STL一共4种方法)

    大小写转换和性能 前言 本文主要讨论最基本的一些大小写转换函数和API,不讨论一些常见的字符串程序库里面的大小写转换接口,另外本文的落脚点是这些转换函数的性能和日常开发中遇到的一些问题. 不考虑范围 ...

  4. java关键字-final

    final特点: 1:这个关键字是一个修饰符,可以修饰类,方法,变量. 2:被final修饰的类是一个最终类,不可以被继承. 3:被final修饰的方法是一个最终方法,不可以被覆盖. 4:被final ...

  5. Redis 学习笔记(篇三):跳表

    跳表 跳表(skiplist)是一种有序的数据结构,是在有序链表的基础上发展起来的. 在 Redis 中跳表是有序集合(sort set)的底层实现之一. 说到 Redis 中的有序集合,是不是和 J ...

  6. spring boot 2.x 系列 —— spring boot 整合 servlet 3.0

    文章目录 一.说明 1.1 项目结构说明 1.2 项目依赖 二.采用spring 注册方式整合 servlet 2.1 新建过滤器.监听器和servlet 2.2 注册过滤器.监听器和servlet ...

  7. Vue SSR初探

    因为之前用nuxt开发过应用程序,但是nuxt早就达到了开箱即用的目的,所以一直对vue ssr的具体实现存在好奇. 构建步骤 我们通过上图可以看到,vue ssr 也是离不开 webpack 的打包 ...

  8. 08、MySQL—字符串型

    字符串型 1.Char 定长字符:指定长度之后,系统一定会分配指定的空间用于存储数据 基本语法: char(L),L代表字符数(中文与英文字母一样),L长度为0到255 2.Varchar 变长字符: ...

  9. 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法

    1.利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法 首先判断字符串的长度是否为0,如果是,直接返回字符串 第二,循环判断字符串的首部是否有空格,如 ...

  10. 并发编程-concurrent指南-阻塞队列-数组阻塞队列ArrayBlockingQueue

    ArrayBlockingQueue类是实现了BlockingQueue. ArrayBlockingQueue是一个有界的阻塞队列,其内部实现是将对象放在一个数组中. 放入元素方法: (1) add ...