Pytorch中TensorBoard及torchsummary的使用详解


Posted in Python onMay 12, 2021

1.TensorBoard神经网络可视化工具

TensorBoard是一个强大的可视化工具,在pytorch中有两种调用方法:

1.from tensorboardX import SummaryWriter

这种方法是在官方还不支持tensorboard时网上有大神写的

2.from torch.utils.tensorboard import SummaryWriter

这种方法是后来更新官方加入的

1.1 调用方法

1.1.1 创建接口SummaryWriter

功能:创建接口

调用方法:

writer = SummaryWriter("runs")

参数:

log_dir:event file输出文件夹

comment:不指定log_dir时,文件夹后缀

filename_suffix:event file文件名后缀

1.1.2 记录标量add_scalars()

功能:记录标量add_scalars()

调用方法:

writer.add_scalars("name",{"dic":val},epoch)

参数:

tag:图像的标签名

scalar_step:要记录的标量

global_step:轮次

1.1.3 统计直方图add_histogram()

功能:统计直方图与多分位数折线图

调用方法:

writer.add_histogram("weight",self.fc.weight,epoch)

参数:

tag:图像的标签名

values:要画直方图的数据

global_step:轮次

bins:取值有 ‘tensorflow'、‘auto'、‘fd' 等

1.1.4 批次显示图像add_image()

功能:批次显示图像

调用方法:

writer.add_image(“Cifar10”, img_batch, epoch,'CHW')

参数:

tag:图像的标签名

img_tensor:图像数据,注意尺寸

global_step:轮次

dataformats:数据形式,CHW,HWC,HW

1.1.5 查看模型图add_graph()

功能:查看模型图

调用方法:

writer.add_graph(model=net,input_to_model=torch.randn(1,3, 224, 224).to(device))

参数:

model:模型,必须是nn.Module

input_to_model:输出给模型的数据

verbose:是否打印计算图结构信息

写完记得要写 writer.close()

2.查看网络层形状、参数torchsummary

功能:查看网络层形状、参数

调用方法:

from torchsummary import summary
summary(net, input_size=(3, 224, 224))

参数:

model:pytorch模型

input_size:模型输入size

batch_size:batch size

device:“cuda” or “cpu”

3.启动tensorboard

在文件路径中cmd打开终端,输入

tensorboard --logdir="./runs"

runs是我保存文件的文件名,打开以下链接

Pytorch中TensorBoard及torchsummary的使用详解

补充:pytorch调用tensorboard方法尝试

tensorboard提供了用于监视训练损失很好的接口,可以帮助我们更好的调整参数。下文介绍如何在pytorch中调用tensorboard。

首先

安装tensorboard、tensorflow以及tensorboardX

第二

在文件开头导入SummaryWriter

from tensorboardX import SummaryWriter

第三

同tensorflow的tensorboard一样,tensorboardX提供多种记录方式如scalar、image等。

writer = SummaryWriter('path')

如果不添加path,则默认以时间命名。

第四

添加监视变量

writer.add_scalar('Train/Acc', Acc, iter)

第五

打开tensorboard

tensorboard --logdir 'path'

第六

在浏览器打开6006端口

Pytorch中TensorBoard及torchsummary的使用详解

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
Python中变量交换的例子
Aug 25 Python
python错误处理详解
Sep 28 Python
Python 2与Python 3版本和编码的对比
Feb 14 Python
python爬取亚马逊书籍信息代码分享
Dec 09 Python
python素数筛选法浅析
Mar 19 Python
python实现简单五子棋游戏
Jun 18 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
python list转置和前后反转的例子
Aug 26 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
python 实现两个线程交替执行
May 02 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
python3排序的实例方法
Oct 20 Python
pytorch 一行代码查看网络参数总量的实现
May 12 #Python
pytorch查看网络参数显存占用量等操作
May 12 #Python
Python入门之使用pandas分析excel数据
May 12 #Python
将Python代码打包成.exe可执行文件的完整步骤
python3实现Dijkstra算法最短路径的实现
pytorch 中autograd.grad()函数的用法说明
python3实现无权最短路径的方法
You might like
PHP中实现进程间通讯
2006/10/09 PHP
第十二节--类的自动加载
2006/11/16 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
2015/05/09 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
使用graphics.py实现2048小游戏
2015/03/10 Python
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
营销与策划专业毕业生求职信
2013/11/01 职场文书
党支部书记先进事迹
2014/01/17 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS