极乐宝盒网站建设,网站集约化建设会议请示,知名的深圳小程序开发公司,联想北京有限公司目录1 什么是Tensorboard#xff1f;2 Tensorboard安装3 Tensorboard可视化流程4 Tensorboard可视化实例4.1 常量可视化4.2 特征图可视化1 什么是Tensorboard#xff1f;
在深度学习领域#xff0c;网络内部如同黑箱#xff0c;其中包含大量的连接参数#xff0c;这给人工…
目录1 什么是Tensorboard2 Tensorboard安装3 Tensorboard可视化流程4 Tensorboard可视化实例4.1 常量可视化4.2 特征图可视化1 什么是Tensorboard
在深度学习领域网络内部如同黑箱其中包含大量的连接参数这给人工调试造成极大的困难。Tensorboard则是神经网络的可视化工具可以记录训练过程的数字、图像、运行图等内容方便研究人员对训练参数进行统计观察神经网络训练过程并指导参数优化。 2 Tensorboard安装
参考Anaconda安装与Python虚拟环境配置保姆级图文教程(附速查字典)创建一个实验用的虚拟环境。进入相应虚拟环境后输入以下指令即可安装。
pip install tensorboardX
pip install tensorboard安装完成后进入环境
python
from torch.utils.tensorboard import SummaryWriter若上述指令不报错即说明安装成功。
3 Tensorboard可视化流程
Tensorboard可视化过程主要为 为某次实验创建数据记录句柄 writer SummaryWriter(path)其中path是数据记录日志的存储路径。 通过writer实例的add_xxx方法向日志写入不同类型的观察数据主要类型有 Scalars在模型训练期间显示不同的有用信息 Graphs显示模型 Histogram使用直方图显示权重 Distribution显示权重分布 Projector显示主成分分析和T-SNE算法用于降维 启动Tensorboard可视化引擎 tensorboard --logdiryour_log_dir其中your_log_dir可以是单次实验的日志所在路径也可以是多次实验的父级目录Tensorboard会自动横向比较各次实验曲线。
4 Tensorboard可视化实例
4.1 常量可视化
这边给大家提供一个很方便的装饰器实现过程如下
from tensorboardX import SummaryWriter
import os, timeclass Visualizer:def __init__(self) - None:passstaticmethoddef visual_scale(title: str, path: str, cover: boolTrue):* breif: 可视化模型标量数据* param[in]: title - 图表名称* param[in]: path - 可视化数据存储路径* param[in]: cover - 是否覆盖已有可视化数据def scale(func):def wrap(*args, **kwargs):writer SummaryWriter(log_dirVisualizer.coverFile(path, cover))result func(*args, **kwargs)if len(result) 0:data_num len(result[next(iter(result))])for i in range(data_num):writer.add_scalars(title, {k: v[i] for k, v in result.items()}, i)return resultreturn wrapreturn scale使用起来只需要一句话注意要构造一个字典记录将要传递给tensorboard的数据
visual_scale(loss, ./log/fcnn)
def main(model, epochs: int, save: boolFalse) - None:# 生成优化器——随机梯度下降optimizer torch.optim.SGD(model.parameters(), 1e-3)lossParam {trainLoss: [], validLoss: []}for i in range(epochs):lossParam[trainLoss].append(train(i, epochs, model, optimizer))lossParam[validLoss].append(validate(i, epochs, model))if save:torch.save(model.state_dict(), rmodel/{}.pth.format(model.__str__))return lossParam4.2 特征图可视化
同样用装饰器的形式构造一个可视化卷积核的工具函数
def visual_kernal(title: str, path: str, append: boolFalse):def kernal(func):def warp(*args, **kwargs):if not append and os.path.exists(path):delFiles(path)writer SummaryWriter(log_dirpath)result func(*args, **kwargs)try:model kwargs[model]for name, param in model.named_parameters():if conv in name.lower() and weight in name:Cout, Cin, Kh, Kw param.size()kernelAll param.reshape(-1, 1, Kw, Kh) # 每个通道的卷积核kernelGrid vutils.make_grid(kernelAll, nrowCin)writer.add_image(f{title}--{name}, kernelGrid, global_step0)except:raise AttributeError(被修饰函数传入的模型不存在或参数格式有误!)return resultreturn warpreturn kernal更多精彩专栏
《ROS从入门到精通》《Pytorch深度学习实战》《机器学习强基计划》《运动规划实战精讲》… 源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系