Tensorboard (1)

Tensorboard (1)

机器学习通常涉及在训练期间可视化和度量模型的性能。有许多工具可用于此任务。

一、介绍TensorBoard

参考文章:

https://cloud.tencent.com/developer/article/1955304
https://zhuanlan.zhihu.com/p/103630393

Tensorboard:

TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中。TensorBoard 的主要功能包括:

  • 可视化模型的网络架构
  • 跟踪模型指标,如损失和准确性等
  • 检查机器学习工作流程中权重、偏差和其他组件的直方图
  • 显示非表格数据,包括图像、文本和音频
  • 将高维嵌入投影到低维空间
1.本地启动Tensorboard
tensorboard --logdir=<directory_name>   --port=<port_num>
# 打开终端或命令提示符并运行  将 directory_name 标记替换为保存数据的目录。默认是“logs”
# port_num 是访问服务器的端口号,可以指定特定的端口号,避免与其他使用者产生冲突
# 最终的地址是 <程序运行目录>/<directory_name>

Tensorboard使用逻辑:

1.将代码运行中某些你关心的数据保存在一个文件夹中(这一步由SummaryWriter实例对象完成)

2.再读取这个文件夹中的数据,用浏览器显示出来(通过在命令行运行tensorboard完成)

2.代码实例1
# 导入 Tensorboard
from torch.utils.tensorboard import SummaryWriter

if __name__ == '__main__':
	# 实例化对象
    write = SummaryWriter("logs")
        
    # y=2x
    for i in range(1,100):
        write.add_scalar("y=2x",2*i,i)

    write.close()

运行之后,终端输入:

tensorboard --logdir=<logs>   --port=6007

得到结果:

image-20221212163614263

可以通过 add_scalar() 函数将 数值变换可视化出来

def add_scalar(self, tag, scalar_value, global_step=None, walltime=None)
    
    Args:
         tag (string): Data identifier (表头--名字)
         scalar_value (float or string/blobname): Value to save  (二维坐标系即 y 轴)
         global_step (int): Global step value to record          (二维坐标系即 x 轴)
         walltime (float): Optional override default walltime (time.time()) with seconds after epoch of event
3.代码实例2
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np



if __name__ == '__main__':
    write = SummaryWriter("logs")

    # 图片路径
    image_path = "/home/zxz/DEEPLEARNING/DEMO/TensorBoard_1/hymenoptera_data/train/ants/0013035.jpg"
    img = Image.open(image_path)
    print(type(img))

    # 将图片转化为  numpy.array 类型
    img_array = np.array(img)
    print(type(img_array))
    print(img_array.shape)

    write.add_image("test",img_array,1,dataformats='HWC')

    write.close()

结果:

image-20221212171944506

可以通过add_image() 可视化模型训练过程中的图像

df add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')
    
   Args:
        tag (string): Data identifier  (表头 )
        img_tensor (torch.Tensor, numpy.array, or string/blobname): Image data  # (图像数据--括号后面是图像数据要求的类型)
        global_step (int): Global step value to record                          # (训练步数: x轴)
        walltime (float): Optional override default walltime (time.time()) seconds after epoch of event
            
   Shape:
        img_tensor: Default is :math:`(3, H, W)`. You can use ``torchvision.utils.make_grid()`` to
        convert a batch of tensor into 3xHxW format or call ``add_images`` and let us do the job.
        Tensor with :math:`(1, H, W)`, :math:`(H, W)`, :math:`(H, W, 3)` is also suitable as long as
        corresponding ``dataformats`` argument is passed, e.g. ``CHW``, ``HWC``, ``HW``. 
       #  输入的 img_tensor 默认尺寸 (形状shape)(3, H, W)3 通道 H为高  W为宽
       #  若输入的 img_tensor 尺寸 (形状shape)(H, W,3) ,H为高  W为宽  3 通道  需要添加参数  dataformats= 'HWC'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值