pytorch笔记-torchvision,data

数据集

主要包含流行的数据集,模型架构和计算机视觉常用的图片转化。
minist
手写数字数据集
fashion-minist
简单服装数据集,共10类
Qminist
重构的minist,增加了50000个样本
COCO
微软发布的 COCO 数据库是一个大型图像数据集, 专为对象检测、分割、人体关键点检测、语义分割和字幕生成而设计。
COCO数据集包含20万个图像;
80个类别中有超过50万个目标标注,它是最广泛公开的目标检测数据库;
平均每个图像的目标数为7.2,这些是目标检测挑战的著名数据集。
大小:25 GB(压缩)
图片分类数据集:
ImageNet、CIFAR等

数据集的加载方法:

ImageFolder
加载文件夹下载的图片,第一层的子文件夹代表子分类
DatasetFolder
和ImageFolder类似,只不过它加载的文件是.ext格式
root/class_x/xxx.ext
fakadata生成随机图片

模型架构包:
模型子程序包包含用于解决不同任务的模型定义,包括:图像分类,像素语义分割,对象检测,实例分割,人员关键点检测和视频分类。如下:
在这里插入图片描述
获取方式:
import torchvision.models as models
resnet18 = models.resnet18()
这些模型还有预训练过的,可以直接获取,
import torchvision.models as models
alexnet = models.alexnet(pretrained=True)
具体使用建相关文档

图片转化包:

提供常见的图片转换,可以使用transforms.Compose([…])类组合多种转换,还可以使用functional 对转换进行细粒度的控制。
torchvision.transforms.xxx
transforms下面的多个类代表不同的转换, 比如 CenterCrop、Grayscale、Scale、Resize、擦除、仿射变换
还可以使用pad进行加宽操作

仿射变换就是图片的颜色的通道向量乘以矩阵得到新的通道向量,类似Android

其中还有随机化的变化操作,即随机变化成某个尺寸、随机旋转角度,或者从列表中随机选择某种变换
提供image和tensor之间的各种变换
标准化tensor表示的image

Functional Transforms
import torchvision.transforms.functional as TF
对图片进行细粒度的转换控制,具体怎么用待查。
它包含上面提供的基本变换功能,还提供调整亮度,对比度,饱和度,色调,伽马校正等功能

工具类
util
目前两个方法,多张图片合成一张,保存图片

数据加载类Dataloader:

注意和dataset不在同一个包下面,它在torch.util.data.xxx下面
主要提供以下五个功能:
map形式或者Iterable形式的dataset
自定义数据加载顺序
自动批量加载
多线程加载
内存管理

配置是通过构造器进行配置的,配置项比较多,大致如下:
dataset(Dataset): 传入的数据集
batch_size(int, optional): 每个batch有多少个样本
shuffle(bool, optional): 在每个epoch开始的时候,对数据进行重新排序
sampler(Sampler, optional): 自定义从数据集中取样本的策略,如果指定这个参数,那么shuffle必须为False
batch_sampler(Sampler, optional): 与sampler类似,但是一次只返回一个batch的indices(索引),需要注意的是,一旦指定了这个参数,那么batch_size,shuffle,sampler,drop_last就不能再制定了(互斥——Mutually exclusive)
num_workers (int, optional): 这个参数决定了有几个进程来处理data loading。0意味着所有的数据都会被load进主进程。(默认为0)
collate_fn (callable, optional): 将一个list的sample组成一个mini-batch的函数
pin_memory (bool, optional): 如果设置为True,那么data loader将会在返回它们之前,将tensors拷贝到CUDA中的固定内存(CUDA pinned memory)中.

drop_last (bool, optional): 如果设置为True:这个是对最后的未完成的batch来说的,比如你的batch_size设置为64,而一个epoch只有100个样本,那么训练的时候后面的36个就被扔掉了…
如果为False(默认),那么会继续正常执行,只是最后的batch_size会小一点。

timeout(numeric, optional): 如果是正数,表明等待从worker进程中收集一个batch等待的时间,若超出设定的时间还没有收集到,那就不收集这个内容了。这个numeric应总是大于等于0。默认为0
worker_init_fn (callable, optional): 每个worker初始化函数 

比较常用的几个是 dataset, batch_size, shuffle
dataset如果自定义的话,必须继承自torch.utils.data.Dataset,内部要实现两个函数一个是__lent__用来获取整个数据集的大小,一个是__getitem__用来从数据集中得到一个数据片段item。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值