from PIL import Image
from torchvision import transforms
#transforms实际上是一个python文件 里面有很多的类,因此可以理解为transforms是一个工具箱,可以将你的图片转换成你需要的结果
#通过 transforms.ToTensor 去解决两个问题:
#1. transforms如何使用
#2. 为什么需要Tensor数据类型
#绝对路径D:\PyCharm Community Edition 2021.3.1\tensorboard\data\train\ants_image\0013035.jpg
#相对路径data/train/ants_image/0013035.jpg
#使用相对相对路径,因为绝对路径有\会当作转义符
img_path = "data/train/ants_image/0013035.jpg"
img = Image.open(img_path)
tensor_trans = transforms.ToTensor()#创建Totensor的类
tensor_img = tensor_trans(img)
print(tensor_img)
运行结果如下:(Tensor类型的数据)
然后用tensor的参数变量执行add_image
from PIL import Image
import cv2
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
#transforms实际上是一个python文件 里面有很多的类,因此可以理解为transforms是一个工具箱,可以将你的图片转换成你需要的结果
#通过 transforms.ToTensor 去解决两个问题:
#1. transforms如何使用
#2. 为什么需要Tensor数据类型
神经网络训练的需要
#绝对路径D:\PyCharm Community Edition 2021.3.1\tensorboard\data\train\ants_image\0013035.jpg
#相对路径data/train/ants_image/0013035.jpg
#使用相对相对路径,因为绝对路径有\会当作转义符
img_path = "data/train/ants_image/0013035.jpg"
img = Image.open(img_path)
writer = SummaryWriter("logs")
tensor_trans = transforms.ToTensor()#创建Totensor的类实例化
tensor_img = tensor_trans(img)
# tensor_img = tensor_trans.__call__(img)这样也是可以的
# print(tensor_img)
writer.add_image("第二次tensorboard",tensor_img)
# img_tensor (torch.Tensor, numpy.array, or string/blobname): Image data 添加图片,上次采取的是numpy.array的类型,这次采取的是tensor类型
writer.close()
# 如果用cv
cv_img = cv2.imread(img_path)
# print(type(cv_img)) 结果为<class 'numpy.ndarray'>也是transform常用的一种类型
# class ToTensor(object):
# """Convert a ``PIL Image`` or ``numpy.ndarray`` to tensor.需要的两种类型
#
# Converts a PIL Image or numpy.ndarray (H x W x C) in the range
# [0, 255] to a torch.FloatTensor of shape (C x H x W) in the range [0.0, 1.0].
# """
#
# def __call__(self, pic):
# """
# Args:
# pic (PIL Image or numpy.ndarray): Image to be converted to tensor.
#
# Returns:
# Tensor: Converted image.
执行结束后,打开tensorboard:终端:tensorboard --logdirs=logs(我取名为logs)
结果如下: