当前位置:网站首页>tensorboard可视化
tensorboard可视化
2022-07-28 05:22:00 【Alan and fish】
因为在做实验的时候,需要记录数据,为了方便记录数据,可以使用tensorboard在运行的过程中就将实验结果记录其中,以对比那次实验的结果是最好的.
tensorboard常用的功能有,保存模型网络结构,保存训练集的损失,下面就介绍tensorboard的几个常用的功能.
1.tensorboard面板介绍

这个面板图源自:https://blog.csdn.net/Zhangsan0219/article/details/121763073
我是参考这个作者重新写了一遍笔记,便于自己记录.
2.画折现统计图
- 将多张图分开画
# -*- coding: utf-8 -*-
# @Author :WenShuai Xiao
# @Time:2022-05-30
# @File:Tensorboard_line.py
import os.path
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from tqdm import tqdm
if __name__=='__main__':
print('测试开始')
'''
画线
启动命令 tensorboard --logdir=logs
指定端口 tensorboard --logdir=logs --port=6007
'''
# 创建编辑器,保存日志
# log_dir保存路径
logs_path=os.path.join("./logs","trian")
if not os.path.exists(logs_path):
print('路径不存在')
os.makedirs(logs_path)
writer=SummaryWriter(log_dir=logs_path)
# 模拟添加每个epoch的loss和Acc
for n_iter in tqdm(range(100)):
# writer.add_scalar函数用于添加标量值
# add_scalar(tags, scalar_value, global_stop)
# tags: string, 记录对象的标签
# scalar_valud: float, 记录的数值
# global_step: int, x轴的数值
writer.add_scalar('Loss/Train',np.random.random(),n_iter)
writer.add_scalar('Loss/Test',np.random.random(),n_iter)
writer.add_scalar('Accuracy/train',np.random.random(),n_iter)
writer.add_scalar('Accuracy/test',np.random.random(),n_iter)
writer.close()
print('测试结束')
运行完之后就会在logs文件下生成记录的文件,然后找到这个路径,在这个路径下面输入cmd->回车,就可以直接进入这个路径下的dos命令
然后输入以下代码,把最后一个链接复制到浏览器就可以看到了结果
# 激活环境
conda activate pytorch
# 使用tensorboard打开路径
tensorboard --dirlogs=logs

- 将多张图画在一起
# =====================================================
'''
writer.add_scalars(main_tag, tag_scalar_dict, global_step=None)
该函数用于将多个scalar添加到同一个图中
main_tag: string, 父标签
tag_scalar_dict: dict, 将多个scalar组合在一起的字典对象,
该字典的key表示tag, value为记录的scalar值
global_step: int, 图片的x轴
'''
# ====================================================
for i in tqdm(range(100),desc='多张图画在一起'):
writer2.add_scalars(
'run_14h',{
'xsinx':i*np.sin(i/5),
'xcosx':i*np.cos(i/5),
'tanx':np.tan(i/5)
},i
)
writer2.close()
显示结果
后面的直方图,等我需要的时候在继续补充笔记
3.画模型图
# -*- coding: utf-8 -*-
# @Author :WenShuai Xiao
# @Time:2022-05-30
# @File:Tensorboard_model.py
from torch import ones
from torch.utils.tensorboard import SummaryWriter
from torch.nn import Linear,ReLU,Sequential
import os
if __name__=='__main__':
logs_path = os.path.join("./logs", "model_graph")
if not os.path.exists(logs_path):
print('路径不存在')
os.makedirs(logs_path)
writer=SummaryWriter(logs_path)
# 写一个模型
model=Sequential(
Linear(1,10),
ReLU(),
Linear(10,1)
)
data=ones(10,1)
'''
add_graph
画出模型的结构
模型双击查看
'''
writer.add_graph(model=model,input_to_model=data)
writer.close()
查看模型图:
4.多模型对比
有的时候需要调参对比实验的结果,可以使用这个方法将每次的实验结果保存到tensorboard中,如果学会了bash语法,直接可以使用bash语法自动传参数,这样就不用自己操作了,只需要耐心的等待实验结果就好了.
# -*- coding: utf-8 -*-
# @Author :WenShuai Xiao
# @Time:2022-05-30
# @File:Tensorboard_mutil_model.py
import os
import datetime
from torch.utils.tensorboard import SummaryWriter
if __name__=='__main__':
# 动态生成时间
log_dir=os.path.join('logs',datetime.datetime.now().strftime("%Y%m%d_%H%M%S"))
if not os.path.exists(log_dir):
os.makedirs(log_dir)
writer=SummaryWriter(log_dir=log_dir)
# y=2x
for i in range(100):
writer.add_scalar(tag='y=2x',scalar_value=1.5*i,global_step=i)
writer.close()
查看实验结果:

边栏推荐
猜你喜欢

使用pycharm创建虚拟环境

How digital library realizes Web3.0 social networking

Use Python to encapsulate a tool class that sends mail regularly

It's not easy to travel. You can use digital collections to brush the sense of existence in scenic spots

DataX installation and use

小程序开发解决零售业的焦虑

At the moment of the epidemic, online and offline travelers are trapped. Can the digital collection be released?

【5】 Redis master-slave synchronization and redis sentinel (sentinel)

小程序商城制作一个需要多少钱?一般包括哪些费用?

Distributed lock redis implementation
随机推荐
Sort method for sorting
Kotlin语言现在怎么不火了?你怎么看?
The combination of cultural tourism and digital collections has a significant effect, but how to support users' continuous purchasing power
区分实时数据、离线数据、流式数据以及批量数据的区别
Notice of attack: [bean Bingbing] send, sell, cash, draw, prize, etc
Idempotent component
Installation and use of sqoop
【二】redis基础命令与使用场景
如何选择小程序开发企业
分布式锁-数据库实现
Hit your face ins? Mars digital collection platform explores digital collection light social networking
Chapter 8 aggregate function
小程序制作小程序开发适合哪些企业?
There is a problem with MySQL paging
第七章 单行函数
字节Android岗4轮面试,收到 50k*18 Offer,裁员风口下成功破局
CertPathValidatorException:validity check failed
JS simple publish and subscribe class
2: Why read write separation
小程序开发系统有哪些优点?为什么要选择它?