在PyTorch中转换数据

In continuation of my previous post ,we will keep on deep diving into basic fundamentals of PyTorch. In this post we will discuss about ways to transform data in PyTorch.

延续我以前的 发布后 我们将继续深入研究PyTorch的基本原理。 在这篇文章中,我们将讨论在PyTorch中转换数据的方法。

需要数据扩充 (Need for Data Augmentation)

Data augmentation is an approach that aids in increasing the variety of data for training models thus increasing the breadth of available information.The augmented data thus represents a more comprehensive set of possible data points. It improves the performance and ability of the model to generalize and hence addresses overfitting.

数据扩充是一种有助于增加训练模型数据种类的方法,从而增加了可用信息的广度。 它提高了模型的性能和泛化能力,从而解决了过拟合问题。

如何进行转换? (How to perform transformations?)

torchvision module of PyTorch provides transforms to accord common image transformations. These transformations can be chained together using Compose.

PyTorch的torchvision模块提供转换以符合常见的图像转换。 可以使用Compose将这些转换链接在一起。

  • transforms.Compose- Compose helps to bind multiple transforms together so we can use more than one transformation.

    transforms.Compose -Compose有助于将多个转换绑定在一起,因此我们可以使用多个转换。

Image for post

Multiple transformations have been chained using transforms.Compose and then it has been passed as an argument while loading dataset.

已使用transforms.Compose链接了多个转换,然后在加载数据集时将其作为参数传递。

  • transforms.ToTensor — Applies a scaling operation of changing range from 0–255 to 0–1. It converts a PIL Image or numpy ndarray to a tensor (C x H x W) in the range of 0–1.

    transforms.ToTensor —应用缩放操作,将范围从0–255更改为0–1。 它将PIL图像或numpy ndarray转换为范围为0-1的张量(C xH x W)。

  • transforms.Normalize- This operation normalizes a tensor image with provided mean and standard deviation. For an image with 3 channels (RGB), 3 values for mean and 3 values for standard deviation are given as parameters(in form of tuple) corresponding to each channel.

    transforms.Normalize-此操作使用提供的均值和标准差对张量图像进行归一化。 对于具有3个通道(RGB)的图像,将给出3个平均值和3个标准差值作为与每个通道相对应的参数(以元组的形式)。

Example :- transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) where first tuple is for mean and second for standard deviation.

示例: -transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))其中,第一个元组表示平均值,第二个元组表示标准偏差。

  • transforms.Pad — It pads given image on all sides with the given padding value. If a single integer value is provided for padding parameter then that value is used to pad all borders. If tuple of length 2 is provided then this acts as padding on left/right and top/bottom respectively. For constant padding mode default value for fill 0 is used.

    transforms.Pad —它使用给定的填充值在所有面上填充给定的图像。 如果为填充参数提供单个整数值,则该值将用于填充所有边界。 如果提供长度为2的元组,则这分别充当左侧/右侧和顶部/底部的填充。 对于恒定填充模式 ,使用填充 0的默认值。

Example :- torchvision.transforms.Pad(10)

示例: -torchvision.transforms.Pad(10)

Image for post
Using torchvision.transforms.Pad(10)使用torchvision.transforms.Pad(10)

You can notice the output size of the transformed image.

您会注意到转换后的图像的输出大小

Using image from FMNIST dataset, used in my previous post. Image size for this dataset is 28*28 .

使用 我以前的 文章中 使用的 FMNIST数据集中的 图像 该数据集的图像大小为28 * 28。

  • transforms.RandomHorizontalFlip — Flipping operation helps in changing the orientation of the image. RandomHorizontalFlip changes the orientation horizontally similarly we can use RandomVerticalFlip for changing vertical orientation. It flips the image randomly with a given probability (p).

    transforms.RandomHorizo​​ntalFlip —翻转操作有助于更改图像的方向。 类似地,我们可以使用RandomVerticalFlip来改变垂直方向。 它以给定的概率(p)随机翻转图像。

Example :- torchvision.transforms.RandomHorizontalFlip(p=1)

示例: -torchvision.transforms.RandomHorizo​​ntalFlip(p = 1)

Image for post
Using torchvision.transforms.RandomHorizontalFlip(p=1)使用torchvision.transforms.RandomHorizo​​ntalFlip(p = 1)
  • transforms.CenterCrop- We can do cropping of an image using this transformation. CenterCrop crops the given image at the center as per the size parameter. Crop can be square or rectangle in shape depending on the size parameter dimensions. Similarly, we have RandomCrop that crops the given image at a random location.

    transforms.CenterCrop-我们可以使用此变换来裁剪图像。 CenterCrop根据大小参数在中心裁剪给定图像。 作物的形状可以是正方形或矩形,具体取决于大小参数的尺寸。 同样,我们有RandomCrop可以在任意位置裁剪给定图像。

Example :- torchvision.transforms.CenterCrop((18, 18))

示例: -torchvision.transforms.CenterCrop((18,18))

Image for post
Using 使用 torchvision.transforms.CenterCrop((18, 18))torchvision.transforms.CenterCrop((18,18))
  • transforms.Resize —To resize image this transformation can be used. It is also very useful incase of images with large dimensions to reduce it to a particular size (parameter for desired output size) . By resizing, the resolution can be lowered and thus will help in training the network faster.

    transforms.Resize —要调整图像的大小,可以使用此变换。 在具有大尺寸的图像的情况下将其减小到特定尺寸 (用于期望的输出尺寸的参数)也是非常有用的。 通过调整大小,可以降低分辨率,从而有助于更快地训练网络。

Example :- torchvision.transforms.Resize((300, 300))

范例: -torchvision.transforms.Resize((300,300))

Image for post
Using torchvision.transforms.Resize((300, 300))使用torchvision.transforms.Resize((300,300))
  • transforms.RandomRotation- To rotate an image by certain degrees (parameter). If degrees is an integer rather than (min, max) then the range is interpreted as (-degrees, +degrees).

    transforms.RandomRotation-将图像旋转一定程度 (参数)。 如果度数是整数而不是(min,max),则该范围将解释为(-度数+ +度数)。

Example :- torchvision.transforms.RandomRotation(degrees=(180))

范例: -torchvision.transforms.RandomRotation(degrees =(180))

Image for post
Using torchvision.transforms.RandomRotation(degrees=(180))使用torchvision.transforms.RandomRotation(degrees =(180))
  • transforms.ColorJitter- It helps to change the brightness, contrast and saturation of an image.

    transforms.ColorJitter-它有助于 更改图像的亮度,对比度和饱和度。

Apart from these above mentioned transformations, you can refer to full list here.

除了上述转换之外,您还可以在此处参考完整列表

最后的想法 (Final Thoughts)

It is not always necessary to use multiple augmentations all at once, it is more of data dependant process.We need to be careful while using these transformations . For example, with crop operation if the crops are too small, we might be at risk of cutting out important parts of the image and making the model train on the wrong thing. For instance, if a dog is playing near a tree and the crop takes out the dog and just leaves part of the tree to be classified as dog that may create issues.

不一定总是一次使用多个扩充,更多的是依赖于数据的过程。在使用这些转换时,我们需要小心。 例如,如果作物太小,则使用作物操作时,我们可能会面临切掉图像重要部分并使模型针对错误的事物进行训练的风险。 例如,如果一只狗在树附近玩耍,而庄稼将狗拔出,只留下部分树被分类为狗,这可能会造成问题。

Apart from torchvision.transforms we can explore albumentations library too for deep learning image augmentation.

除了torchvision.transforms我们可以探索albumentations库过深学习图像增强。

翻译自: https://medium.com/analytics-vidhya/transforming-data-in-pytorch-741fab9e008c

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习实践六---K-means聚类算法 和 主成分分析(PCA)

在这次练习中将实现K-means 聚类算法并应用它压缩图片,第二部分,将使用主成分分析算法去找到一个脸部图片的低维描述。 K-means Clustering Implementing K-means K-means算法是一种自动将相似的数据样本聚在一起的方法,K-means背后的直观是一个迭代过…

打包 压缩 命令tar zip

2019独角兽企业重金招聘Python工程师标准>>> 打包 压缩 命令tar zip tar语法 #压缩 tar -czvf ***.tar.gz tar -cjvf ***.tar.bz2 #解压缩 tar -xzvf ***.tar.gz tar -xjvf ***.tar.bz2 tar [主选项辅选项] 文件或目录 主选项是必须要有的,它告诉tar要做…

mysql免安装5.7.17_mysql免安装5.7.17数据库配置

首先要有 mysql-5.7.10-winx64环境: mysql-5.7.10-winx64 win10(64位)配置环境变量:1、把mysql-5.7.10-winx64放到D盘,进入D\mysql-5.7.10-winx64\bin目录,复制路径,配置环境变量,在path后面添加D\mysql-5.7.10-winx6…

tidb数据库_异构数据库复制到TiDB

tidb数据库This article is based on a talk given by Tianshuang Qin at TiDB DevCon 2020.本文基于Tianshuang Qin在 TiDB DevCon 2020 上的演讲 。 When we convert from a standalone system to a distributed one, one of the challenges is migrating the database. We’…

机器学习实践七----异常检测和推荐系统

Anomaly detection 异常检测是机器学习中比较常见的应用,它主要用于非监督学习问题,从某些角度看, 它又类似于一些监督学习问题。 什么是异常检测?来看几个例子: 例1. 假设是飞机引擎制造商, 要对引擎进行…

CODE[VS] 1621 混合牛奶 USACO

题目描述 Description牛奶包装是一个如此低利润的生意,所以尽可能低的控制初级产品(牛奶)的价格变的十分重要.请帮助快乐的牛奶制造者(Merry Milk Makers)以可能的最廉价的方式取得他们所需的牛奶.快乐的牛奶制造公司从一些农民那购买牛奶,每个农民卖给牛奶制造公司的价格不一定…

刚认识女孩说不要浪费时间_不要浪费时间寻找学习数据科学的最佳方法

刚认识女孩说不要浪费时间重点 (Top highlight)Data science train is moving, at a constantly accelerating speed, and increasing its length by adding up new coaches. Businesses want to be on the data science train to keep up with the ever-evolving technology a…

测试工具之badboy

badboy这个工具本身用处不是很大,但有个录制脚本的功能,还是jmeter脚本,所以针对这一点很多懒人就可以通过这个录制脚本,而不需要自己去编写 badboy工具最近还是2016年更新的,后面也没在更新了,官方下载地址…

hive 集成sentry

2019独角兽企业重金招聘Python工程师标准>>> 环境 apache-hive-2.3.3-bin apache-sentry-2.1.0-bin 1 2 sentry是目前最新的版本,支持hive的最高版本为2.3.3,hive版本如果高于2.3.3,会出一些版本兼容问题[亲测] hive快速安装 wget…

isql 测试mysql连接_[libco] 协程库学习,测试连接 mysql

历史原因,一直使用 libev 作为服务底层;异步框架虽然性能比较高,但新人学习和使用门槛非常高,而且串行的逻辑被打散为状态机,这也会严重影响生产效率。用同步方式实现异步功能,既保证了异步性能优势&#x…

什么是数据仓库,何时以及为什么要考虑一个

The term “Data Warehouse” is widely used in the data analytics world, however, it’s quite common for people who are new with data analytics to ask the above question.术语“数据仓库”在数据分析领域中被广泛使用,但是,对于数据分析新手来…

探索性数据分析入门_入门指南:R中的探索性数据分析

探索性数据分析入门When I started on my journey to learn data science, I read through multiple articles that stressed the importance of understanding your data. It didn’t make sense to me. I was naive enough to think that we are handed over data which we p…

python web应用_为您的应用选择最佳的Python Web爬网库

python web应用Living in today’s world, we are surrounded by different data all around us. The ability to collect and use this data in our projects is a must-have skill for every data scientist.生活在当今世界中,我们周围遍布着不同的数据。 在我们的…

NDK-r14b + FFmpeg-release-3.4 linux下编译FFmpeg

下载资源 官网下载完NDK14b 和 FFmpeg 下载之后,更改FFmpeg 目录下configure问价如下: SLIBNAME_WITH_MAJOR$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF) LIB_INSTALL_EXTRA_CMD$$(RANLIB)"$(LIBDIR)/$(LIBNAME)" SLIB_INSTALL_NAME$(SLI…

html中列表导航怎么和图片对齐_HTML实战篇:html仿百度首页

本篇文章主要给大家介绍一下如何使用htmlcss来制作百度首页页面。1)制作页面所用的知识点我们首先来分析一下百度首页的页面效果图百度首页由头部的一个文字导航,中间的一个按钮和一个输入框以及下边的文字简介和导航组成。我们这里主要用到的知识点就是列表标签(ul…

C# 依赖注入那些事儿

原文地址:http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html 里面有一个例子差了些代码,补全后贴上。 3.1.3 依赖获取 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml;//定义…

在FAANG面试中破解堆算法

In FAANG company interview, Candidates always come across heap problems. There is one question they do like to ask — Top K. Because these companies have a huge dataset and they can’t always go through all the data. Finding tope data is always a good opti…

mysql springboot 缓存_Spring Boot 整合 Redis 实现缓存操作

摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢!『 产品没有价值,开发团队再优秀也无济于事 – 《启示录》 』本文提纲一、缓存的应用场景二、更新缓存的策略三、运行 springboot-mybatis-redis 工程…

itchat 道歉_人类的“道歉”

itchat 道歉When cookies were the progeny of “magic cookies”, they were seemingly innocuous packets of e-commerce data that stored a user’s partial transaction state on their computer. It wasn’t disclosed that you were playing a beneficial part in a muc…

matlab软件imag函数_「复变函数与积分变换」基本计算代码

使用了Matlab代码,化简平时遇到的计算问题,也可以用于验算结果来自211工科专业2学分复变函数与积分变换课程求复角主值sym(angle(待求复数))%公式 sym(angle(1sqrt(3)*i))%举例代入化简将 代入关于z的函数f(z)中并化解,用于公式法计算无穷远点…