从函数介绍可知:这个类主要是将事件文件写入 log_dir文件夹,可以被TensorBoard解析。
要用到其成员函数 add_scalar()
pip install tensorboard
from torch.utils.tensorboard import SummaryWriter
def add_scalar(
self,
tag,
scalar_value,
global_step=None,
walltime=None,
new_style=False,
double_precision=False,
)
tensorboard --logdir=E:\CodeCodeCodeCode\AI\Pytorch-study\logs
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np
writer = SummaryWriter("../logs")
writer.add_image()
for i in range(100):
writer.add_scalar("y=2x", 2*i, i)
writer.close()
(pytorch) E:\CodeCodeCodeCode\AI\Pytorch-study>tensorboard --logdir=E:\CodeCodeCodeCode\AI\Pytorch-study\logs
TensorFlow installation not found - running with reduced feature set.
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.7.0 at http://localhost:6006/ (Press CTRL+C to quit)
可通过参数 --port=xx 指定端口,以防止端口冲突(多用户使用同一服务器进行训练时)
tensorboard --logdir=logs --port=6007
注:
这个命令会打开 logdir文件夹下的所有事件文件。
图表以 tag 作为区分,可向一个 tag多次写入数据,会自动进行拟合。
首先下载一下测试数据集,链接:
https://pan.baidu.com/s/1jZoTmoFzaTLWh4lKBHVbEA 密码: 5suq
下载好后解压重命名为 data
再使用成员函数 add_image()
可以看到使用此函数所需要提供的参数,这里注意,img_tensor是图像数据,对其数据类型有所要求,必须是torch.Tensor、numpy.array或者字符串。
这里可以利用 PIL.image.open() 函数读取图片,然后用 numpy.array()对PIL图片进行数据类型转换。
全部代码如下
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np
writer = SummaryWriter("../logs")
# writer.add_image()
# for i in range(100):
# writer.add_scalar("y=2x", 2*i, i)
# writer.close()
image_path = "../data/train/ants_image/6743948_2b8c096dda.jpg"
img = Image.open(image_path)
# (512, 768, 3) 此时是高度-宽度-通道,所以下边加上HWC
img_array = np.array(img)
# writer.add_image("test", img_array, 1, dataformats='HWC')
writer.add_image("test", img_array, 3, dataformats='HWC')
for i in range(100):
writer.add_scalar("y=3x", 5*i, 2*i)
writer.close()
可以修改step实现显示每一步的输入图片数据,但是前边的图片地址应该不断更新