Samar-blog

导航

P8. TensorBoard的使用(二)

8.1add_image( )使用

由于PIL类型不符合add_image()函数要求,

image模块要求的数据类型包括:torch tensor,numpy array,string等;

1.使用opencv

(1)安装opencv库

numpy最常用的读取方法是opencv

image
image

(2)opencv读取

①读取一张图片

读取图像时,使用OpenCV中的imread()函数。
imread(filename,flags)
它有两个参数:
第一个参数是图像名称,它需要文件的完全限定路径名。
第二个参数是一个可选标志,允许指定图像应如何表示,常见的有:

点击查看代码
CV2.IMREAD_UNCHANGED or -1
Cv2.IMREAD_GRAYSCALE or 0
cv2.IMREAD_COLOR or 1
flags的默认值是1,它将在图像中读取为彩色图像。
②显示一个图像

在OpenCV中,使用imshow()函数显示图像:
imshow(window_name,image)
他的函数也有两个参数:
第一个参数是将在窗口中显示的窗口名称,第二个参数是要显示的图像
一次显示多个图像,给要显示的每个图像指定一个新窗口名称

(3)示例

image

2.使用numpy

(1)使用numpy.array(),将PIL照片转换成numpy类型

image

(2)add_image()内参数

image

其中,H,W,C分别表示:H高度、W宽度、C通道

image

(3)通过add_image()将照片在tensorboard上打开

①报错了:

image

②为什么会出现这个问题?

这是因为:

TensorBoard的某些版本还没有完全适配Pillow 10.0.0+的API变化
ANTIALIAS 在Pillow 10.0.0中被移除,改用 LANCZOS, BILINEAR 等具体的重采样方法
③【来源deepseek】推荐操作顺序:
1)首先解决Pillow问题:
点击查看代码
pip install Pillow==9.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
2)然后安装TensorBoard:
点击查看代码
pip install tensorboard -i https://pypi.tuna.tsinghua.edu.cn/simple/
3)最后安装PyTorch:
点击查看代码
pip install torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple/ --timeout 1000
安装过程如下图:

图片1

图片2

④重新输入代码并运行
点击查看代码
#从torch里的utils工具箱中导入SummaryWriter类
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image

#对这个类创建它的实例
writer = SummaryWriter("logs")
#img_path = "Data_antbee/hymenoptera_data/train/ants_img/0013035.jpg"
#img_path = "Data_antbee/hymenoptera_data/train/bees_img/2364597044_3c3e3fc391.jpg"
img_path = "Data_antbee/hymenoptera_data/train/ants_img/6240329_72c01e663e.jpg"
img_PIL = Image.open(img_path)
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)

#writer.add_image("test", img_array, 1, dataformats='HWC')
#writer.add_image("test", img_array, 2, dataformats='HWC')
writer.add_image("test1", img_array, 1, dataformats='HWC')

#y = 2x
for i in range(100):
    writer.add_scalar("y=2x", 2*i, i)    #writer.add_scalar()  #scalar是标量
writer.close()
运行结果如下:

图片3

(4)在终端输入:tensorboard --logdir=logs --port=6007,并点击网址

image

(5)修改参数,并在tensorboard打开

①修改1

image

打开后的结果如下:

imageimage

②修改2

image

打开后的结果如下:

image

posted on 2025-11-04 09:57  风居住的街道DYL  阅读(3)  评论(0)    收藏  举报