PyTorch的生态和模型部署

本文介绍了PyTorch的生态,包括torchvision、PyTorchVideo和torchtext的详细内容,以及如何进行PyTorch模型的部署,重点讲解了ONNX和ONNX Runtime在模型转换与推理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PyTorch的生态和模型部署

1. PyTorch生态

前几章,我们学习了PyTorch的基本使用、能够定义和修改自己的模型、常用的训练技巧和PyTorch的可视化。

PyTorch的强大,跟PyTorch的活跃的开源社区离不开关系,开源社区围绕PyTorch所生产的一些列工具包和程序,这些优秀的工具包极大地方便了PyTorch在特定领域的使用。比如:

  • TorchVision、TorchVideo:用于图片和视频处理
  • torchtext:用于自然语言处理
  • PyTorch Geometric:图卷积网络

接下来,会介绍PyTorch针对某个领域(图像、视频、文本等)的其中某一具代表性的工具包进行详细介绍,主要包括工具包的作者、所在机构、数据预处理工具、数据扩增、常用模型结构的预定义、预训练模型权重、常用损失函数、常用评测指标、封装好的训练&测试模块及可视化工具。

1.1 torchvision

1.1.1 torchvision简介

" The torchvision package consists of popular datasets, model architectures, and common image transformations for computer vision. "

其包括如下库:

  • torchvision.datasets:包含在计算机视觉中的常见数据集
  • torchvision.models:具体的预训练模型查看链接,可分为ClassificationSemantic SegmentationObject Detection、instance Segmentation and Keypoint DetectionVideo Classification
  • torchvision.transforms:针对图片进行一些数据预处理,如放大和缩小、水平或垂直翻转等,其相关操作参考链接,其实战可参考链接
  • torchvision.io:提供了视频、图片和文件的IO操作的功能,包括读取、写入、编解码处理操作。
    • 注:不同版本之间的torchvision.io有较大变化
    • 除了read_video()等方法,torchvision.io提供了一个细粒度的视频API torchvision.VideoReader(),需要安装ffmpeg然后源码重新编译torchvision
    • 使用Video相关API,最好按照PyAV库
  • torchvision.ops:提供了计算机视觉的特定操作,包括但不限于NMS、RolAlign、RolPool,可以参考这里
  • torchvision.utils:提供了一些可视化的方法,如将若干图片拼接、可视化检测和分割等效果,具体参考链接

1.2 PyTorchVideo

随着传播媒介和视频平台的发展,视频逐渐成伪新一代的主流媒体,使得视频相关的深度学习模型越来越受关注,但是针对视频的深度学习模型有许多缺点:

  • 计算资源耗费更多,没有高质量的model zoo
  • 数据集处理麻烦,没有很好的视频处理工具
  • 随着多模态的流行,亟需一个工具处理其他模态
  • 模型的部署优化问题

PyTorchVideo因此而生,提供了加速视频理解研究所需的可重用、模块化和高效的组件,它支持不同的深度学习视频组件,如视频模型、视频数据集和视频特定转换。其组件如下图:

在这里插入图片描述

对应的官方链接

1.2.1 PyTorch的主要部件和亮点

PyTorchVideo提供了model zoo,使得可以使用各种先进的预训练模型及其评判基准,其亮点如下:

  • 基于PyTorch:使用PyTorch构建,使得PyTorch生态系统组件的使用变得简单
  • Model Zoo:提供了包含I3D、R(2+1)D、SlowFast、X3D、MViT等SOTA模型的高质量model zoo,并且其model zoo与PyTorch Hub做了整合
  • 数据预处理和常见数据:支持Kinetics-400, Something-Something V2, Charades, Ava (v2.2), Epic Kitchen, HMDB51, UCF101, Domsev等主流数据集和相应的数据预处理,同时还支持randaug, augmix等数据增强trick。
  • 模块化设计:提供许多模块方便用户调用修改,在PyTorchVideo中具体来说包括data, transforms, layer, model, accelerator等模块,方便用户进行调用和读取。
  • 支持多模态:对多模态的支持包括了visual和audio,未来会支持更多模态,为多模态模型的发展提供支持。
  • 移动端部署优化:支持针对移动端模型的部署优化(使用前述的PyTorchVideo/accelerator模块),模型经过PyTorchVideo优化了最高达7倍的提速,并实现了第一个能实时跑在手机端的X3D模型(实验中可以实时跑在2018年的三星Galaxy S8上,具体请见
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值