Tensorboard是tensorflow内置的一个可视化工具,它通过将tensorflow程序输出的日志文件的信息可视化使得tensorflow程序的理解、调试和优化更加简单高效。Tensorboard的可视化依赖于tensorflow程序运行输出的日志文件,因而tensorboard和tensorflow程序在不同的进程中运行。大家在学习中需要多去看官方的文档,地址:https://pytorch.org/docs/stable/index.html
官方的介绍的使用方法和参数
.torch.utils.tensorboard.writer.SummaryWriter( log_dir=无,注释=’’ ,purge_step=无 ,max_queue=10 ,flush_secs=120 ,filename_suffix =’’ )
关键是log_dir将条目直接写入log_dir中的事件文件,以供 TensorBoard 使用。简而言之就是把你写的程序存储在这个里面,供后面的 TensorBoard 的使用,在pycharm中找到终端(就是控制台旁边那个,如果你的版本够高可以在settins中找到plugins搜寻chinese的官方插件)在终端输入tensorboard --logdir=“上面自己在SummaryWriter中设置的文件” 一般默认的6006端口,可以在后面输入port 跟上端口 例如
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logss")
然后在终端输入
tensorboard --logdir=logss
要在其他端口
tensorboard --logdir=logss --port =6007
老样子还是看官方文档的解释
add_scalar(标记, scalar_value, global_step=无,挂页时间=无, new_style=假, double_precision=假)[来源]
将标量数据添加到摘要。
参数
标记(字符串) – 数据标识符(图片标题的名称)
scalar_value (float or string/blobname) – 要保存的值(图片y轴)
global_step (int) – 要记录的全局步长值(图片x轴)
walltime (float) – 可选覆盖默认 walltime (time.time()),并在事件纪元之后的秒数
new_style (布尔) – 是使用新样式(张量字段)还是旧样式(simple_value字段)。新样式可能会导致更快的数据加载。
例子:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("p99")
x = range(100)
for i in x:
writer.add_scalar('y=2x', i * 2, i)
writer.close()
预期成果:
官方解释
add_image(标记, img_tensor, global_step=无,挂页时间=无,数据格式=‘CHW’ )[来源]
将图像数据添加到摘要。
请注意,这需要包。pillow
参数
标记(字符串) – 数据标识符
img_tensor (手电筒。Tensor, numpy.array, or string/blobname) – 图像数据
global_step (int) – 要记录的全局步长值
walltime (float) – 可选覆盖事件纪元后的默认 walltime (time.time()) 秒
因为img_tensor需要Tensor, numpy.array, or string/blobname类型 我们就直接使用numpy库的array来实现例子,要注意的是如果图片类型是(H, W, 3)需要将设置dataformats=‘HWC’
例子:
```python
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer = SummaryWriter("logs")
image_path = "hymenoptera_data/train/ants_image/5650366_e22b7e1065.jpg"#这是我自己存放图片的相对路径
img_PIl = Image.open(image_path)
img_array = np.array(img_PIl)#转化为numpy.array型
writer.add_image("train", img_array, 2, dataformats='HWC')#这里的2为步数
在终端输入tensorborad --logdir=logs --port=6008 因为我自己在6006已经有了同名数据(如果你们想在6006,可以新建一个SummaryWriter或者将logs中的文件删除)
预期成果: