摘要:
1 简介 截止至目前为止,在裸机设备上运行机器学习任务是比较困难的,其难点我认为主要集中在运行性能有限、跨设备难度高、跨框架难度高这两点上。在裸机上部署机器学习任务时,除了芯片产商自带的推理框架外,比较经典的跨设备框架就是 TFLite,但是 TFLite 也有其自己的缺点,那就是不能跨框架。TVM 阅读全文
posted @ 2024-11-29 18:30
Zheng-Bicheng
阅读(59)
评论(0)
推荐(0)
摘要:
1 新建并配置项目 1.1 新建项目 我这里想模拟 Cortex-M55 核心,因此选择 SSE-300-MPS3 由于是简单教程,我只想输出一个最简单的 Hello World,因此仅勾选串口相关的组件 这里还需要特殊勾选一下以下选项 1.2 配置Target Software Model 处选择 阅读全文
posted @ 2024-11-29 18:24
Zheng-Bicheng
阅读(123)
评论(0)
推荐(0)
摘要:
1 引言 在当今快速发展的机器学习领域,TVM已经成为了一个不可或缺的工具。尤其是MicroTVM,作为TVM的一个重要分支,它专注于在资源受限的微控制器上运行机器学习模型,这在物联网(IoT)和边缘计算的背景下显得尤为重要。MicroTVM的存在极大地推动了机器学习模型在更小、更省电的设备上的应用 阅读全文
posted @ 2024-11-29 18:19
Zheng-Bicheng
阅读(123)
评论(0)
推荐(0)
摘要:
1 简介 随着深度学习应用的广泛使用,量化模型作为一种有效的模型压缩技术,能够在保持模型精度的同时减少模型的计算和存储开销。本文将介绍如何在 TVM 上为 Paddle 深度学习框架中的量化模型提供解析支持。 2 量化方法 目前主流的的量化方法主要分为 QOperator 和 QDQ(Quantiz 阅读全文
posted @ 2024-11-29 18:10
Zheng-Bicheng
阅读(88)
评论(0)
推荐(0)
摘要:
1 简介 在深度学习领域,模型的部署是一个关键的环节。而在模型部署中,转换和优化模型以适配不同的硬件和框架是至关重要的。TVM 是一个优秀的深度学习模型优化和部署框架,它提供了丰富的接口和功能来实现模型的高效部署。然而,对于一些特定框架和模型格式,TVM 可能需要进行一些扩展和定制,以更好地支持。在 阅读全文
posted @ 2024-11-29 18:00
Zheng-Bicheng
阅读(36)
评论(0)
推荐(0)
摘要:
1 简介 elementwise_floordiv 算子在 int32/int64 的情况下直接转换成了 ONNX 中的 div 算子,由于 div 算子是普通除操作,而不是整除操作,因此无法通过 CI 的校验。 2 实现过程 原核心实现代码如下 void ElementWiseFloordivMa 阅读全文
posted @ 2024-11-29 17:48
Zheng-Bicheng
阅读(30)
评论(0)
推荐(0)
摘要:
1 简介 在 PaddlePaddle2.6 中,relu6 算子在 PaddleInference 上发生了变化,删除掉了 threshold 这个 Attr,因此我们需要想办法自行适配它。 2 适配过程 原解析 relu6 算子的核心代码如下: void Relu6Mapper::Opset7( 阅读全文
posted @ 2024-11-29 17:46
Zheng-Bicheng
阅读(35)
评论(0)
推荐(0)
摘要:
1 简介 在 PaddlePaddle2.6 中,swish 算子在 PaddleInference 上发生了变化,删除掉了 beta 这个 Attr,因此我们需要想办法自行适配它。 2 适配过程 原解析 swish 算子的核心代码如下: void SwishMapper::Opset7() { a 阅读全文
posted @ 2024-11-29 17:44
Zheng-Bicheng
阅读(60)
评论(0)
推荐(0)
摘要:
1 简介 原先的 prune_paddle_model.py 脚本只支持修改 Paddle 模型的输出节点,这里将 Paddle 相关API升级到 2.6.0,同时添加了对修改输出节点的支持。 2 核心代码 先读取模型,这没什么好说的,但是要注意的是,针对 PaddlePaddle2.6,load_ 阅读全文
posted @ 2024-11-29 17:41
Zheng-Bicheng
阅读(38)
评论(0)
推荐(0)
摘要:
1 简介 原先的 tools/paddle/infer_paddle_model_shape.py 脚本使用的是PaddlePaddle 2.5,这里将 Paddle 相关API升级到 2.6.0。 2 实现过程 Paddle2.6 和 Paddle2.5 的在推理模型输入 shape 上的差别主要 阅读全文
posted @ 2024-11-29 17:39
Zheng-Bicheng
阅读(182)
评论(0)
推荐(0)
摘要:
1 简介 在软件开发中, 项目构建方式的选择对项目的可维护性, 可扩展性及与其他工具的兼容性至关重要. 随着 Python 生态系统的进步, 使用 pyproject.toml 文件管理项目依赖和构建配置成为一种新兴趋势. 相较于 setup.py, pyproject.toml 采用 TOML 语 阅读全文
posted @ 2024-11-29 17:37
Zheng-Bicheng
阅读(172)
评论(0)
推荐(0)
摘要:
1 简介 Paddle2ONNX 此前一直使用手动编译所有版本的 Python 源码包再手动上传到 PyPI 的方式来分发发行版。很显然,这是一种极其低效的办法,本文介绍如何为 Paddle2ONNX 添加自动发包机制。 2 实现过程 Paddle2ONNX 的编译流程参考 onnx 的编译流程实现 阅读全文
posted @ 2024-11-29 17:24
Zheng-Bicheng
阅读(31)
评论(0)
推荐(0)
摘要:
1 简介 Roll 算子一般被用在 Swin 结构中,Paddle2ONNX 暂时不支持该算子,本教程介绍如何为 Paddle2ONNX 添加 Roll 算子。 2 实现过程 2.1 roll 算子简介 def roll(x, shifts, axis=None, name=None): """ R 阅读全文
posted @ 2024-11-29 17:15
Zheng-Bicheng
阅读(37)
评论(0)
推荐(0)
摘要:
1 简介 随着ONNX标准的不断更新,保持 Paddle2ONNX 与最新版本的兼容性显得尤为重要。本篇文章将详细介绍如何为 Paddle2ONNX 项目升级其依赖的 ONNX Opset 版本。 2 添加对 Opset 18 的支持 2.1 升级 ONNX 依赖库版本 支持 Opset 18 前我 阅读全文
posted @ 2024-11-29 17:05
Zheng-Bicheng
阅读(161)
评论(0)
推荐(0)
摘要:
1 简介 最近在浏览 Paddle2ONNX 的 Issues 时,我发现有用户需要让 Paddle2ONNX 支持导出的 ONNX 模型根据 Opset Version 自适应 IR Version 的功能。这个功能对于老的 Runtime 来说还是很重要的,于是我动手添加了这个功能,这里写一篇博 阅读全文
posted @ 2024-11-29 16:33
Zheng-Bicheng
阅读(316)
评论(0)
推荐(0)

浙公网安备 33010602011771号