自动摘要: 变更记录 |版本号|作者|发布日期|修订| ||||| |V1.0.0|@郑安帅|20231 ……..
变更记录
版本号 | 作者 | 发布日期 | 修订 |
---|---|---|---|
V1.0.0 | @郑安帅 | 2023-1-3 | |
V1.0.1 | @郑安帅 | 2022-11-23 | |
V1.0.2 | @郑安帅 | 2022-11-25 | |
V1.0.3 | @郑安帅 | 2022-12-1 | |
V1.1.3 | @郑安帅 | 2022-12-7 | |
V1.2.3 | @郑安帅 | 2023-1-3 | |
V1.3.0 | @sindre | 2023年3月17日 | 进行逻辑修正,整理 |
背景
- 使用pythran做generate_deploy.py的预处理,后处理的失败过程;
- 尝试使用pythran将python的numpy直接封装成C++的dll;
- generate_deploy.py,模型推理部分使用pytorch,预处理后处理部分需要对torsor进行操作。现使用onnx推理引擎,相关对tensor的操作已转换为对应的numpy实现,最终在python上onnx推理与torch结果对齐。
- 现目标为:将numpy对应操作转化为cpp对应操作,尝试使用pythran库,将基于numpy的预处理后处理操作封装成函数,打包为动态库供cpp调用。
优势
此库一些了解:
安装
windows/linux库安装:
1
pip insatll pythran
按照官方文档,尝试运行demo:
**注意: **这里的注释是必须要加的,注释规定了输入的参数类型,详情查看pythran的官方文档
- 命令行运行:
1
python test.py
- 报错截图:
3. 根据查看报错信息,**猜测需要C++的clang编译器**。
总结:
- 此demo在Linux系统上可以编译出so被cpp调用。
- 查阅官方文档得知,此库对windows的支持还在开发当中…
放弃原因:
不支持numpy的reshape(),后处理含有reshape操作。
对windows支持不好,甚至不支持。
参考资料:
pythran库链接: https://pythran.readthedocs.io/en/latest/MANUAL.htmlcsdn关于此库的一些介绍:https://blog.csdn.net/rgc_520_zyl/article/details/113185059?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167273444316800186549470%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=167273444316800186549470&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-113185059-null-null.142^v68^control,201^v4^add_ask,213^v2^t3_esquery_v2&utm_term=%E5%AE%89%E8%A3%85pythran-openblas%2C&spm=1018.2226.3001.4187