可视化训练过程tensorboardx使用

tensorboardx使用

https://github.com/lanpa/tensorboardX

安装

pip install tensorflow
pip install tensorboardx
ttensorboard 是 TensorFlow 的一个附加工具,可以记录训练过程的数字、图像等内容,以方便研究人员观察神经网络训练过程。
ttensorboardX 这个工具使得 TensorFlow 外的其他神经网络框架也可以使用到 Tensorboard 的便捷功能。

 



from tensorboardX import SummaryWriter
#
# # Creates writer1 object.
# # The log will be saved in 'runs/exp'
# writer1 = SummaryWriter('runs/exp')
#
# # Creates writer2 object with auto generated file name
# # The log directory will be something like 'runs/Aug20-17-20-33'
# writer2 = SummaryWriter()
#
# # Creates writer3 object with auto generated file name, 
the comment will be appended to the filename.
# # The log directory will be something like 'runs/Aug20-17-20-33-resnet'
# writer3 = SummaryWriter(comment='resnet')

'''
以上展示了三种初始化 SummaryWriter 的方法:

1:提供一个路径,将使用该路径来保存日志
2:无参数,默认将使用 runs/日期时间 路径来保存日志
3:提供一个 comment 参数,将使用 runs/日期时间-comment 路径来保存日志
'''

'''
python tensorboard.py

tensorboard --logdir runs

--logdir=runs/ 
就可以在 tensorboard 可视化界面中方便地横向比较 runs/ 下不
同次实验所得数据的差异。
'''
writer = SummaryWriter('runs/scalar_example')
for i in range(10):
    writer.add_scalar('quadratic', i ** 2, global_step=i)
    # 二次函数
    writer.add_scalar('exponential', 2 ** i, global_step=i)
    # 指数函数

'''
参数
    tag (string): 数据名称,不同名称的数据使用不同曲线展示
    scalar_value (float): 数字常量值
    global_step (int, optional): 训练的 step
    walltime (float, optional): 记录发生的时间,默认为 time.time()
    
    这里的 scalar_value 一定是 float 类型,
    如果是 PyTorch scalar tensor,则需要调用 .item() 方法获取其数值。
    我们一般会使用 add_scalar 方法来记录训练
    过程的 loss、accuracy、learning rate 等数值的变化,直观地监控训练过程。

'''

# from tensorboardX import SummaryWriter
# #
# # # Creates writer1 object.
# # # The log will be saved in 'runs/exp'
# # writer1 = SummaryWriter('runs/exp')
# #
# # # Creates writer2 object with auto generated file name
# # # The log directory will be something like 'runs/Aug20-17-20-33'
# # writer2 = SummaryWriter()
# #
# # # Creates writer3 object with auto generated file name, the comment will be appended to the filename.
# # # The log directory will be something like 'runs/Aug20-17-20-33-resnet'
# # writer3 = SummaryWriter(comment='resnet')
#
# '''
# 以上展示了三种初始化 SummaryWriter 的方法:
#
# 1:提供一个路径,将使用该路径来保存日志
# 2:无参数,默认将使用 runs/日期时间 路径来保存日志
# 3:提供一个 comment 参数,将使用 runs/日期时间-comment 路径来保存日志
# '''
#
# '''
# python tensorboard.py
#
# tensorboard --logdir runs
#
# --logdir=runs/
# 就可以在 tensorboard 可视化界面中方便地横向比较 runs/ 下不
# 同次实验所得数据的差异。
# '''
# writer = SummaryWriter('runs/scalar_example')
# for i in range(10):
#     writer.add_scalar('quadratic', i ** 2, global_step=i)
#     # 二次函数
#     writer.add_scalar('exponential', 2 ** i, global_step=i)
#     # 指数函数
#
# '''
# 参数
#     tag (string): 数据名称,不同名称的数据使用不同曲线展示
#     scalar_value (float): 数字常量值
#     global_step (int, optional): 训练的 step
#     walltime (float, optional): 记录发生的时间,默认为 time.time()
#
#     这里的 scalar_value 一定是 float 类型,
#     如果是 PyTorch scalar tensor,则需要调用 .item() 方法获取其数值。
#     我们一般会使用 add_scalar 方法来记录训练
#     过程的 loss、accuracy、learning rate 等数值的变化,直观地监控训练过程。
#
# '''

# from torch.utils.tensorboard import SummaryWriter
# import numpy as np
#
# '''
#
# loss可视化'''
# writer = SummaryWriter()
#
# for n_iter in range(100):
#     writer.add_scalar('Loss/train', np.random.random(), n_iter)
#     # 第一个参数表示纵坐标,第二个参数表示图表中的折线,即loss大小,第三个参数表示横坐标的值
#     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)


"""
#在同一张折线图下显示多组变量
"""
from torch.utils.tensorboard import SummaryWriter
import numpy as np
writer = SummaryWriter()
r = 5
for i in range(100):
    writer.add_scalars('run_14h', {'xsinx': i * np.sin(i / r),
                                   'xcosx': i * np.cos(i / r),
                                   'tanx': np.tan(i / r)}, i)  # 在同一张折线图下显示多组变量
writer.close()
# This call adds three values to the same scalar plot with the tag
# 'run_14h' in TensorBoard's scalar section.


'''
模型结构可视化'''
# from torch.utils.tensorboard import SummaryWriter
#
# from torchvision.models import resnet50
# import torch
#
# model = resnet50(pretrained=False)
# inputs = torch.ones(size=(1, 3, 224, 224))
#
# writer = SummaryWriter()
# writer.add_graph(model, input_to_model=inputs,
#                  verbose=False)
# # 参数解析:model即为你所需要可视化的模型,
# # input_to_model为输入模型中的变量,verbose:是否在控制台打印模型结构
#
'''# # tensorboard --logdir=runs'''

'''
https://tensorboardx.readthedocs.io/en/stable/index.html

https://blog.csdn.net/bigbennyguo/article/details/87956434'''

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值