参考的是 torchvision - PyTorch中文文档
相比于各种博客的良莠不齐的质量(也可能是我太菜看不懂),PyTorch中文文档 要友好的多。

torchvision库:torchvision是独立于 PyTorch 的关于图像操作的一些方便工具库,包含了目前流行的数据集模型结构和常用的图片转换工具

其常用的包:

vision.datasets

几个常用视觉数据集,可以下载和加载。包括以下的数据集:

  • MNIST
  • COCO(用于图像标注和目标检测)(Captioning and Detection)
  • LSUN Classification
  • ImageFolder
  • Imagenet-12
  • CIFAR10 and CIFAR100
  • STL10

vision.models

包含的模型结构有:

  • AlexNet,
  • VGG,
  • ResNet
  • SqueezeNet
  • Densenet

可以使用随机初始化的权重来创建这些模型。

import torchvision.models as modelsresnet18 = models.resnet18()
alexnet = models.alexnet()
squeezenet = models.squeezenet1_0()
densenet = models.densenet_161()

对于ResNet variantsAlexNet,也可以使用预训练(pre-trained)的模型。通过加上pretrained=True来调用。
注:预训练是在ImageNet上进行的。

# pretrained=True 来使用预训练的模型
import torchvision.models as modelsresnet18 = models.resnet18(pretrained=True)
alexnet = models.alexnet(pretrained=True)

附:可调用的全部模型

torchvision.models.alexnet(pretrained=False, ** kwargs)torchvision.models.resnet18(pretrained=False, ** kwargs)
torchvision.models.resnet34(pretrained=False, ** kwargs)
torchvision.models.resnet50(pretrained=False, ** kwargs)
torchvision.models.resnet101(pretrained=False, ** kwargs)
torchvision.models.resnet152(pretrained=False, ** kwargs)torchvision.models.vgg11(pretrained=False, ** kwargs)
torchvision.models.vgg11_bn(** kwargs)  # with batch normalization
torchvision.models.vgg13(pretrained=False, ** kwargs)
torchvision.models.vgg13_bn(** kwargs)  # with batch normalization
torchvision.models.vgg16(pretrained=False, ** kwargs)
torchvision.models.vgg16_bn(** kwargs)  # with batch normalization
torchvision.models.vgg19(pretrained=False, ** kwargs)
torchvision.models.vgg19_bn(** kwargs)  # with batch normalization

vision.transforms

对PIL.Image进行变换

包括一些常用的图像操作。

class torchvision.transforms.Compose(transforms)

将多个transform组合起来使用。
transforms: 由transform构成的列表。

示例:

transforms.Compose([transforms.CenterCrop(10),transforms.ToTensor(),])
class torchvision.transforms.CenterCrop(size)

将给定的PIL.Image进行中心切割,得到给定的size
size可以是tuple(target_height, target_width)
size也可以是一个Integer,在这种情况下,切出来的图片的形状是正方形。

class torchvision.transforms.Pad(padding, fill=0)

将给定的PIL.Image的所有边用给定的pad value填充。 padding:要填充多少像素。
fill:用什么值填。

示例:

from torchvision import transforms
from PIL import Image
padding_img = transforms.Pad(padding=10, fill=0)
img = Image.open('test.jpg')print(type(img))
print(img.size)padded_img=padding(img)print(type(padded_img))
print(padded_img.size)
<class 'PIL.PngImagePlugin.PngImageFile'>
(10, 10)
<class 'PIL.Image.Image'>
(30, 30) #由于上下左右都要填充10个像素,所以填充后的size是(30,30)
class torchvision.transforms.RandomCrop(size, padding=0)

切割中心点的位置随机选取。size可以是tuple也可以是Integer

class torchvision.transforms.RandomHorizontalFlip

随机水平翻转给定的PIL.Image,概率为0.5。即:一半的概率翻转,一半的概率不翻转。

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

先将给定的PIL.Image随机切,然后再resize成给定的size大小。

对Tensor进行变换

class torchvision.transforms.Normalize(mean, std)

给定均值:(R,G,B) 、方差:(R,G,B),将会把Tensor正则化。
即:Normalized_image=(image-mean)/std

class torchvision.transforms.ToTensor

把一个 取值范围是[0,255]PIL.Image 或者是 shape(H,W,C)numpy.ndarray ,转换成shape[C,H,W],取值范围是[0,1.0]torch.FloadTensor

简单来说,就是PIL.Imagendarray —> tensor

data = np.random.randint(0, 255, size=300)
img = data.reshape(10,10,3)
print(img.shape)
img_tensor = transforms.ToTensor()(img) # 转换成tensor
print(img_tensor)
class torchvision.transforms.ToPILImage

shape(C,H,W)Tensorshape(H,W,C)numpy.ndarray转换成PIL.Image,值不变。

通用变换 class torchvision.transforms.Lambda(lambd)

使用lambd作为转换器。

[PyTorch] torchvision库及其常用的函数相关推荐

  1. numpy不用科学记数发 python_Python科学计算库Numpy常用的函数使用

    林小森博客: Python科学计算库Numpy常用的函数使用 - 林小森​www.linxiaosen.com Numpy具有强大的计算功能,本文介绍Numpy常用的函数,可以有效的提高工作效率. 首 ...

  2. (原创)机器学习之numpy库中常用的函数介绍(一)

    1. mat() mat()与array的区别: mat是矩阵,数据必须是2维的,是array的子集,包含array的所有特性,所做的运算都是针对矩阵来进行的. array是数组,数据可以是多维的,所 ...

  3. Py之torchvision:torchvision库的简介、安装、使用方法之详细攻略

    Py之torchvision:torchvision库的简介.安装.使用方法之详细攻略 目录 torchvision库的简介 torchvision库的安装 torchvision库的使用方法 1.基 ...

  4. Github上Pandas,Numpy和 Scipy三个库中20个最常用的函数

    首发于Datartisan数据工匠 写文章 Github上Pandas,Numpy和 Scipy三个库中20个最常用的函数 Datartisan 9 个月前 几个月前,我看到一篇博客中列出了 Gith ...

  5. Py之Numpy:Numpy库中常用函数的简介、应用之详细攻略

    Py之Numpy:Numpy库中常用函数的简介.应用之详细攻略 目录 Numpy库中常用函数的简介.应用 1.X, Y = np.meshgrid(X, Y) 相关文章 Py之Numpy:Numpy库 ...

  6. php常用系统函数库,PHP常用函数大全

    php usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_ ...

  7. gmpy2库的常用函数及其作用

    第一次做RSA题,去找题解,发现得用上gmpy2库,下好之后去了解了一下gmpy2库的常用函数 注:一般是用这个库来解决一些大整数之间的各种计算,下面的例子都是举的常规数 1.求两整数的最大公因数 i ...

  8. C语言windows.h库的常用函数(三)

    SetCursorPos函数 用途 SetCursorPos函数是windows.h库中用来设置指针位置的函数,使用该函数鼠标指针将会直接跳至指定坐标位置 参数 SetCursorPos函数拥有x和y ...

  9. js的常用封装函数库之Number操作

    js的常用封装函数库之Number操作: /* * 函数功能:Number */class NumberFn {/*随机数范围*/random (min, max) {if (arguments.le ...

最新文章

  1. 中国工程院发布2021中国电子信息工程科技发展十四大趋势
  2. pyqt tableview mysql_当数据库中添加了一个新条目时,如何在PyQt中更新TableView?
  3. 《软件设计精要与模式》前言
  4. try catch 之后是否会继续执行
  5. Java动态代理的两种实现方法
  6. 64位Ubuntu kylin 16.04使用fastboot下载内核到tiny4412开发板
  7. 【重点突破】—— React实现富文本编辑器
  8. 喜欢爱C/C++的人不要浮躁
  9. pg_upgrade升级数据库9.1.1-9.4.5
  10. 文件查询之三:文件和目录的批量操作
  11. 使用spring集成的kafka收发消息
  12. python入门——P54论一只爬虫的自我修养1
  13. SM1、SM2 、SM3、 SM4算法
  14. 最近大火的「元宇宙」究竟是什么
  15. 【技术认证知识】网络通信基础知识(华为HCIA认证网络基础)
  16. 华为p50预计售价鸿蒙是什么,华为p50预计售价多少_华为p50售价预估
  17. 随身WIFI刷机记录 UF1003
  18. imuupdate() 解算
  19. 25岁研究生拿高薪互联网的offer,意气风发的走出学校
  20. [SHELL]: ln 命令详解

热门文章

  1. 用python画玫瑰花-使用Python画一朵玫瑰花
  2. 语音识别项目报告.pdf
  3. 本地语音识别_语音 识别_语音识别 - 云+社区 - 腾讯云
  4. JavaScript面向对象之Function类型
  5. 【狂神css笔记】美化网页元素
  6. mysql 官方docker_用docker安装官方mysql
  7. 利用计算机解决的生活问题,利用计算机解决经典动力学问题
  8. php 浏览网页的原理,PHP网页运行原理
  9. 使用 k8s 搭建 confluence 6.10.x 版本
  10. idea给main方法附带参数