tensorflow——summary
目录简介创建实例——tf.summary.create_file_writer()实例常用方法set_as_default()as_default()flush()close()写入函数tf.summary.scalar()tf.summary.histogram()tf.summary.text()tf.summary.image()tf.summary.audio()开启tensorborad
目录
简介
在训练过程中记录数据的利器:tf.summary()提供了各类方法(支持各种多种格式)用于保存训练过程中产生的数据(比如loss_value、accuracy、整个variable),这些数据以日志文件的形式保存到指定的文件夹中。
数据可视化:而tensorboard可以将tf.summary()记录下来的日志可视化,根据记录的数据格式,生成折线图、统计直方图、图片列表等多种图。
tf.summary()通过递增的方式更新日志,这让我们可以边训练边使用tensorboard读取日志进行可视化,从而实时监控训练过程。
创建实例——tf.summary.create_file_writer()
tf.summary.create_file_writer(logdir,max_queue=None, flush_millis=None, filename_suffix=None, name=None)
参数说明:
logdir:文件夹路径
max_queue:最多在缓存中暂存max_queue个数据,当超过max_queue个时,flush更新到日志文件中并清空缓存。默认为10。
flush_millis:至少flush_millis毫秒内进行一次flush。默认为120,000毫秒。
filename_suffix:日志文件的后缀。默认为.v2。
name:(tf1.0残余特性,请忽略它)本操作的名称。
返回一个SummaryWriter实例对象。
实例常用方法
set_as_default()
设定默认的 summary writer ,亦即让此后出现的所有 summary 写入操作,都默认使用本个 summary writer 实例进行记录。
as_default()
配合with使用,在with内的上下文中,出现的所有 summary 写入操作,都默认使用本个 summary writer 实例进行记录。
flush()
强制将缓存中的数据写入到日志文件中
close()
强制将缓存中的数据写入到日志文件中,然后关闭 summary writer
写入函数
tf.summary.scalar()
tf.summary.scalar(name, data, step=None, description=None):用来保存单个数值(loss、accuary、学习率等)
data必须是标量值,step必须是可以转化为int64的、递增的数值。
返回boolean值,是否写入。
tf.summary.histogram()
tf.summary.histogram(name, data, step=None, buckets=None, description=None):直方图
buckets:直方图中“桶”的个数,data:任何形状的可转换为float64的Tensor。
tf.summary.text()
tf.summary.text(name, data, step=None, description=None):文本
data:一个字符串Tensor。
tf.summary.image()
tf.summary.image(name, data, step=None, max_outputs=3, description=None):图像
data:一个记录像素数据的形状为[k, h, w, c]的Tensor,如果元素是浮点数,则会被裁剪为[0,1)的范围。
max_outputs:可选;最多保存max_outputs张图像,其他舍弃。
tf.summary.audio()
tf.summary.audio(name, data, sample_rate, step=None, max_outputs=3, encoding=None, description=None):音频
data:一个记录音频数据的,形状为[k, t, c]的Tensor。
其中:k是音频片段的数量。t音频帧的数量,c是channel的数目。元素应为[-1.0, 1.0]之间的浮点数。
sample_rate:采样率,以Hz为单位。必须是正整数。
encoding:音频编码格式,一个str值,目前仅支持 “wav” 格式。
开启tensorborad
tensorboard --logdir=log
开启trace
由于tensorflow2.0取消了sess和初始静态图,所以无法使用像1.x版本,直接将sess.graph添加进tensorboard,所以需要使用trace_on进行记录。
trace_export():停止trace,并将之前trace记录到的信息写入profiler日志文件。
trace_off():停止trace,并舍弃之前trace记录。
trace_on():开始trace
我们可以在训练前使用 tf.summary.trace_on 开启 Trace,此时 TensorFlow 会将训练时的大量信息(如计算图的结构,每个操作所耗费的时间等)记录下来。在训练完成后,使用 tf.summary.trace_export 将记录结果输出到文件。
writer = tf.summary.create_file_writer(log_dir)
tf.summary.trace_on(graph=True, profiler=True) # 开启Trace,可以记录图结构和profile信息
"""
进行训练
"""
# 最后将统计信息写入日志
with writer.as_default():
tf.summary.trace_export(name="model_trace", step=0, profiler_outdir=r".\log\tensorboard") # 保存Trace信息到文件
更多推荐



所有评论(0)