3 Star 20 Fork 3

cao_fx / KuiperInfer_Better

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

KuiperInfer_Better

介绍

受KuiperInfer启发,完全零自制深度学习推理框架,最终部署到Android中。 系统的应用C++、设计模式、编译器和AI框架基础知识,将各个知识点尽量分解到更细的粒度(1-2小时左右的编码工作量),从而更好的掌握上述基础知识。

KuiperInfer: https://github.com/zjhellofss/KuiperInfer

注意

本项目License为MIT License,所有代码副本中都必须包含原作者、版权声明和许可声明。

大纲

  1. 实现一个图样图森破的推理框架居然可以这么简单?(Done)

  2. 再次认识推理框架的组成元素(Done)

  3. 创建Tensor

  4. 创建Op/Layer的基类

  5. 实现1个超简单的算子-Relu

  6. 实现1个复杂的算子-FC

  7. 是时候用计算图把算子串联起来

  8. 计算图打印

  9. 计算图接口设计

  10. 实现推理框架最简雏形

  11. 实现最简的分类测试

  12. 使用设计模式重构:Op

  13. 使用设计模式重构:计算图打印

  14. 实现几个相对复杂的算子(1)-Conv2D

  15. 实现几个相对复杂的算子(2)-DepthwiseConv2D

  16. 实现几个相对复杂的算子(3)-AveragePool2D

  17. 实现几个相对复杂的算子(4)-Squeeze

  18. 实现几个相对复杂的算子(5)-Softmax

  19. 是时候支持mobilenet了

  20. 手动构图有点复杂,是时候支持模型转换了

  21. 序列化和反序列的几个库

  22. 学会使用flatten buffer

  23. Parser tflite模型

  24. 需要加点排序

  25. tflite convertor

  26. mobilenet测试

  27. 尝试下Android中运行

  28. 为了支持更多的格式,可以重构下parser

  29. 支持TF冻结图的基本思路

  30. 学会使用protobuf

  31. 解析TF冻结图

  32. 创建硬件无关的优化Pass基类

  33. 增加1个简单Pass-删除算子

  34. 增加1个相对复杂Pass-Conv2D转DepthWise

xx. 使用neon优化算子

xx. 添加计算图切分功能

xx. 使用第三方CPU算子库

xx. 使用第三方GPU算子库

软件架构

软件架构说明(待补充)

安装教程

(待补充)

  1. xxxx
  2. xxxx
  3. xxxx

使用说明

(待补充)

  1. xxxx
  2. xxxx
  3. xxxx

参与贡献

(待补充)

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

参考推荐项目

参考项目 推荐理由 链接
OpenCV dnn OpenCV的推理模块,适配多种硬件后端(OpenVino、TIMVX、华为CANN) https://github.com/opencv/opencv/tree/4.x/modules/dnn
华为Ascend CANN ACL 内存安全和异常保护 https://gitee.com/cann/acl
TFLite 30亿+设备部署,丰富工具链和商用案例 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite
TVM 通过编译器方式思考和解决问题 https://github.com/apache/tvm
华为HiAI DDK 反例学习代表,可以学习一些反向用法(重复拼凑/内存安全/...解决不了issue就删除issue) https://gitee.com/huawei-hiai-foundation/hiai_ddk
... ... ...
MIT License Copyright (c) 2023 cao_fx Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

受KuiperInfer启发,完全零自制深度学习推理框架,最终部署到Android中。 系统的应用C++、设计模式、编译器和AI框架基础知识,将各个知识点尽量分解到更细的粒度(1-2小时左右的编码工作量),从而更好的掌握上述基础知识。 注意:本项目License为MIT License,所有代码副本中都必须包含原作者、版权声明和许可声明。 展开 收起
C++ 等 2 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C++
1
https://gitee.com/cao_fx/KuiperInfer_Better.git
git@gitee.com:cao_fx/KuiperInfer_Better.git
cao_fx
KuiperInfer_Better
KuiperInfer_Better
master

搜索帮助