TorchVision包包含流行的数据集、模型架构和用于计算机视觉的图像转换,它是PyTorch项目的一部分。TorchVison最新发布版本为v0.11.1,发布较频繁,它的license为BSD-3-Clause。它的源码位于:
 https://github.com/pytorch/vision

      TorchVision由C++(CUDA)和Python3实现,依赖Torch、PNG、JPEG,还依赖PIL(Pillow, Python Imaging Library)。推荐使用Anaconda安装 ,安装时注意对Python和Torch有版本要求。对应TorchVison 0.11.1,Torch版本要求为1.10.0,Python要求为[3.6, 3.9]。通过Anaconda安装TorchVison 0.11.1执行如下命令:

conda create -n torchvision_0.11.1 python=3.8
conda activate torchvision_0.11.1
conda install torchvision==0.11.1 -c pytorch

      TorchVision也对外提供C++接口,通过CMakeLists.txt生成动态库。

      TorchVision功能:

      (1).torchvision.datasets包支持下载/加载的数据集有几十种,如CIFAR、COCO、MNIST等,所有的数据集都有相似的API加载方式。每种数据集在datasets包中都对应一个.py文件,如CIFAR对应有cifar.py。

      (2).torchvision.io包提供执行IO操作函数,用于读写视频和图像。

      (3).torchvision.models包提供各种模型定义,包括图像分类如AlexNet、VGG等;对象检测如Faster R-CNN、Mask R-CNN等;分割、关键点检测等。

      (4).torchvision.ops包实现特定于计算机视觉的操作,如RoI(Region of Interest) Align、RoI(Region of Interest) Pool等。

      (5).torchvision.transforms包实现图像变换。大多数转换同时接受PIL图像和tensor图像,尽管有些转换仅适用于PIL,有些则仅适用于tensor。接受tensor图像的转换也接受批量的tensor图像。tensor图像是具有(C, H, W)形状的tensor,其中C是通道数,H和W是图像的高度和宽度。批量tensor图像是一个(B, C, H, W)形状的tensor,其中B是一批图像的数量。tensor图像的预期范围由tensor dtype隐式定义。具有float dtype的tensor图像的值应为[0, 1)。具有整数dtype的tensor图像应具有[0, MAX_DTYPE],其中MAX_DTYPE是该dtype中可以表示的最大值。

      以下为测试代码:

from torchvision import datasets
from torchvision import io
from torchvision import models
from torchvision import ops
from torchvision import transformsimport torch# 下载MNIST数据集: torchvision.datasets包
test = datasets.MNIST("../../data", train=False, download=True)
train = datasets.MNIST("../../data", train=True, download=False)
print(f"raw_folder: test: {test.raw_folder}, train: {train.raw_folder}")
print(f"processed_folder: test: {test.processed_folder}, train: {train.processed_folder}")
print(f"extra_repr:\ntest: {test.extra_repr}\ntrain: {train.extra_repr}")
print(f"class to index: {test.class_to_idx}")# 读写图像: torchvision.io包
tensor = io.read_image("../../data/image/1.jpg")
print("tensor shape:", tensor.shape)
io.write_png(tensor, "../../data/image/result.png")tensor = io.read_image("../../data/image/lena.png")
print("tensor shape:", tensor.shape)
io.write_jpeg(tensor, "../../data/image/result.jpg")# 下载pre-trained AlexNet模型: torchvision.models包
net = models.alexnet(pretrained=True)# 计算机视觉操作: torchvision.ops包
boxes = torch.tensor([[1, 1, 101, 101], [3, 5, 13, 15], [2, 4, 22, 44]])
area = ops.box_area(boxes)
print(f"area: {area}")index = ops.remove_small_boxes(boxes, min_size=20)
print(f"index: {index}")# 图像变换: torchvision.transforms包
resize = transforms.Resize(size=[256, 128])
img = resize.forward(tensor)
io.write_jpeg(img, "../../data/image/resize.jpg")grayscale = transforms.Grayscale()
img2 = grayscale.forward(img)
io.write_jpeg(img2, "../../data/image/gray.jpg")affine = transforms.RandomAffine(degrees=35)
img3 = affine.forward(tensor)
io.write_jpeg(img3, "../../data/image/affine.jpg")crop = transforms.CenterCrop(size=[128, 128])
img4 = crop.forward(tensor)
io.write_jpeg(img4, "../../data/image/crop.jpg")

      GitHub:https://github.com/fengbingchun/PyTorch_Test

PyTorch中torchvision介绍相关推荐

  1. pytorch中Parameter()介绍

    用法介绍  pytorch中的Parameter函数可以对某个张量进行参数化.它可以将不可训练的张量转化为可训练的参数类型,同时将转化后的张量绑定到模型可训练参数的列表中,当更新模型的参数时一并将其更 ...

  2. PyTorch中tensor介绍

          PyTorch中的张量(Tensor)如同数组和矩阵一样,是一种特殊的数据结构.在PyTorch中,神经网络的输入.输出以及网络的参数等数据,都是使用张量来进行描述.       torc ...

  3. Pytorch中torchvision.datasets.ImageFolder报错:Found 0 files in subfolders of:XXX,完美解决!

    1.报错如下: RuntimeError: Found 0 files in subfolders of:XXX Supported extensions are: .jpg,.jpeg,.png,. ...

  4. Pytorch 中 LSTMCell介绍

    LSTM 和 LSTMCell的关系 很显然,LSTMCell是组成LSTM整个序列计算过程的基本组成单元,也就是进行sequence中一个word的计算 LSTMCell input_size: w ...

  5. 【小白学习PyTorch教程】十七、 PyTorch 中 数据集torchvision和torchtext

    @Author:Runsen 对于PyTorch加载和处理不同类型数据,官方提供了torchvision和torchtext. 之前使用 torchDataLoader类直接加载图像并将其转换为张量. ...

  6. 简单介绍pytorch中分布式训练DDP使用 (结合实例,快速入门)

    文章目录 DDP原理 pytorch中DDP使用 相关的概念 使用流程 如何启动 torch.distributed.launch spawn调用方式 针对实例voxceleb_trainer多卡介绍 ...

  7. pytorch中torch.optim的介绍

    pytorch中torch.optim的介绍 这是torch自带的一个优化器,里面自带了求导,更新等操作.开门见山直接讲怎么使用: 常用的引入: import torch.optim as optim ...

  8. PyTorch中nn.Module类中__call__方法介绍

    在PyTorch源码的torch/nn/modules/module.py文件中,有一条__call__语句和一条forward语句,如下: __call__ : Callable[-, Any] = ...

  9. PyTorch中的循环神经网络RNN函数及词嵌入函数介绍

    一.pytroch中的RNN相关函数介绍 1.对于简单的RNN结构,有两种方式进行调用: 1.1 torch.nn.RNN():可以接收一个序列的输入,默认会传入全0的隐藏状态,也可以自己定义初始的隐 ...

最新文章

  1. 架设httpd服务器
  2. python人工智能-Python 人工智能应用快速入门 (一)
  3. java zmq订阅_从ZMQ PUB套接字获取订户过滤器
  4. 【linux网络编程】网络字节序、地址转换
  5. centos7搭建FTP服务器
  6. 运行 sudo 时会发生什么?
  7. 关于flink的时间处理不正确的现象复现原因分析
  8. java基础-final
  9. 无IDE时,使用支持HTML5的浏览器作编辑器的方法
  10. 佛系前端面试题记录--第一周
  11. scala--模式匹配
  12. windows2003 序列号
  13. win10 + ubantu双系统 彻底删除Ubantu
  14. c语言棋盘光标怎么删除,删除光标前的字符按什么键
  15. mysql 表改名_MySQL库改名、表改名
  16. Python 玫瑰花绘制
  17. 开源项目推荐:主流RPC开源框架及知识科普
  18. 互联网金融概念股龙头有哪些
  19. python用 requests 模块从 Web 下载文件
  20. 【三国演义】——诸葛亮

热门文章

  1. Python,OpenCV骨架化图像并显示(skeletonize)
  2. opencv-mediapipe手部关键点识别
  3. LabVIEW OCR 实现车牌识别(实战篇—3)
  4. 基于Python的人脸自动戴口罩系统
  5. HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集
  6. TensorFlow(2)图(默认图与自定义图) TensorBoard可视化
  7. linux mud 游戏,快刀幻想mud文字传奇-快刀幻想mud神器兑换码-快刀幻想mud下载v1.80-Linux公社...
  8. 利用lua中的string.gsub来巧妙实现json中字段的正则替换
  9. 在Ubuntu 14.04 64bit上安装lua5.2
  10. SQLite3简单C++包装类源码示例