该文章对TensorBoard解释的很全面,可以阅读了解一下TensorBoard的最全使用教程:看这篇就够了 - 腾讯云开发者社区-腾讯云 (tencent.com)
Pycharm小tips:
按ctrl点击某一个函数,即可快速查看该函数的定义
先在程序中写入代码
from torch.utils.tensorboard import SummaryWriter
writer=SummaryWriter("logs")#初始化一个文件夹
for i in range(100):
writer.add_scalar('y=x',i*3,i)#进行画图
#def add_scalar(self, tag, scalar_value, global_step=None, walltime=None)tag为标签名称,scalar_value为y值,global_step为x值
writer.close()
后在该环境的终端
或者是pycharm的终端中
写入启动``tensorboard的代码,点击该网址即可进入
tensorboard`
通过
tensorboard --logdir=logs --port=6007
中的--port=6007
为指定窗口的指令。
如果只更改scalar_value
或global_step
,而不改变tag
的话,会在同一个图上画出两条曲线。
writer=SummaryWriter("logs")#初始化一个文件夹
for i in range(100):
writer.add_scalar('y=x',i,i)#进行画图
#def add_scalar(self, tag, scalar_value, global_step=None, walltime=None),tag为标签名称,scalar_value为y值,global_step为x值
writer.close()
上图中一些歪曲的曲线跟Smoothing
有关(平滑近似)
如果更改了窗口号,如6007
,则会创建一个新的网页来进行绘图。
我们会发现图中的内容不随窗口号进行改变,原因在于tensorboard的内容由logs
文件中的内容决定的,可以通过删除文件中的内容或writer=SummaryWriter("other file")
来改变画图的内容
def add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')
img_tensor (torch.Tensor, numpy.array, or string/blobname) img_tensor必须为tensor或者array格式
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer=SummaryWriter("logs")#初始化一个文件夹
image_path="hymenoptera_data/train/ants/5650366_e22b7e1065.jpg"#图片的相对路径,如果图片不在工程文件夹内,则应使用绝对路径
img_PIL=Image.open(image_path)#打开图片
img_array=np.array(img_PIL)#将图片转化为array格式
print(img_array.shape)
#(375, 500, 3),即(HWC)格式,H为高、W为宽,C为通道数
writer.add_image("train_ants",img_array,1)
writer.close()
我们会发现文件报错了,通过查阅.add_image
我们可以看到
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``.
默认读取CHW
格式,如果要读取HWC
格式,则需要使用dataformats
进行转化
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer=SummaryWriter("logs")#初始化一个文件夹
image_path="hymenoptera_data/train/ants/5650366_e22b7e1065.jpg"#图片的相对路径,如果图片不在工程文件夹内,则应使用绝对路径
img_PIL=Image.open(image_path)#打开图片
img_array=np.array(img_PIL)#将图片转化为array格式
print(img_array.shape)
#(375, 500, 3),即(HWC)格式,H为高、W为宽,C为通道数
writer.add_image("train_ants",img_array,1)
writer.close()
点击IMAGES
栏,就可以看到我们读取的图片了
_ants",img_array,1)
writer.close()
点击`IMAGES`栏,就可以看到我们读取的图片了