数据增强
数据增强又称为数据增光,数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力
transforms Crop
transforms.CenterCrop
功能:从图像中心裁剪图片
size 所需裁剪图片尺寸
transforms.RandomCrop
功能 从图片中随机裁剪出尺寸为size的图片 随机 是指位置上的随机
size 所需裁剪图片尺寸
padding 设置填充大小
(1)当为a时 上下左右填充a个像素
(2)当为(a,b)时,上下填充b个像素,左右填充a个像素
(3) 当为(a,b,c,d)时,左,上,右,下,分别填充a,b,c,d个像素
pad_if_need 若图像小于设定size 则填充
padding_mode 填充模式 有四种模式
- constant 像素值由fill设定
- edge 像素值由图像边缘像素决定
- reflect 镜像填充,最后一个像素不镜像 对边缘进行2个长度的填充
eg.[1,2,3,4] --> [3,2,1,2,3,4,3,2] [3,2|,1,2,3,4|,3,2] 1是边缘像素 不镜像 4是边缘像素 不镜像 - symmetric 镜像填充,最后一个像素镜像 eg.[1,2,3,4] --> [2,1,1,2,3,4,4,3] [2,1,|1,2,3,4,|4,3]
RandomResizedCrop
功能:随机大小、长宽比裁剪图片
size 所需裁剪图片尺寸
scale 随机裁剪面积比例 默认(0.08,1)
ratio 随机长宽比,默认(3/4,4/3)
interpolation 插值方法
PIL.Image.NEAREST
PIL.Image.BILINEAR
PIL.Image.BICUBIC
FiveCrop
TenCrop
功能 在图像的上下左右以及中心裁剪出尺寸为size的5张图片,TenCrop对着5张图片进行水平或者垂直镜像获得10张图片
size 所需裁剪图片尺寸
vertical_flip 是否垂直翻转
transforms – Flip
1.RandomHorizontalFlip
2.RandomVerticalFlip
功能 依概率水平(左右)或 垂直(上下)翻转图片
p 翻转概率
RandomRotation
功能 随机旋转图片
degrees 旋转角度
(1)当为a时,在(-a,a)之间选择旋转角度
(2)当为(a,b)时,在(a,b)之间选择旋转角度
resample 重采样方法
expand 是否扩大图片,以保存原图信息
center 旋转点设置,默认中心旋转
# -*- coding: utf-8 -*-
import os
import numpy as np
import torch
import random
from torch.utils.data import DataLoader
import torchvision.transforms as transforms
from tools.my_dataset import RMBDataset
from PIL import Image
from matplotlib import pyplot as plt
def set_seed(seed=1):
random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
set_seed(1) # 设置随机种子
# 参数设置
MAX_EPOCH = 10
BATCH_SIZE = 1
LR = 0.01
log_interval = 10
val_interval = 1
rmb_label = {
"1"