前言:
现在你应该运行第一个程序实现 TensorBoard 可视化👍👌(这里默认你已经完成了上一篇文章的代码实现),那么我们接下来实现图像的可视化。对应 B站 小土堆 博主中 pytorch 教程的第九、十、十一节内容,先看视频,再读本文章会比较容易看懂。
❤️❤️我总结的 pytorch 项目:直达
https://pan.baidu.com/s/1ikPxPfD3H1ErXcMzdgERVQ?pwd=qrae 提取码: qrae
一、代码展示
# 第一个代码,对应第九节内容
import numpy as np
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("log")
image_path = "data/train/ants_image/5650366_e22b7e1065.jpg"
image_PIL = Image.open(image_path)
image_array = np.array(image_PIL)
print(type(image_array))
print(image_array.shape)
writer.add_image("train", image_array, 1, dataformats="HWC")
writer.close()
# 第二个代码,对应第十节内容
from PIL import Image
from torchvision import transforms
img_path = "data/train/ants_image/0013035.jpg"
img = Image.open(img_path)
print(img)
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
print(tensor_img)
# 第三个代码,对应第十一节内容
from PIL import Image
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("log")
img_path = "data/train/ants_image/0013035.jpg"
img = Image.open(img_path)
tensor_trans = transforms.ToTensor()
img_tensor = tensor_trans(img)
print(type(img_tensor))
print(img_tensor.shape)
writer.add_image("tenson_img", img_tensor)
writer.close()
二、解释代码
😏为了不重复写一样的内容。可能有一些代码没解释,请到上一文章中查看。
🐳writer.add_image( ) 是显示图像的代码, image 就是图像的意思。💕参数的意思: 图像名;导入的图像数据(一般为 numpy.array 或 torch.Tensor 格式);在相同图像名的情况下,分 0,1,2,。。。,k 用于排列图像(它有一个可以拖动的进度条,展示某一个序号的图像);如果你的图像的三通道是:高度、宽度、通道数,就需要 datafprmats=“HWC” ,一般是不用写这个参数的。
🐳导入图像,并转化为 numpy.array 格式(因为writer.add_image( ) 需要这个格式): 十分简单😊😊😊首先是导入图像,先确定该图像的路径,将其赋给一个变量,用 Image.open( ) 函数就能导入图像,最后用 np.array 函数来进行格式的转换。
🐳注意将 PIL image 格式转换为 np.array 和 torch.tensor 格式的代码有差别,转换 np.array 可以用 np.array(image_PIL) 直接转,但是 转换为 torch.tensor 时,要求先 为 transforms.ToTensor() 设置一个变量,再用 tensor_trans(img) 转换。
三、运行代码
🐳第一个代码运行结果:
🐳第二个代码运行结果:
🐳第三个代码运行结果:
四、结果展示
🐳第一个代码结果展示:
🐳第三个代码结果展示: