当前位置:   article > 正文

pytorch+tensorboard

pytorch+tensorboard

安装依赖

pip install teorboard
pip install torch_tb_profiler
  • 1
  • 2

了解teorboard

记录并可视化标量[组]、图片[组]。

如何使用

第一步:构建模型,记录中间值,写入summarywriter

每次写入一个标量add_scalar

在这里插入图片描述
比如:

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()  # 默认会记录到'./runs/'这一目录下,也可以自己定义
x = range(100)
for i in x:
    writer.add_scalar('y=2x', i * 2, i)
writer.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

期望输出:
在这里插入图片描述

每次写入多个标量add_scalars

在这里插入图片描述
比如:

from torch.utils.tensorboard import SummaryWriter
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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

期望输出:
在这里插入图片描述

写入某个变量的分布add_histogram

在这里插入图片描述
比如:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
writer = SummaryWriter()
for i in range(10):
    x = np.random.random(1000)
    writer.add_histogram('distribution centers', x + i, i)
writer.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

期望输出:
在这里插入图片描述

写入单个图片add_image

在这里插入图片描述
比如:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
img = np.zeros((3, 100, 100))
img[0] = np.arange(0, 10000).reshape(100, 100) / 10000
img[1] = 1 - np.arange(0, 10000).reshape(100, 100) / 10000

img_HWC = np.zeros((100, 100, 3))
img_HWC[:, :, 0] = np.arange(0, 10000).reshape(100, 100) / 10000
img_HWC[:, :, 1] = 1 - np.arange(0, 10000).reshape(100, 100) / 10000

writer = SummaryWriter()
writer.add_image('my_image', img, 0)

# If you have non-default dimension setting, set the dataformats argument.
writer.add_image('my_image_HWC', img_HWC, 0, dataformats='HWC')
writer.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

期望输出:
在这里插入图片描述

写入多个图片add_images

在这里插入图片描述
比如:

from torch.utils.tensorboard import SummaryWriter
import numpy as np

img_batch = np.zeros((16, 3, 100, 100))
for i in range(16):
    img_batch[i, 0] = np.arange(0, 10000).reshape(100, 100) / 10000 / 16 * i
    img_batch[i, 1] = (1 - np.arange(0, 10000).reshape(100, 100) / 10000) / 16 * i

writer = SummaryWriter()
writer.add_images('my_image_batch', img_batch, 0)
writer.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

期望输出:
在这里插入图片描述

写入单个plt figure,add_figure

在这里插入图片描述

写入视频add_video

在这里插入图片描述

写入音频add_audio

在这里插入图片描述

写入文本add_text

在这里插入图片描述

写入模型add_graph

在这里插入图片描述

写入embedding projector

在这里插入图片描述
比如:

import keyword
import torch
meta = []
while len(meta)<100:
    meta = meta+keyword.kwlist # get some strings
meta = meta[:100]

for i, v in enumerate(meta):
    meta[i] = v+str(i)

label_img = torch.rand(100, 3, 10, 32)
for i in range(100):
    label_img[i]*=i/100.0

writer.add_embedding(torch.randn(100, 5), metadata=meta, label_img=label_img)
writer.add_embedding(torch.randn(100, 5), label_img=label_img)
writer.add_embedding(torch.randn(100, 5), metadata=meta)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

add_pr_curve

在这里插入图片描述
比如:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
labels = np.random.randint(2, size=100)  # binary label
predictions = np.random.rand(100)
writer = SummaryWriter()
writer.add_pr_curve('pr_curve', labels, predictions, 0)
writer.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

add_mesh

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6338d34337424
比如:

from torch.utils.tensorboard import SummaryWriter
vertices_tensor = torch.as_tensor([
    [1, 1, 1],
    [-1, -1, 1],
    [1, -1, -1],
    [-1, 1, -1],
], dtype=torch.float).unsqueeze(0)
colors_tensor = torch.as_tensor([
    [255, 0, 0],
    [0, 255, 0],
    [0, 0, 255],
    [255, 0, 255],
], dtype=torch.int).unsqueeze(0)
faces_tensor = torch.as_tensor([
    [0, 2, 3],
    [0, 3, 1],
    [0, 1, 2],
    [1, 3, 2],
], dtype=torch.int).unsqueeze(0)

writer = SummaryWriter()
writer.add_mesh('my_mesh', vertices=vertices_tensor, colors=colors_tensor, faces=faces_tensor)

writer.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

写入超参数add_hparams

在这里插入图片描述
比如:

from torch.utils.tensorboard import SummaryWriter
with SummaryWriter() as w:
    for i in range(5):
        w.add_hparams({'lr': 0.1*i, 'bsize': i},
                      {'hparam/accuracy': 10*i, 'hparam/loss': 10*i})
  • 1
  • 2
  • 3
  • 4
  • 5

期望输出:
在这里插入图片描述

第二步:命令行启用tensorboard

tensorboard --logdir=<SummaryWriter保存的路径>
  • 1

在这里插入图片描述
在上图所示网址可以查看tensorboard。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/344570
推荐阅读
相关标签
  

闽ICP备14008679号