tensorflow API _ 5 (tensorflow.summary)
tensorflow
的可视化是使用summary
和tensorboard
合作完成的.
基本用法
首先明确一点,summary
也是op
.
输出网络结构
with tf.Session() as sess:
writer = tf.summary.FileWriter(your_dir, sess.graph)
命令行运行tensorboard --logdir your_dir
,然后浏览器输入127.0.1.1:6006
注:tf1.1.0 版本的tensorboard端口换了(0.0.0.0:6006)
这样你就可以在tensorboard
中看到你的网络结构图了
可视化参数
#ops
loss = ...
tf.summary.scalar("loss", loss)
merged_summary = tf.summary.merge_all()
init = tf.global_variable_initializer()
with tf.Session() as sess:
writer = tf.summary.FileWriter(your_dir, sess.graph)
sess.run(init)
for i in xrange(100):
_,summary = sess.run([train_op,merged_summary], feed_dict)
writer.add_summary(summary, i)
这时,打开tensorboard
,在EVENTS
可以看到loss
随着i
的变化了,如果看不到的话,可以在代码最后加上writer.flush()
试一下,原因后面说明。
函数介绍
tf.summary.merge_all
: 将之前定义的所有summary op
整合到一起FileWriter
: 创建一个file writer
用来向硬盘写summary
数据,tf.summary.scalar(summary_tags, Tensor/variable, collections=None)
: 用于标量的summary
tf.summary.image(tag, tensor, max_images=3, collections=None, name=None)
:tensor,必须4维,形状[batch_size, height, width, channels],max_images
(最多只能生成3张图片的summary
),觉着这个用在卷积中的kernel
可视化很好用.max_images
确定了生成的图片是[-max_images: ,height, width, channels],还有一点就是,TensorBord
中看到的image summary
永远是最后一个global step
的tf.summary.histogram(tag, values, collections=None, name=None)
:values,任意形状的tensor
,生成直方图summary
tf.summary.audio(tag, tensor, sample_rate, max_outputs=3, collections=None, name=None)
解释collections参数:它是一个list
,如果不指定collections, 那么此summary会被添加到f.GraphKeys.SUMMARIES
中,如果指定了,就会放在的collections
中。
FileWriter
注意:add_summary
仅仅是向FileWriter
对象的缓存中存放event data
。而向disk
上写数据是由FileWrite对象
控制的。下面通过FileWriter
的构造函数来介绍这一点!!!
tf.summary.FileWriter.__init__(logdir, graph=None, max_queue=10, flush_secs=120, graph_def=None)
Creates a FileWriter and an event file.
# max_queue: 在向disk写数据之前,最大能够缓存event的个数
# flush_secs: 每多少秒像disk中写数据,并清空对象缓存
注意
如果使用
writer.add_summary(summary,global_step)
时没有传global_step
参数,会使scarlar_summary
变成一条直线。只要是在计算图上的
Summary op
,都会被merge_all
捕捉到, 不需要考虑变量生命周期问题!- 如果执行一次,
disk
上没有保存Summary
数据的话,可以尝试下file_writer.flush()
小技巧
如果想要生成的summary有层次的话,记得在summary
外面加一个name_scope
with tf.name_scope("summary_gradients"):
tf.summary.histgram("name", gradients)
这样,tensorboard
在显示的时候,就会有一个sumary_gradients
一级目录
tensorflow API _ 5 (tensorflow.summary)的更多相关文章
- tensorflow API _ 1 (control_flow_ops.cond)
该函数用来控制程序执行流,相当于if-else了import tensorflow as tffrom tensorflow.python.ops import control_flow_ops a ...
- tensorflow API _ 6 (tf.gfile)
一.gfile模块是什么 tf.gfile模块的主要角色是:1.提供一个接近Python文件对象的API,以及2.提供基于TensorFlow C ++ FileSystem API的实现. C ++ ...
- tensorflow API _ 4 (Logging with tensorflow)
TensorFlow用五个不同级别的日志信息.为了升序的严重性,他们是调试DEBUG,信息INFO,警告WARN,错误ERROR和致命FATAL的.当你配置日志记录在任何级别,TensorFlow将输 ...
- tensorflow API _ 2 (tf.app.flags.FLAGS)
tf.app.flags.FLAGS 的使用,主要是在用命令行执行程序时,需要传些参数,代码如下:新建一个名为:app_flags.py 的文件. #coding:utf-8 import tens ...
- tensorflow API _ 4 (优化器配置)
"""Configures the optimizer used for training. Args: learning_rate: A scalar or `Tens ...
- tensorflow API _ 3 (tf.train.polynomial_decay)
学习率的三种调整方式:固定的,指数的,多项式的 def _configure_learning_rate(num_samples_per_epoch, global_step): "&quo ...
- 13 Tensorflow API主要功能
要想使用Tensorflow API,首先要知道它能干什么.Tensorflow具有Python.C++.Java.Go等多种语言API,其中Python的API是最简单和好用的. Tensor Tr ...
- TensorFlow API 汉化
TensorFlow API 汉化 模块:tf 定义于tensorflow/__init__.py. 将所有公共TensorFlow接口引入此模块. 模块 app module:通用入口点脚本. ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
随机推荐
- MD5用户密码加密工具类 MD5Util
一般记录用户密码,我们都是通过MD5加密配置的形式.这里记录一下,MD5加密的工具类. package com.mms.utils; import java.security.MessageDiges ...
- Win10最详细的优化设置 完美解决磁盘100%占用
1.用360优化win10后开不了机的问题原因是禁用了三个服务:在360应用软件服务里dmwappushsvc.diagnsticsTrackingservice.coreMessaging这三个要开 ...
- QT 学习基础问题记录
1. connect 函数 需要先创建发送者和接收者实例,并且信号函数和槽函数如果有参数,需要在 connect 函数使用时指定相关参数类型. 2.窗口控件设置 设置窗口的最大化.最小化.问号提示等控 ...
- 洛谷P3984-数据结构 题解
题面 这题精,真的精 前言:不要被题目背景和描述误导! Solution: 题目大意 给定一段序列,请你做到区间修改和区间询问. 区间询问即 在 \(L\) 到 \(R\) 区间内,乘上下标后取模的值 ...
- 【leetcode】590. N-ary Tree Postorder Traversal
Recurisve: /* // Definition for a Node. class Node { public: int val; vector<Node*> children; ...
- 介绍一款好用的命令行工具Cmder
一.Cmder的介绍: 在大多数情况下,我们都想复制命令行窗口中的命令行,但是cmd复制粘贴大家都懂得:有没有更好的工具替代呢? 答案是肯定的,今天我将为大家介绍一款工具--Cmder. Cmder可 ...
- KEPServerEX 6 配置连接 Allen-Bradley MicroLogix 1400
=============================================== 2019/7/28_第1次修改 ccb_warlock == ...
- 使用密码远程QQ时窗口闪退
系统时间不一致,在QQ上使用密码远程时会闪退,把系统时间调到大概一致就行了.
- Nginx fastcgi_cache权威指南
一.简介 Nginx版本从0.7.48开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当做Key,用Md5算法对Key进行哈希,得到硬盘上对应的哈希目录路径,从而将缓存内容保存在该目 ...
- 换个语言学一下 Golang (7)——使用函数
什么是函数 函数,简单来讲就是一段将输入数据转换为输出数据的公用代码块.当然有的时候函数的返回值为空,那么就是说输出数据为空.而真正的处理过程在函数内部已经完成了. 想一想我们为什么需要函数,最直接的 ...