基于PyTorch框架的torchvision

本文介绍了PyTorch框架中的torchvision模块,包括torchvision.datasets提供的各种数据集如MNIST、COCO等,以及如何加载数据。torchvision.models包含的预训练模型如AlexNet、ResNet等。torchvision.transforms提供了对图像进行多种变换的类,如RandomCrop、Normalize等。torchvision.utils模块则包含make_grid和save_image等函数,用于图像的展示和保存。
摘要由CSDN通过智能技术生成
基于PyTorch框架的torchvision:
torchvision.datasets:

下载数据集,包含一些加载数据的函数及数据集接口
包含的数据集有:
MNIST、COCO(用于图像标记和目标检测)、LSUN Classification
ImageFolder、Imagenet-12、CIFAR10 and CIFAR100、STL10
其中Dataset拥有__getitem__和__len__两个API(接口),可以使用torch.utils.data.Dataset()或torch.utils.data.DataLoader()来加载数据集。
具体可看pytorch中文手册

torchvision.models:

其子模块包括的模型结构有:
AlexNet VGG ResNet SqueezeNet DenseNet
对ResNet variants和AlexNet,提供有pretrained模型。

import torchvision.models as models
# pretrained=True 就可以使用预训练模型
resnet18 = models.resnet18(pretrained=True)
alexnet = models.alexnet(pretrained=True)

可参考中文手册

torchvision.transforms:

对PIL.Image进行变换。

class torchvision.transforms.Compose(transforms) 将多个transforms组合起来用

transforms.Compose([
	transforms.CenterCrop(10),# 对PIL.Image进行中心切割,得到给定的size
	transforms.ToTenser(),	
])

class torchvision.transforms.Scale(size, interpolation=2)

# 将输入的‘PIL.Image’重新改变大小成给定的‘size’
from torchvision import transforms
from PIL import Image
crop = transforms.Resize(12)
img = Image.open('gs/testset/test_image/drishtiGS_020.png')

print(type(img))
print(img.size)

croped_img = crop(img)
print(type(croped_img))
print(croped_img.size)

结果:

<class 'PIL.PngImagePlugin.PngImageFile'>
(2048, 1757)
<class 'PIL.Image.Image'>
(13, 12)

class torchvision.transforms.RandomCrop(size, padding=0) 切割中心的位置随机选取

class torchvision.transforms.RandomHorizontalFlip 随机水平翻转给定的PIL.Image,概率为0.5

class torchvision.transforms.RandomSizedCrop(size, interpolation=2) 将给定的PIL.Image随机剪切,再重新给size

class torchvision.transforms.Pad(padding, fill=0) 将PIL.Image的边进行填充,padding:要填充多少像素值 fill:用什么值填充

对Tensor进行变换

class torchvision.transforms.Normalize(mean, std) 将Tensor正则化。
image = (image - mean)/std

class torchvision.transforms.ToTensor
把一个取值范围为[0,255]的PIL.Image或者shape为(H,W,C)的numpy.ndarray,转换为[C,H,W],取值范围是[0,1,0]的torch.FloadTensor

class torchvision.transforms.ToPILImage 转换为PIL.Image

具体查看手册

torchvision.utils:

torchvision.utils.make_grid(tensor, nrow=8, padding=2, normalize=False, range=None, scale_each=False)
normalize:是否要将图片进行归一化
range(min,max):用来规范image
scale_each=True:每个图片独立规范化,而不是根据所有图片的像素最大最小值来规范化

torchvision.utils.save_image(tensor, filename, nrow=8, padding=2, normalize=False, range=None, scale_each=False) 将给定的Tensor保存成image文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值