Pytorch实战之数据加载和处理详解

 更新时间:2023年06月06日 15:41:06   作者:吃肉的小馒头  
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 img

transforms方法

到此这篇关于Pytorch实战之数据加载和处理详解的文章就介绍到这了,更多相关Pytorch数据加载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pytorch MSELoss计算平均的实现方法

    pytorch MSELoss计算平均的实现方法

    这篇文章主要介绍了pytorch MSELoss计算平均的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • 使用Python创建读取和修改Word文档

    使用Python创建读取和修改Word文档

    Python凭借其简洁语法和丰富的生态工具链,是实现文档自动化处理的理想工具,本文将介绍如何使用Python实现Word文档的创建,读取及修改,需要的可以了解下
    2025-02-02
  • Python isalnum()函数的具体使用

    Python isalnum()函数的具体使用

    本文主要介绍了Python isalnum()函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Python 中 Shutil 模块详情

    Python 中 Shutil 模块详情

    这篇文章主要介绍了 Python 中 Shutil 模块,shutil可以简单地理解为sh + util,shell工具的意思。shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。下面来看文章详细内容
    2021-11-11
  • 基于Python实现图像的傅里叶变换

    基于Python实现图像的傅里叶变换

    傅里叶变换是一种函数在空间域和频率域的变换,从空间域到频率域的变换是傅里叶变换,而从频率域到空间域是傅里叶的反变换。这篇文章主要为大家介绍的是通过Python实现图像的傅里叶变换,感兴趣的可以了解一下
    2021-12-12
  • Pandas中GroupBy具体用法详解

    Pandas中GroupBy具体用法详解

    pandas中的DF数据类型可以像数据库表格一样进行groupby操作。通常来说groupby操作可以分为三部分:分割数据,应用变换和和合并数据。本文就详细的来介绍一下,感兴趣的可以了解一下
    2021-07-07
  • python批量实现Word文件转换为PDF文件

    python批量实现Word文件转换为PDF文件

    这篇文章主要为大家详细介绍了python批量实现Word文件转换为PDF文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python中的各种装饰器详解

    Python中的各种装饰器详解

    这篇文章主要介绍了Python中的各种装饰器详解,Python装饰器分两部分,一是装饰器本身的定义,一是被装饰器对象的定义,本文分别讲解了各种情况下的装饰器,需要的朋友可以参考下
    2015-04-04
  • 懒人必备Python代码之自动发送邮件

    懒人必备Python代码之自动发送邮件

    在传统的工作中,发送会议纪要是一个比较繁琐的任务,需要手动输入邮件内容、收件人、抄送人等信息,每次发送都需要重复操作,不仅费时费力,而且容易出现疏漏和错误。本文就来用Python代码实现这一功能吧
    2023-05-05
  • Python中用sleep()方法操作时间的教程

    Python中用sleep()方法操作时间的教程

    这篇文章主要介绍了Python中用sleep()方法操作时间的教程,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05

最新评论