利用tensorboard可视化checkpoint模型文件参数分布
写在前面:
上周微调一个文本检测模型seglink,将特征提取层进行冻结,只训练分类回归层,然而查看tensorboard发现里面有histogram显示模型各个参数分布,看了目前这个训练模型参数分布压根就看不懂,很想知道我的预训练模型的参数分布是怎么个情况,训练了一天了,模型的参数分布较预训练的模型参数有啥变化没有,怎么办呢?
利用tf.summary将模型参数分布在tensorboard可视化:
导入需要的库 设置模型文件夹路径
import TensorFlow as tf
from tensorflow.python import pywrap_tensorflow
model_dir="___"
定义可视化方法:
1、获取ckpt路径,这里的路径是checkpoint文件中的路径(ckpt文件夹中包括:checkpoint文件,index,meta,data四个文件)
code:
ckpt=tf.train.get_checkpoint_state(model_dir)
ckpt_path=ckpt.model_checkpoint_path
2、读取checkpoint 文件中模型的变量名和变量值
这里是使用get_variable_to_shape_map()获取了一个[key:name of variable value:the shape of variable]的list
code:
reader=pywrap_tensorflow.NewCheckpointReader(ckpt_path)
param_dict=reader.get_variable_to_shape_map()
3、开一个session,
code:
with tf.Session() as sess:
validate_writer=tf.summary.FileWriter('./run')
for key in param_dict:
if(key.startwith('vgg')):
vgg_summary=tf.summary.histogram(key,reader.get_tensor(key))
merge_summary=tf.summary.merge([vgg_summary])#这里可以添加其他需要merge的summary项,如果只有一个summary也可以不用merge,
test_summary=sess.run(merge_summary)
validate_writer.add_summary(test_summary)
tf.summary.FileWriter(event_dir_path)#event_dir_path为事件日志文件夹,运行程序之后会在该指定的文件夹中生产events文件。运行TensorFlow计算后,会将各类数据汇总记录进该日志文件,tensorboard会读取这些数据进行解析并生成数据可视化的web页面。
key.startwith('vgg')在param_dict字典中提取以vgg开头的key,并获取相关tensor以histogram的形式汇总
merge_summary=tf.summary.merge([.....])合并指定数据汇总
test_summary=sess.run(merge_summary)执行一步run,得到merge_summary,并将该summary
validate_writer.add_summary(test_summary)#将当前一步run得到的summary加入之前设置的validate_writer
附上summary示意图帮助理解,图片引用自CSDN网址:https://blog.csdn.net/hongxue8888/article/details/78610305
最后还要关闭writer
validate_writer.close()
运行代码之后,执行如下指令:
tensorboard --logdir="./run"#就是之前设置的events日志文件夹的路径
然后根据执行结果上的网址,打开浏览器即可观察模型参数分部情况:
附一张参数分布图,具体怎么研究比较这个直方图,接下去再研究吧~
小白一枚,进步很慢,希望各路大神道友指教和批评~~~~
利用tensorboard可视化checkpoint模型文件参数分布的更多相关文章
- 【猫狗数据集】利用tensorboard可视化训练和测试过程
数据集下载地址: 链接:https://pan.baidu.com/s/1l1AnBgkAAEhh0vI5_loWKw提取码:2xq4 创建数据集:https://www.cnblogs.com/xi ...
- 利用Tensorboard可视化模型、数据和训练过程
在60分钟闪电战中,我们像你展示了如何加载数据,通过为我们定义的nn.Module的子类的model提供数据,在训练集上训练模型,在测试集上测试模型.为了了解发生了什么,我们在模型训练时打印了一些统计 ...
- 利用libsvm-mat建立分类模型model参数解密[zz from faruto]
本帖子主要就是讲解利用libsvm-mat工具箱建立分类(回归模型)后,得到的模型model里面参数的意义都是神马?以及如果通过model得到相应模型的表达式,这里主要以分类问题为例子. 测试数据使用 ...
- 模型文件(checkpoint)对模型参数的储存与恢复
1. 模型参数的保存: import tensorflow as tfw=tf.Variable(0.0,name='graph_w')ww=tf.Variable(tf.random_normal ...
- 学习TensorFlow,TensorBoard可视化网络结构和参数
在学习深度网络框架的过程中,我们发现一个问题,就是如何输出各层网络参数,用于更好地理解,调试和优化网络?针对这个问题,TensorFlow开发了一个特别有用的可视化工具包:TensorBoard,既可 ...
- tensorflow打印pb、ckpt模型的参数以及在tensorboard里显示图结构
打印pb模型参数及可视化结构import tensorflow as tf from tensorflow.python.framework import graph_util tf.reset_de ...
- 使用 TensorBoard 可视化模型、数据和训练
使用 TensorBoard 可视化模型.数据和训练 在 60 Minutes Blitz 中,我们展示了如何加载数据,并把数据送到我们继承 nn.Module 类的模型,在训练数据上训练模型,并在测 ...
- TensorFlow2.0(9):TensorBoard可视化
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- Tensorflow学习笔记3:TensorBoard可视化学习
TensorBoard简介 Tensorflow发布包中提供了TensorBoard,用于展示Tensorflow任务在计算过程中的Graph.定量指标图以及附加数据.大致的效果如下所示, Tenso ...
随机推荐
- 微信小程序 CSS border-radius元素 overflow:hidden失效问题 iPhone ios 苹果兼容问题 伪类元素
同事找我解决一个问题 说安卓圆角没问题 苹果上失效了 我一看 其实就是没做兼容上图给你们看看 有没有看出来 其实就是父级设置圆角属性失效 父元素使用border-radius和overflow:hid ...
- 在FPS游戏中,玩家对音画同步感知的量化与评估
前言 在游戏测试中,音画同步测试是个难点(所谓游戏音画同步:游戏中,音效与画面的同步程度),现在一般采用人工主观判断的方式测试,但这会带来2个问题: 无法准确量化,针对同一场景的多次测试结果可能会相反 ...
- 简单说一下SS的原理
假设有主机A和B还有C.主机A是客户机,就是你的电脑,主机B是服务器,也就是位于日本的那台电脑.主机C是你需要访问的网站.在没有SS的情况下,数据传输的流程是:A-->C.在有SS的情况下,概括 ...
- Fedora dnf配置
1.在配置文件/etc/dnf/dnf.conf中加入: fastestmirror=true keepcache=true 这样下载安装软件就快多了. 2.dnf常用命令 检查并升级可用软件包: $ ...
- spark 源码分析之十七 -- Spark磁盘存储剖析
上篇文章 spark 源码分析之十六 -- Spark内存存储剖析 主要剖析了Spark 的内存存储.本篇文章主要剖析磁盘存储. 总述 磁盘存储相对比较简单,相关的类关系图如下: 我们先从依赖类 Di ...
- 深入了解数据校验:Bean Validation 2.0(JSR380)
每篇一句 > 吾皇一日不退役,尔等都是臣子 对Spring感兴趣可扫码加入wx群:`Java高工.架构师3群`(文末有二维码) 前言 前几篇文章在讲Spring的数据绑定的时候,多次提到过数据校 ...
- pytest自定义动态添加描述信息
先上效果图: 修改pytest-html报告,分三部分. pytest执行目录新建conftest.py文件 import pytest from py._xmlgen import html fro ...
- java - 数组与String的length方法问题
java数组没有length()方法,java数组有length属性: String有length()方法.
- springboot整合mybatis时无法读取xml文件解决方法(必读)
转 http://baijiahao.baidu.com/s?id=1588136004120071836&wfr=spider&for=pc 在springboot整合myba ...
- CentOS7 修改PATH环境变量的方法
vim /etc/profile 添加: PATH=/root/.config/composer/vendor/bin:$PATH 保存,退出,运行: source /etc/profile 检查: ...