Pytorch实战之数据加载和处理详解
Pytorch提供了许多工具来简化和希望数据加载,使代码更具可读性。这里将专门讲述transforms数据预处理方法,即数据增强。
数据增强又称为数据增广、数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力。
# 在进行下面代码学习前需要安装torchvision==0.8.2 !pip install torchvision==0.8.2 --user
from PIL import Image
from torchvision import transforms as T
import torch as t
to_tensor = T.ToTensor()
to_pil = T.ToPILImage()
cat = Image.open('./cat.jpeg') transforms——Crop


# torchvision.transforms.CenterCrop transforms = T.Compose([T.Resize(224),T.CenterCrop(224),T.ToTensor()]) # Resize:缩放 cat_t = transforms(cat) # 传入transforms中的数据是PIL数据,lena_t为tensor cat_t.shape # 3*224*224 ; 当T.CenterCrop()的参数大于T.Resize()的参数时,周围用0填充 to_pil(cat_t)

# torchvision.transforms.RandomCrop transforms = T.Compose([T.Resize(224),T.RandomCrop(224, padding=(16, 64)),T.ToTensor()]) # Resize:缩放 cat_t = transforms(cat) # 传入transforms中的数据是PIL数据,lena_t为tensor cat_t.shape # 3*224*224 ; 当T.CenterCrop()的参数大于T.Resize()的参数时,周围用0填充 to_pil(cat_t)

transforms——Flip

# torchvision.transforms.RandomHorizontalFlip transforms = T.Compose([T.Resize(224),T.RandomHorizontalFlip(p=0.5),T.ToTensor()]) # Resize:缩放 cat_t = transforms(cat) # 传入transforms中的数据是PIL数据,lena_t为tensor cat_t.shape # 3*224*224 ; 当T.CenterCrop()的参数大于T.Resize()的参数时,周围用0填充 to_pil(cat_t)

# torchvision.transforms.RandomRotation transforms = T.Compose([T.Resize(224),T.RandomRotation(30, center=(0, 0), expand=True),T.ToTensor()]) # Resize:缩放 cat_t = transforms(cat) # 传入transforms中的数据是PIL数据,lena_t为tensor cat_t.shape # 3*224*224 ; 当T.CenterCrop()的参数大于T.Resize()的参数时,周围用0填充 to_pil(cat_t)

图像变换


transforms的操作

自定义transforms
自定义transforms要素:
1.仅接收一个参数,返回一个参数
2.注意上下游的输出与输入
class Compose(object):
def __call__(self, img):
for t in transforms:
img = t(img)
return img通过类实现多参数传入:
class YourTransforms(object):
def __init__(self, transforms):
self.transforms = transforms
def __call__(self, img):
for t in self.transforms:
img = t(img)
return img椒盐噪声又称为脉冲噪声,是一种随机出现的白点或者黑点,白点称为盐噪声,黑色为椒噪声。
信噪比(Signal-Noise Rate,SNR)是衡量噪声的比例,图像中为图像像素的占比。
class AddPepperNoise(object):
def __init__(self, snr, p):
self.snr = snr
self.p = p
def __call__(self, img):
# 添加椒盐噪声具体实现过程
img = None
return imgtransforms方法

到此这篇关于Pytorch实战之数据加载和处理详解的文章就介绍到这了,更多相关Pytorch数据加载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python包pdfkit(wkhtmltopdf) 将HTML转换为PDF的操作方法
pdfkit,把HTML+CSS格式的文件转换成PDF格式文档的一种工具。它就是html转成pdf工具包wkhtmltopdf的Python封装。所以,必须手动安装wkhtmltopdf,这篇文章主要介绍了python包pdfkit(wkhtmltopdf)将HTML转换为PDF,需要的朋友可以参考下2022-04-04
python中lambda函数 list comprehension 和 zip函数使用指南
这篇文章主要介绍了python中lambda函数 list comprehension 和 zip函数使用方法,非常的实用,有需要的朋友可以参考下2014-09-09


最新评论