0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Vitis AI优化器用户指南

Xilinx赛灵思官微 来源:Xilinx赛灵思官微 2023-03-29 09:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Vitis AIAMD 开发套件,用于在 AMD 硬件平台上进行 AI 推断。机器学习中的推断是计算密集型流程,需要大量存储器带宽以满足各种应用的低时延和高吞吐量要求。

Vitis AI Optimizer(优化器)支持对神经网络模型进行最优化。当前,Vitis AI 优化器仅包含一项工具,称为“pruner”(剪枝器)。Vitis AI 优化器用于移除神经网络中的冗余内核,从而减少推断的总体计算成本。由 Vitis AI 剪枝器所生成的剪枝后的模型随后由 Vitis AI 量化器进行量化,然后部署到 AMD FPGA、SoC 或 ACAP 器件。

c8fd2186-cdc5-11ed-bfe3-dac502259ad0.png

VAI优化器

本文档涵盖了以下设计进程:机器学习和数据研究——将机器学习模型从 PyTorch、TensorFlow 或其它热门框架导入 Vitis AI,然后对其有效性进行最优化和评估。本文档中适用于此设计进程的主题包括:

•第 2 章:剪枝

•第 3 章:处理 Vitis AI 优化器

由于版面有限,本文选取了剪枝章节中的部分内容进行分享。如果您希望获取完整版用户指南,请至文末扫描二维码下载完整版进行浏览。

剪枝

神经网络通常过度参数化,具有大量冗余。剪枝是消除冗余权重同时尽可能使准确度损失保持处于低位的进程。

c906333e-cdc5-11ed-bfe3-dac502259ad0.png

低精度剪枝和高精度剪枝

行业研究带来了多项有助于降低神经网络推断成本的技术。这些技术包括:

点击查看详细内容

c910fecc-cdc5-11ed-bfe3-dac502259ad0.png

c919ee74-cdc5-11ed-bfe3-dac502259ad0.png

c9289032-cdc5-11ed-bfe3-dac502259ad0.png

迭代剪枝与单步剪枝的对比

下表中显示了这两种方法的对比。

c952b11e-cdc5-11ed-bfe3-dac502259ad0.png

迭代剪枝

剪枝器旨在减少模型参数数量,同时尽可能降低准确度损失。这是通过迭代方式来完成的,如下图所示。剪枝导致准确度降低,重新训练可恢复准确度。剪枝随后重新训练即构成一次迭代。在剪枝的首次迭代中,输入模型是基线模型,并且已经过剪枝和精调。在后续迭代中,从先前迭代所获取的精调后的模型会变为新的基线。此进程通常会重复数次,直至获取期望的稀疏模型。迭代方法是必需的,因为在单次传递中无法在维持准确度的同时进行模型剪枝。如果一次迭代移除的参数过多,那么准确度损失可能过于剧烈,可能无法恢复。

利用迭代剪枝的进程,可以达到更高的剪枝率,同时模型性能不会出现显著损失。

c9675948-cdc5-11ed-bfe3-dac502259ad0.png

迭代剪枝

以下描述了迭代剪枝的 4 个主要阶段:

分析:对模型执行敏感度分析,判定最优剪枝策略。

剪枝:减少输入模型中的计算次数。

精调:重新训练已剪枝的模型以恢复准确度。

变换:生成含更低权重的密集模型。

c9730644-cdc5-11ed-bfe3-dac502259ad0.png

迭代剪枝工作流程

步骤1

分析原始基线模型。

步骤2

对模型进行剪枝。

步骤3

对剪枝后的模型进行精调。

步骤4

多次重复步骤 2 和 3,直至在准确度与稀疏度之间达成期望的平衡。

步骤5

将剪枝后的稀疏模型变换为最终密集加密的模型,以供在 Vitis AI 量化器中使用。

单步剪枝

单步剪枝会实现EagleEye1算法。它仅通过采用了一个简单而又高效的评估组件,就得以在不同的已剪枝模型及其对应精调准确度之间引入强大的正关联,这个组件名为自适应批量归一化。它使您无需实际进行模型精调,即可获取可能达成的准确度最高的子网络。简而言之,单步剪枝方法会搜索一群满足所需模型大小的子网络(即,生成的剪枝后模型),并选择其中最有潜力的子网络。随后,通过对所选子网络进行重新训练来恢复准确度。

剪枝步骤如下所示:
1 搜索满足所需剪枝率的子网络。
2 从一群具有评估组件的子网络中选择潜在网络。
3 对剪枝后的模型进行精调。

c98836cc-cdc5-11ed-bfe3-dac502259ad0.png

单步剪枝工作流程

注释:

1.Bailin Li et al., EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning, arXiv:2007.02491

剪枝方法的选择指南

Vitis AI 优化器中为 PyTorch 提供了 3 种剪枝方法。请参阅以下决策树以选择适合您的网络的方法。

c9933658-cdc5-11ed-bfe3-dac502259ad0.png

在PyTorch中选择剪枝方法的流程图

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4827

    浏览量

    106773
  • 模型
    +关注

    关注

    1

    文章

    3648

    浏览量

    51700

原文标题:Vitis AI 优化器用户指南

文章出处:【微信号:赛灵思,微信公众号:Xilinx赛灵思官微】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AMD Vitis AI 5.1测试版现已开放下载

    AMD Vitis AI 5.1全新发布——新增了对 AMD Versal AI Edge 系列神经网络处理单元( NPU )的支持。Vitis A
    的头像 发表于 11-08 09:24 976次阅读

    AMD Vitis AI 5.1测试版发布

    AMD Vitis AI 5.1全新发布——新增了对 AMD Versal AI Edge 系列神经网络处理单元 (NPU) 的支持。Vitis A
    的头像 发表于 10-31 12:46 481次阅读

    适用于PIC MCU的MPLAB XC8 C编译器用户指南

    电子发烧友网站提供《适用于PIC MCU的MPLAB XC8 C编译器用户指南.pdf》资料免费下载
    发表于 01-22 16:45 0次下载
    适用于PIC MCU的MPLAB XC8 C编译<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    使用AMD Vitis进行嵌入式设计开发用户指南

    Zynq MPSoC 和 AMD Alveo 数据中心加速器卡)为目标的异构嵌入式应用。 Vitis 工具包括: C++ 编译器、库和本征函数,适用于 AI 引擎和可编程逻辑( PL ) 适用于 Arm
    的头像 发表于 01-08 09:33 2161次阅读
    使用AMD <b class='flag-5'>Vitis</b>进行嵌入式设计开发<b class='flag-5'>用户</b><b class='flag-5'>指南</b>

    TLV803EA29DPW-EVM 4针电压监控器用户指南

    电子发烧友网站提供《TLV803EA29DPW-EVM 4针电压监控器用户指南.pdf》资料免费下载
    发表于 01-02 15:48 0次下载
    TLV803EA29DPW-EVM 4针电压监控<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    TPS3840EVM电压监控器用户指南

    电子发烧友网站提供《TPS3840EVM电压监控器用户指南.pdf》资料免费下载
    发表于 12-24 15:35 0次下载
    TPS3840EVM电压监控<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    TPS659118 66AK2G02处理器用户指南

    电子发烧友网站提供《TPS659118 66AK2G02处理器用户指南.pdf》资料免费下载
    发表于 12-23 14:40 0次下载
    TPS659118 66AK2G02处理<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    带EQ和2频段DRC的25W数字输入放大器用户指南

    电子发烧友网站提供《带EQ和2频段DRC的25W数字输入放大器用户指南.pdf》资料免费下载
    发表于 12-23 14:30 1次下载
    带EQ和2频段DRC的25W数字输入放大<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    双向DC-DC转换器用户指南

    电子发烧友网站提供《双向DC-DC转换器用户指南.pdf》资料免费下载
    发表于 12-21 11:03 2次下载
    双向DC-DC转换<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    UCC39002高级负载共享控制器用户指南

    电子发烧友网站提供《UCC39002高级负载共享控制器用户指南.pdf》资料免费下载
    发表于 12-21 09:41 3次下载
    UCC39002高级负载共享控制<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    UCC28019A EVM 350W PFC转换器用户指南

    电子发烧友网站提供《UCC28019A EVM 350W PFC转换器用户指南.pdf》资料免费下载
    发表于 12-20 15:43 0次下载
    UCC28019A EVM 350W PFC转换<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    TMS320DM644x DMSoC DDR2内存控制器用户指南

    电子发烧友网站提供《TMS320DM644x DMSoC DDR2内存控制器用户指南.pdf》资料免费下载
    发表于 12-16 10:27 0次下载
    TMS320DM644x DMSoC DDR2内存控制<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    TMS320DM644x DMSoC ATA控制器用户指南

    电子发烧友网站提供《TMS320DM644x DMSoC ATA控制器用户指南.pdf》资料免费下载
    发表于 12-16 10:17 0次下载
    TMS320DM644x DMSoC ATA控制<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    TMS320C645x DSP 64位定时器用户指南

    电子发烧友网站提供《TMS320C645x DSP 64位定时器用户指南.pdf》资料免费下载
    发表于 12-16 10:14 0次下载
    TMS320C645x DSP 64位定时<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>

    120Vac可控硅调光LED驱动器用户指南

    电子发烧友网站提供《120Vac可控硅调光LED驱动器用户指南.pdf》资料免费下载
    发表于 12-09 16:05 0次下载
    120Vac可控硅调光LED驱动<b class='flag-5'>器用户</b><b class='flag-5'>指南</b>