Transforms
tensorboard(图像在网页上可视化工具)
tips:注意得在你的项目的当前目录下进行启动
启动命令:
tensorboard --logdir=你设置的名字
前置代码:
from torchvision import transforms
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")
img_path = "../dataset/train/ants/0013035.jpg"
img = Image.open(img_path)
工具箱,里有很多方法,如下:
ToTensor
- 将图像数据转化成tensor类型
- 数据格式适合神经网络训练
tensor_trains = transforms.ToTensor()
tensor_img = tensor_trains(img)
writer.add_image("to_tensor", tensor_img)
Normalize
- 用标准差和均值归一化处理tensor类型数据
- 在需要保持数据的比例关系时(如神经网络中),归一化可以帮助模型更快收敛,并减少模型在特定特征上过拟合的风险。
trans_norm = transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
img_norm = trans_norm(tensor_img)
writer.add_image("to_norm", img_norm)
Resize
- 是将输入数据(通常是图像)缩放到指定的大小
- 用于调整图像的尺寸,确保输入一致性和减少计算量
trans_resize = transforms.Resize((512, 512))
img_resize = trans_resize(img)
img_resize = tensor_trains(img_resize)
writer.add_image("Resize", img_resize, 0)
Compose
- Compose 是一种将多个数据变换方法组合起来执行的操作。
- 将多个预处理步骤(如 Resize、归一化、转Tensor等)组合在一起,形成一个完整的预处理管道。
trans_resize_2 = transforms.Resize(512)
trans_compose = transforms.Compose([trans_resize_2, tensor_trains])
img_resize_2 = trans_compose(img)
writer.add_image("Resize_2", img_resize_2, 1)
使用torchvision里的dataset
- 下载数据集
train_set = torchvision.datasets.CIFAR10(root="../dataset", train=True, transform=dataset_transform, download=True)
test_set = torchvision.datasets.CIFAR10(root="../dataset", train=False, transform=dataset_transform, download=True)
- 设置处理的格式
dataset_transform = torchvision.transforms.Compose([
torchvision.transforms.ToTensor()
])
DataLoader
test_loader = DataLoader(dataset=test_set, batch_size=64, shuffle=True, num_workers=0, drop_last=True)
参数设置:
dataset
:它指定要加载的数据集batch_size
: 每个批次的数据量,即每次加载多少样本shuffle
:是否在每个 epoch 训练之前随机打乱数据集num_workers
: 加载数据时使用的子进程数。num_workers=0 表示数据将在主进程中加载。较大的 num_workers 值可以加快数据加载速度(并行化)。drop_last
:如果 True,则当数据集大小不能被 batch_size 整除时,丢弃最后一批不完整的小批量。如果 False,则保留最后一批不完整的小批量。