# KuiperInfer_Better **Repository Path**: cao_fx/KuiperInfer_Better ## Basic Information - **Project Name**: KuiperInfer_Better - **Description**: 受KuiperInfer启发,完全零自制深度学习推理框架,最终部署到Android中。 系统的应用C++、设计模式、编译器和AI框架基础知识,将各个知识点尽量分解到更细的粒度(1-2小时左右的编码工作量),从而更好的掌握上述基础知识。 注意:本项目License为MIT License,所有代码副本中都必须包含原作者、版权声明和许可声明。 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 20 - **Forks**: 3 - **Created**: 2023-01-28 - **Last Updated**: 2023-02-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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 | | ... | ... | ... |