PyTorch生态简介

        PyTorch的强大并不仅局限于自身的易用性,更在于开源社区围绕PyTorch所产生的一系列工具包(一般是Python package)和程序,这些工具包极大地方便了PyTorch在特定领域的使用。例如对于图像处理时一般会使用torchvision,对于视频处理会使用torchvideo,对于文本的处理会使用torchtext等等。这些优秀的工具包共同构成了 PyTorch的生态。在特定领域使用PyTorch生态中的工具包,能够极大地降低入门门槛,方便新手快速掌握在特定领域的代码编写。

(一)torchvision

        torchvision是 PyTorch中用于图像处理的一个库,主要处理计算机视觉方向的模型和数据集。

  1. torchvision.datasets:用来加载一些内置的数据集和一些常用的函数。
  2. torchvision.models:用来加载PyTorch中内置的模型,并且可以将这些模型的预训练参数一起下载。
  3. torchvision.transforms:用于图片的变换,对于数据进行增强。例如:随机缩放比例(transforms.Resize)、随机位置裁剪(transforms.RandomCrop)、随机旋转(transforms.RandomRotation())等。
  4. torchvision.utils:提供了一些可视化的方法,可以将若干张图片拼接在一起、可视化检测和分割的效果。
import torchvision
from torchvision import datasets, transforms

#加载内置模型Resnet18
model=torchvision.models.resnet18(pretrained=True)

#加载内置数据集MINIST
train_ds=datasets.MNIST('data', train=True, transform=ToTensor(), download=True)
test_ds=datasets.MNIST('data', train=False, transform=ToTensor(), download=True)

#用transforms对数据增强
transform_train=transforms.Compose([transforms.Resize(224),  #随机缩放比例
                                    transforms.RandomCrop(192), #随机位置剪裁
                                    transforms.RandomHorizontalFlip(), #随机水平翻转
                                    transforms.RandomRotation(0.2),  #随机旋转
                                    transforms.ColorJitter(brightness=0.5,), #调整图片亮暗度
                                    transforms.ColorJitter(contrast=0.5,),   #图像数据增强
                                    transforms.ToTensor(),#对图像进行转化为tensor;改变图片格式;将像素取值范围规范到(0,1)
                                    transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),#数据归一化处理

(二)torchcideo

        TorchVideo 是一个专注于视频理解工作的深度学习库。torchVideo 提供了加速视频理解研究所需的可重用、模块化和高效的组件。TorchVideo 是使用PyTorch开发的,支持不同的深度学习视频组件,如视频模型、视频数据集和视频特定转换。

        PytorchVideo 提供了加速视频理解研究所需的模块化和高效的API。它还支持不同的深度学习视频组件,如视频模型、视频数据集和视频特定转换,最重要的是,PytorchVideo也提供了model zoo,使得人们可以使用各种先进的预训练视频模型及其评判基准。

(三)torchtext

        torchtext是PyTorch官方用于自然语言处理(NLP)的工具包。

        torchtext可以方便的对文本进行预处理,例如截断补长、构建词表等。torchtext主要包含了以下的主要组成部分:1.数据处理工具(torchtext.data.functional、torchtext.data.utils)、2.加载NLP内置数据集(torchtext.data.datasets)、3.构建词表(torchtext.vocab)等。

import torch
import torchtext

#加载文本内置数据集
train_iter, test_iter=torchtext.datasets.IMDB()

#torchtext内置的分词工具
from torchtext.data.utils import  get_tokenizer
tokenizer=get_tokenizer('basic_english') #basic_english:会将字母转为小写并按空格分割,会分割标点符号。

#torchtext内置的创建词表的工具
from torchtext.vocab import build_vocab_from_iterator
def yield_tokens(data):   #创建词表时需传入一个生成器,所以在此先定义一个生成器函数
    for (_,text) in data:
        yield tokenizer(text)
vocab=build_vocab_from_iterator(yield_tokens(train_data),
                                specials=['<pad>', '<unk>'],
                                min_freq=3)
vocab.set_default_index(vocab['<unk>'])

注:torchtext在安装时它的版本需要和自己安装的PyTorch版本对应,否则将无法正常运行。可以参考如下网址(https://pypi.org/project/torchtext/)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值