Vitis AI 使用 VAI_Q_PYTORCH 工具

目录

1. 简介

2. 资料汇总

3. 示例解释

3.1 快速上手示例

4. 总结


1. 简介

vai_q_pytorch 是 Vitis AI Quantizer for Pytorch 的缩写,主要作用是优化神经网络模型。它是 Vitis AI 平台的一部分,专注于神经网络的深度压缩。

vai_q_pytorch 的作用包括:

  • 解析计算图:从 Pytorch 框架中解析神经网络的计算图,并转换为中间表示(IR)。
  • 修改计算图:基于 IR 进行计算图的修改,包括剪枝、量化和图优化。
  • 部署:将修改后的 IR 部署到不同的平台上,如 DPU(深度学习处理单元)和 Xilinx AI 引擎。
  • 重新组装:将修改后的计算图重新组装回 Pytorch,以便继续使用 Pytorch 的预处理、后处理和分布式系统等功能。

Supported and Limitation

  • Python
    • Support version 3.6 ~ 3.7.
  • Pytorch
    • Support version 1.2 ~ 1.10.
    • QAT does NOT work with pytorch 1.1~1.3.
    • Data Parallelism is NOT supported.
  • Models
    • Classification Models in Torchvision.
    • Pytorch models in Xilinx Modelzoo.
    • LSTM models (standard LSTM and customized LSTM)

2. 资料汇总

查看 Python 版本:python -V

(vitis-ai-pytorch) Vitis-AI /workspace > python -V
Python 3.7.12

查看 PyTorch 版本:pip show torch

(vitis-ai-pytorch) Vitis-AI /workspace > pip show torch
Name: torch
Version: 1.10.1
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org/
Author: PyTorch Team
Author-email: packages@pytorch.org
License: BSD-3
Location: /opt/vitis_ai/conda/envs/vitis-ai-pytorch/lib/python3.7/site-packages
Requires: typing_extensions
Required-by: torchvision

查看 PyTorch 版本:pip show torch

pip show torchvision
Name: torchvision
Version: 0.11.2+cpu

Python 的主流版本主要包括:

Python 3.x:这是当前的主要开发版本,持续更新和维护。Python 3.x系列自2008年发布以来,已经经历了多个小版本更新。常见的小版本包括:
Python 3.6:引入了格式化字符串、异步生成器等特性。
Python 3.7:添加了数据类(dataclasses)、上下文变量(contextvars)等。
Python 3.8:引入了海象运算符(walrus operator)和位置参数的语法。
Python 3.9:增加了字典合并运算符和类型提示的增强。
Python 3.10:引入了结构模式匹配(structural pattern matching)等新特性。
Python 3.11:专注于性能提升,许多内置函数和模块进行了优化。
Python 3.12:继续进行性能改进和语言特性的增强。

PyTorch 的主流版本包括以下几个:

2.x 系列:最新的稳定版本是 2.3.01,还有 2.2.0、2.1.0 等。
1.x 系列:包括 1.13、1.12、1.11 等版本。
0.x 系列:早期版本如 0.4.1、0.3.1 等。

3. 示例解释

3.1 快速上手示例

将 example/resnet18_quant.py 复制到 Docker 环境中。

下载预训练的 Resnet18 模型:

wget https://download.pytorch.org/models/resnet18-5c106cde.pth -O resnet18.pth

准备Imagenet验证图像。

修改 resnet18_quant.py 中的默认 data_dir 和 model_dir。

[可选] 评估浮点模型:

python resnet18_quant.py --quant_mode float --inspect

进行量化,使用验证数据的子集(200张图像)进行校准。由于我们处于量化校准过程中,显示的损失和准确度是没有意义的:

python resnet18_quant.py --quant_mode calib --subset_len 200

评估量化模型:

python resnet18_quant.py --quant_mode test

导出xmodel(或onnx):

python resnet18_quant.py --quant_mode test --subset_len 1 --batch_size 1 --deploy

4. 总结

本文分享了 vai_q_pytorch 的功能与应用,该工具是 Vitis AI Quantizer for PyTorch 的缩写,旨在优化深度学习模型,尤其是通过深度压缩技术提高模型的性能与效率。作为 Vitis AI 平台的一部分,vai_q_pytorch 能够解析和修改 PyTorch 框架中的计算图,将其转换为中间表示(IR),并支持剪枝、量化及图优化等多种操作。处理后的 IR 可以部署到多种平台,如深度学习处理单元(DPU)和 Xilinx AI 引擎,用户也可以将修改后的计算图重新整合回 PyTorch,以利用其强大的预处理、后处理和分布式系统功能。

该工具支持 Python 3.6 至 3.7 版本以及 PyTorch 1.2 至 1.10 的模型,包括分类模型、Xilinx Modelzoo 中的模型以及标准和定制的 LSTM 模型。值得注意的是,QAT(量化感知训练)在 PyTorch 1.1 至 1.3 版本中不支持,且不支持数据并行性。

在实际操作中,用户可以通过简单的命令行指令进行模型的量化与评估。下载预训练的 ResNet18 模型并进行参数调整后,用户能够快速上手进行模型的量化校准和测试,最终导出 xmodel 或 ONNX 格式文件。这一系列流程为深度学习模型的优化提供了高效、便捷的解决方案,助力提升模型在不同硬件平台上的运行效率与性能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值