1 展示学习进度和损失
TensorBoard能够显示每一次迭代的学习进度和loss值。
1.1 安装tensorboard
Anaconda Prompt终端先激活pytorch环境,再安装tensorboard库。
conda activate pytorch
pip install tensorboard -i https://pypi.mirrors.ustc.edu.cn/simple/
1.2 add_scalar():绘制曲线
add_scalar()函数中:
(1)tag:为图表标题
(2)scalar_value:为y轴的值
(3)global_step:为x轴的步长
编写python脚本:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")
# writer.add_image()
for x in range(10):
y = x
writer.add_scalar("y=x", y, x)
for x in range(10):
y = x*x
writer.add_scalar("y=x^2", y, x)
for x in range(10):
y = x*x*x
writer.add_scalar("y=x^3", y, x)
writer.close()
运行完成后,在PyCharm的Terminal(终端)中进入logs文件的上级文件夹:
cd learning_project
tensorboard --logdir=logs
然后点击跳出来的网址http://localhost:6006/
,就可以进入网页查看add_scalar()函数绘制的图像。
1.3 add_image():绘制图像
add_image()函数中:
(1)tag:为数据ID。
(2)img_tensor:为图像数据(支持的图像数据类型有torch.Tensor、numpy.ndarray 或者 string/blobname)
(3)global_step:为全局步长
(4)dataformats:为数据格式,"CHW"表示通道、高度、宽度,“HWC"表示高度、宽度、通道……使用opencv读取的图像数据使用"HWC”。
python脚本编写:
from torch.utils.tensorboard import SummaryWriter
import cv2
writer = SummaryWriter("logs")
image_path = "G:\\Anaconda\\pycharm_pytorch\\learning_project\\dataset_ants_bees\\train\\ants_image\\0013035.jpg"
image_array = cv2.imread(image_path)
print(image_array.shape)
writer.add_image("0013035.jpg", image_array, 1, dataformats='HWC')
writer.close()
查看浏览器网址http://localhost:6006/
。
但我们发现图像颜色有偏差,经过查询,opencv读取默认是BGR,需要使用cv2.cvtColor()
函数将BGR转换为RGB,在cv2.imread()
函数后添加以下函数就可以了。
image_array = cv2.cvtColor(image_array, cv2.COLOR_BGR2RGB)
新代码如下:
from torch.utils.tensorboard import SummaryWriter
import cv2
writer = SummaryWriter("logs")
image_path = "G:\\Anaconda\\pycharm_pytorch\\learning_project\\dataset_ants_bees\\train\\ants_image\\0013035.jpg"
image_array = cv2.imread(image_path)
image_array = cv2.cvtColor(image_array, cv2.COLOR_BGR2RGB)
print(image_array.shape)
writer.add_image("0013035-RGB.jpg", image_array, 1, dataformats='HWC')
writer.close()
刷新浏览器网页,即可观察到正常颜色的图像。