-
Notifications
You must be signed in to change notification settings - Fork 5.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
【PaddlePaddle Hackathon 4】生态伙伴开源贡献任务合集 #50632
Comments
您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网API文档、常见问题、历史Issue、AI社区来寻求解答。祝您生活愉快~ Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the API,FAQ,Github Issue and AI community to get the answer.Have a nice day! |
您好 这个题目经过OpenVINO确认,确实已经实现了,现在已经替换为另一个题目,请查看。 |
Great, Thanks! |
Task No.205:为OpenVINO notebook新增demo示例 的RFC提交模板为: |
Openvino Arm TVM |
【PaddlePaddle Hackathon 4】生态伙伴开源贡献任务合集
(此 ISSUE 为 PaddlePaddle Hackathon 第四期活动的任务 ISSUE,更多详见 【PaddlePaddle Hackathon 第四期】任务总览)
注:开发请参考 贡献指南,任务列表如下,其他说明事项在任务列表后:
No.205:为OpenVINO notebook新增demo示例
技术标签:深度学习框架,Python,OpenVINO
任务难度:进阶
详细描述:作为深度学习工具套件,OpenVINO可以被广泛应用于不同的应用场景,实现AI模型的推理部署,为此我们也想收集更多基于PaddlePaddle模型所打造的优秀应用案例,丰富示例仓库。
在这个任务中,你需要在OpenVINO notebook仓库新增一个notebook示例。本次任务评估将分为两个阶段,在第一阶段中,开发者需要提供一份RFC(附参考模板),用来描述本次任务的设计方案; 在第二阶段中,我们将从第一阶段提交的结果中,挑选出2份比较优秀的方案,并请相对应的开发者根据自己的方案提交PR。
提交内容**:**
1)以issue的形式进行提交
2)递交地址为https://github.com/openvinotoolkit/openvino_notebooks/issues
3)需要标题处打上【PaddlePaddle Hackathon 4】字样
4)RFC语言不做强制要求
1)应用场景与现有notebook demo不重复
2)该示例中需要使用最新版本的openvino完成所有模型的推理部署
1)该示例在真实场景下是否具有实际应用价值
2)该示例的流程逻辑是否清晰
3)运行结果是否符合预期
第二阶段:PR代码提交
https://github.com/openvinotoolkit/openvino_notebooks
4.开发者需要及时根据review的结果进行PR修改
参考示例:
*PaddleDetection
1)行为识别(打架,抽烟,接打电话 )
2)车辆追踪
3)高空抛物
4)产线上包装盒内产品计数
*PaddleSeg
1)背景去除与替换
*PaddleNLP
1)为申请大学的学生写推荐信(推荐使用ERINE3.0 tiny)
*PaddleGAN
1)人脸表情迁移
*PaddleOCR
1)古籍电子化保存
*PaddleSpeech
1)口录医嘱(推荐使用U2++)
2)会议,视频电话等背景噪音去除
技术要求**:**
参考文档:
https://github.com/openvinotoolkit/openvino_notebooks
https://github.com/openvinotoolkit/openvino_notebooks/blob/main/CONTRIBUTING.md
add 203-meter-reader openvinotoolkit/openvino_notebooks#547
Zhuo notebook submission openvinotoolkit/openvino_notebooks#497
No.206:为 OpenVINO 实现 Paddle 算子 flip 转换
技术标签:深度学习框架,C++,Python,OpenVINO
任务难度:进阶
详细描述:每个框架都有自己的模型和算子表达。OpenVINO对PaddlePaddle的支持需要从Paddle的算子映射转换到OpenVINO的算子。在这个过程中,我们将熟悉深度学习神经网络的算子表达和计算。
在这个任务中,你需要为OpenVINO实现Paddle算子flip转换。该算子用于沿指定轴反转 n 维 Tensor,算子说明可参考:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/flip_cn.html#flip。该任务中的算子难度较高,Paddle2ONNX展示了如何将flip映射到ONNX的算子: https://github.com/PaddlePaddle/Paddle2ONNX/blob/develop/paddle2onnx/legacy/op_mapper/tensor.py#L2018。我们也可以用同样的方式将其映射到OpenVINO的算子。具体做法请参考https://github.com/openvinotoolkit/openvino/pull/11731
提交内容**:**
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/topk_cn.html#topk
技术要求**:**
参考文档:
OpenVINO算子库文档:
https://github.com/openvinotoolkit/openvino/blob/master/docs/ops/opset10.md
OpenVINO算子参考实现:
https://github.com/openvinotoolkit/openvino/tree/master/src/core/reference/include/ngraph/runtime/reference
PaddlePaddle算子库文档:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
PaddlePaddle算子参考实现:
https://github.com/PaddlePaddle/Paddle/tree/develop/python/paddle/fluid/tests/unittests
Paddle2ONNX算子映射参考代码
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/legacy/op_mapper
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper
可以先生成测试模型用Paddle VisualDL查看paddle算子的输入输出以及属性: https://www.paddlepaddle.org.cn/paddle/visualdl/demo/graph
OpenVINO源码编译方法:
参考:https://github.com/openvinotoolkit/openvino/wiki
$ git clone https://github.com/openvinotoolkit/openvino.git
$ cd openvino
$ git submodule update --init --recursive
$ chmod +x install_build_dependencies.sh
$./install_build_dependencies.sh
$ export OPENVINO_BASEDIR=
pwd
$ mkdir build
$ cd build
$ cmake
-DCMAKE_BUILD_TYPE= Release -DCMAKE_INSTALL_PREFIX="${OPENVINO_BASEDIR}/openvino_dist"
-DPYTHON_EXECUTABLE=$(which python3)
-DENABLE_MYRIAD=OFF
-DENABLE_VPU=OFF
-DENABLE_PYTHON=ON
-DNGRAPH_PYTHON_BUILD_ENABLE=ON
-DENABLE_DEBUG_CAPS=ON
-DENABLE_TESTS=ON
..
$ make -j$(nproc); make install
单侧测试方法:
$ cd bin/intel64/Release
$ ./paddle_tests --gtest_filter=PaddleFuzzyOpTest/FrontEndFuzzyOpTest.testOpFuzzy/*
No.207:为 OpenVINO 实现 Paddle 算子 linspace 转换
技术标签:深度学习框架,C++,Python,OpenVINO
任务难度:进阶
详细描述:每个框架都有自己的模型和算子表达。OpenVINO对PaddlePaddle的支持需要从Paddle的算子映射转换到OpenVINO的算子。在这个过程中,我们将熟悉深度学习神经网络的算子表达和计算。
在这个任务中,你需要为OpenVINO实现Paddle算子 linspace转换。该OP用于返回一个 Tensor,Tensor 的值为在区间 start 和 stop 上均匀间隔的 num 个值,输出 Tensor 的长度为 num。算子说明可参考:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/linspace_cn.html#linspace
该任务中的算子难度较高。Paddle2ONNX展示了如何将linspace映射到ONNX的算子: https://github.com/PaddlePaddle/Paddle2ONNX/blob/develop/paddle2onnx/legacy/op_mapper/tensor.py#L13840。我们也可以用同样的方式将其映射到OpenVINO的算子。具体做法请参考https://github.com/openvinotoolkit/openvino/pull/11731
提交内容**:**
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/topk_cn.html#topk
技术要求**:**
参考文档:
OpenVINO算子库文档:
https://github.com/openvinotoolkit/openvino/blob/master/docs/ops/opset10.md
OpenVINO算子参考实现:
https://github.com/openvinotoolkit/openvino/tree/master/src/core/reference/include/ngraph/runtime/reference
PaddlePaddle算子库文档:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
PaddlePaddle算子参考实现:
https://github.com/PaddlePaddle/Paddle/tree/develop/python/paddle/fluid/tests/unittests
Paddle2ONNX算子映射参考代码
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/legacy/op_mapper
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper
可以先生成测试模型用Paddle VisualDL查看paddle算子的输入输出以及属性: https://www.paddlepaddle.org.cn/paddle/visualdl/demo/graph
OpenVINO源码编译方法:
参考:https://github.com/openvinotoolkit/openvino/wiki
$ git clone https://github.com/openvinotoolkit/openvino.git
$ cd openvino
$ git submodule update --init --recursive
$ chmod +x install_build_dependencies.sh
$./install_build_dependencies.sh
$ export OPENVINO_BASEDIR=
pwd
$ mkdir build
$ cd build
$ cmake
-DCMAKE_BUILD_TYPE= Release -DCMAKE_INSTALL_PREFIX="${OPENVINO_BASEDIR}/openvino_dist"
-DPYTHON_EXECUTABLE=$(which python3)
-DENABLE_MYRIAD=OFF
-DENABLE_VPU=OFF
-DENABLE_PYTHON=ON
-DNGRAPH_PYTHON_BUILD_ENABLE=ON
-DENABLE_DEBUG_CAPS=ON
-DENABLE_TESTS=ON
..
$ make -j$(nproc); make install
单侧测试方法:
$ cd bin/intel64/Release
$ ./paddle_tests --gtest_filter=PaddleFuzzyOpTest/FrontEndFuzzyOpTest.testOpFuzzy/*
No.208:为 OpenVINO 实现 Paddle 算子 set_value 转换
技术标签:深度学习框架,C++,Python,OpenVINO
任务难度:进阶
详细描述:每个框架都有自己的模型和算子表达。OpenVINO对PaddlePaddle的支持需要从Paddle的算子映射转换到OpenVINO的算子。在这个过程中,我们将熟悉深度学习神经网络的算子表达和计算。
在这个任务中,你需要为OpenVINO实现Paddle算子 set_value转换,该OP用于将输入tensor中的指定片段的数据进行赋值, Paddle官方并未提供该OP的文档说明,算子复现方法可参考https://github.com/PaddlePaddle/Paddle3D/blob/develop/paddle3d/models/heads/dense_heads/petr_head.py#L663,此外PaddleStructure中的表格识别模型也会应用到该算子https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/ppstructure/docs/models_list_en.md#22-table-recognition。该任务中的算子难度较高。Paddle2ONNX展示了如何将set_value映射到ONNX的算子: https://github.com/PaddlePaddle/Paddle2ONNX/blob/develop/paddle2onnx/legacy/op_mapper/tensor.py#L26。我们也可以用同样的方式将其映射到OpenVINO的算子。具体做法请参考https://github.com/openvinotoolkit/openvino/pull/11731
提交内容**:**
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/topk_cn.html#topk
技术要求**:**
参考文档:
OpenVINO算子库文档:
https://github.com/openvinotoolkit/openvino/blob/master/docs/ops/opset10.md
OpenVINO算子参考实现:
https://github.com/openvinotoolkit/openvino/tree/master/src/core/reference/include/ngraph/runtime/reference
PaddlePaddle算子库文档:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
PaddlePaddle算子参考实现:
https://github.com/PaddlePaddle/Paddle/tree/develop/python/paddle/fluid/tests/unittests
Paddle2ONNX算子映射参考代码
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/legacy/op_mapper
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper
可以先生成测试模型用Paddle VisualDL查看paddle算子的输入输出以及属性: https://www.paddlepaddle.org.cn/paddle/visualdl/demo/graph
OpenVINO源码编译方法:
参考:https://github.com/openvinotoolkit/openvino/wiki
$ git clone https://github.com/openvinotoolkit/openvino.git
$ cd openvino
$ git submodule update --init --recursive
$ chmod +x install_build_dependencies.sh
$./install_build_dependencies.sh
$ export OPENVINO_BASEDIR=
pwd
$ mkdir build
$ cd build
$ cmake
-DCMAKE_BUILD_TYPE= Release -DCMAKE_INSTALL_PREFIX="${OPENVINO_BASEDIR}/openvino_dist"
-DPYTHON_EXECUTABLE=$(which python3)
-DENABLE_MYRIAD=OFF
-DENABLE_VPU=OFF
-DENABLE_PYTHON=ON
-DNGRAPH_PYTHON_BUILD_ENABLE=ON
-DENABLE_DEBUG_CAPS=ON
-DENABLE_TESTS=ON
..
$ make -j$(nproc); make install
单侧测试方法:
$ cd bin/intel64/Release
$ ./paddle_tests --gtest_filter=PaddleFuzzyOpTest/FrontEndFuzzyOpTest.testOpFuzzy/*
No.209:为 OpenVINO 实现 Paddle 算子 silu 转换
技术标签:深度学习框架,C++,Python,OpenVINO
任务难度:基础
详细描述:每个框架都有自己的模型和算子表达。OpenVINO对PaddlePaddle的支持需要从Paddle的算子映射转换到OpenVINO的算子。在这个过程中,我们将熟悉深度学习神经网络的算子表达和计算。
在这个任务中,你需要为OpenVINO实现Paddle算子 silu 转换,该算子为激活层算子。具体做法请参考Top k v2 openvinotoolkit/openvino#11731
提交内容**:**
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/topk_cn.html#topk
技术要求**:**
参考文档:
OpenVINO算子库文档:
https://github.com/openvinotoolkit/openvino/blob/master/docs/ops/opset10.md
OpenVINO算子参考实现:
https://github.com/openvinotoolkit/openvino/tree/master/src/core/reference/include/ngraph/runtime/reference
PaddlePaddle算子库文档:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
PaddlePaddle算子参考实现:
https://github.com/PaddlePaddle/Paddle/tree/develop/python/paddle/fluid/tests/unittests
Paddle2ONNX算子映射参考代码
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/legacy/op_mapper
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper
可以先生成测试模型用Paddle VisualDL查看paddle算子的输入输出以及属性: https://www.paddlepaddle.org.cn/paddle/visualdl/demo/graph
OpenVINO源码编译方法:
参考:https://github.com/openvinotoolkit/openvino/wiki
$ git clone https://github.com/openvinotoolkit/openvino.git
$ cd openvino
$ git submodule update --init --recursive
$ chmod +x install_build_dependencies.sh
$./install_build_dependencies.sh
$ export OPENVINO_BASEDIR=
pwd
$ mkdir build
$ cd build
$ cmake
-DCMAKE_BUILD_TYPE= Release -DCMAKE_INSTALL_PREFIX="${OPENVINO_BASEDIR}/openvino_dist"
-DPYTHON_EXECUTABLE=$(which python3)
-DENABLE_MYRIAD=OFF
-DENABLE_VPU=OFF
-DENABLE_PYTHON=ON
-DNGRAPH_PYTHON_BUILD_ENABLE=ON
-DENABLE_DEBUG_CAPS=ON
-DENABLE_TESTS=ON
..
$ make -j$(nproc); make install
单侧测试方法:
$ cd bin/intel64/Release
$ ./paddle_tests --gtest_filter=PaddleFuzzyOpTest/FrontEndFuzzyOpTest.testOpFuzzy/*
No.210:为 OpenVINO 实现 Paddle 算子one_hot_v2 转换
技术标签:深度学习框架,C++,Python,OpenVINO
任务难度:基础
详细描述:每个框架都有自己的模型和算子表达。OpenVINO对PaddlePaddle的支持需要从Paddle的算子映射转换到OpenVINO的算子。在这个过程中,我们将熟悉深度学习神经网络的算子表达和计算。
在这个任务中,你需要为OpenVINO实现Paddle算子 one_hot_v2 转换,该算子将输入'x'中的每个 id 转换为一个 one-hot 向量。具体做法请参考Top k v2 openvinotoolkit/openvino#11731
提交内容**:**
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/topk_cn.html#topk
技术要求**:**
参考文档:
OpenVINO算子库文档:
https://github.com/openvinotoolkit/openvino/blob/master/docs/ops/opset10.md
OpenVINO算子参考实现:
https://github.com/openvinotoolkit/openvino/tree/master/src/core/reference/include/ngraph/runtime/reference
PaddlePaddle算子库文档:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
PaddlePaddle算子参考实现:
https://github.com/PaddlePaddle/Paddle/tree/develop/python/paddle/fluid/tests/unittests
Paddle2ONNX算子映射参考代码
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/legacy/op_mapper
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper
可以先生成测试模型用Paddle VisualDL查看paddle算子的输入输出以及属性: https://www.paddlepaddle.org.cn/paddle/visualdl/demo/graph
OpenVINO源码编译方法:
参考:https://github.com/openvinotoolkit/openvino/wiki
$ git clone https://github.com/openvinotoolkit/openvino.git
$ cd openvino
$ git submodule update --init --recursive
$ chmod +x install_build_dependencies.sh
$./install_build_dependencies.sh
$ export OPENVINO_BASEDIR=
pwd
$ mkdir build
$ cd build
$ cmake
-DCMAKE_BUILD_TYPE= Release -DCMAKE_INSTALL_PREFIX="${OPENVINO_BASEDIR}/openvino_dist"
-DPYTHON_EXECUTABLE=$(which python3)
-DENABLE_MYRIAD=OFF
-DENABLE_VPU=OFF
-DENABLE_PYTHON=ON
-DNGRAPH_PYTHON_BUILD_ENABLE=ON
-DENABLE_DEBUG_CAPS=ON
-DENABLE_TESTS=ON
..
$ make -j$(nproc); make install
单侧测试方法:
$ cd bin/intel64/Release
$ ./paddle_tests --gtest_filter=PaddleFuzzyOpTest/FrontEndFuzzyOpTest.testOpFuzzy/*
No.211:为 OpenVINO 实现 Paddle 算子softshrink 转换
技术标签:深度学习框架,C++,Python,OpenVINO
任务难度:基础
详细描述:每个框架都有自己的模型和算子表达。OpenVINO对PaddlePaddle的支持需要从Paddle的算子映射转换到OpenVINO的算子。在这个过程中,我们将熟悉深度学习神经网络的算子表达和计算。
在这个任务中,你需要为OpenVINO实现Paddle算子 softshrink 转换,该算子为激活层算子。具体做法请参考Top k v2 openvinotoolkit/openvino#11731
提交内容**:**
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/topk_cn.html#topk
技术要求**:**
参考文档:
OpenVINO算子库文档:
https://github.com/openvinotoolkit/openvino/blob/master/docs/ops/opset10.md
OpenVINO算子参考实现:
https://github.com/openvinotoolkit/openvino/tree/master/src/core/reference/include/ngraph/runtime/reference
PaddlePaddle算子库文档:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
PaddlePaddle算子参考实现:
https://github.com/PaddlePaddle/Paddle/tree/develop/python/paddle/fluid/tests/unittests
Paddle2ONNX算子映射参考代码
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/legacy/op_mapper
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper
可以先生成测试模型用Paddle VisualDL查看paddle算子的输入输出以及属性: https://www.paddlepaddle.org.cn/paddle/visualdl/demo/graph
OpenVINO源码编译方法:
参考:https://github.com/openvinotoolkit/openvino/wiki
$ git clone https://github.com/openvinotoolkit/openvino.git
$ cd openvino
$ git submodule update --init --recursive
$ chmod +x install_build_dependencies.sh
$./install_build_dependencies.sh
$ export OPENVINO_BASEDIR=
pwd
$ mkdir build
$ cd build
$ cmake
-DCMAKE_BUILD_TYPE= Release -DCMAKE_INSTALL_PREFIX="${OPENVINO_BASEDIR}/openvino_dist"
-DPYTHON_EXECUTABLE=$(which python3)
-DENABLE_MYRIAD=OFF
-DENABLE_VPU=OFF
-DENABLE_PYTHON=ON
-DNGRAPH_PYTHON_BUILD_ENABLE=ON
-DENABLE_DEBUG_CAPS=ON
-DENABLE_TESTS=ON
..
$ make -j$(nproc); make install
单侧测试方法:
$ cd bin/intel64/Release
$ ./paddle_tests --gtest_filter=PaddleFuzzyOpTest/FrontEndFuzzyOpTest.testOpFuzzy/*
No.212:为 OpenVINO 实现 Paddle 算子 grid_sampler 转换
技术标签:深度学习框架,C++,Python,OpenVINO
任务难度:基础
详细描述:每个框架都有自己的模型和算子表达。OpenVINO对PaddlePaddle的支持需要从Paddle的算子映射转换到OpenVINO的算子。在这个过程中,我们将熟悉深度学习神经网络的算子表达和计算。
在这个任务中,你需要为OpenVINO实现Paddle算子 grid_sampler转换,该OP基于 flow field 网格的对输入 X 进行双线性插值采样。具体做法请参考openvinotoolkit/openvino#11731
提交内容**:**
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/topk_cn.html#topk
技术要求**:**
参考文档:
OpenVINO算子库文档:
https://github.com/openvinotoolkit/openvino/blob/master/docs/ops/opset10.md
OpenVINO算子参考实现:
https://github.com/openvinotoolkit/openvino/tree/master/src/core/reference/include/ngraph/runtime/reference
PaddlePaddle算子库文档:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
PaddlePaddle算子参考实现:
https://github.com/PaddlePaddle/Paddle/tree/develop/python/paddle/fluid/tests/unittests
Paddle2ONNX算子映射参考代码
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/legacy/op_mapper
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper
可以先生成测试模型用Paddle VisualDL查看paddle算子的输入输出以及属性: https://www.paddlepaddle.org.cn/paddle/visualdl/demo/graph
OpenVINO源码编译方法:
参考:https://github.com/openvinotoolkit/openvino/wiki
$ git clone https://github.com/openvinotoolkit/openvino.git
$ cd openvino
$ git submodule update --init --recursive
$ chmod +x install_build_dependencies.sh
$./install_build_dependencies.sh
$ export OPENVINO_BASEDIR=
pwd
$ mkdir build
$ cd build
$ cmake
-DCMAKE_BUILD_TYPE= Release -DCMAKE_INSTALL_PREFIX="${OPENVINO_BASEDIR}/openvino_dist"
-DPYTHON_EXECUTABLE=$(which python3)
-DENABLE_MYRIAD=OFF
-DENABLE_VPU=OFF
-DENABLE_PYTHON=ON
-DNGRAPH_PYTHON_BUILD_ENABLE=ON
-DENABLE_DEBUG_CAPS=ON
-DENABLE_TESTS=ON
..
$ make -j$(nproc); make install
单侧测试方法:
$ cd bin/intel64/Release
$ ./paddle_tests --gtest_filter=PaddleFuzzyOpTest/FrontEndFuzzyOpTest.testOpFuzzy/*
No.213:为 OpenVINO 实现 Paddle 算子index_select转换
技术标签:深度学习框架,C++,Python,OpenVINO
任务难度:基础
详细描述:每个框架都有自己的模型和算子表达。OpenVINO对PaddlePaddle的支持需要从Paddle的算子映射转换到OpenVINO的算子。在这个过程中,我们将熟悉深度学习神经网络的算子表达和计算。
在这个任务中,你需要为OpenVINO实现Paddle算子 index_select转换,该OP沿着指定轴 axis 对输入 x 进行索引,取 index 中指定的相应项,创建并返回到一个新的 Tensor。具体做法请参考Top k v2 openvinotoolkit/openvino#11731
提交内容**:**
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/topk_cn.html#topk
技术要求**:**
参考文档:
OpenVINO算子库文档:
https://github.com/openvinotoolkit/openvino/blob/master/docs/ops/opset10.md
OpenVINO算子参考实现:
https://github.com/openvinotoolkit/openvino/tree/master/src/core/reference/include/ngraph/runtime/reference
PaddlePaddle算子库文档:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
PaddlePaddle算子参考实现:
https://github.com/PaddlePaddle/Paddle/tree/develop/python/paddle/fluid/tests/unittests
Paddle2ONNX算子映射参考代码
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/legacy/op_mapper
https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper
可以先生成测试模型用Paddle VisualDL查看paddle算子的输入输出以及属性: https://www.paddlepaddle.org.cn/paddle/visualdl/demo/graph
OpenVINO源码编译方法:
参考:https://github.com/openvinotoolkit/openvino/wiki
$ git clone https://github.com/openvinotoolkit/openvino.git
$ cd openvino
$ git submodule update --init --recursive
$ chmod +x install_build_dependencies.sh
$./install_build_dependencies.sh
$ export OPENVINO_BASEDIR=
pwd
$ mkdir build
$ cd build
$ cmake
-DCMAKE_BUILD_TYPE= Release -DCMAKE_INSTALL_PREFIX="${OPENVINO_BASEDIR}/openvino_dist"
-DPYTHON_EXECUTABLE=$(which python3)
-DENABLE_MYRIAD=OFF
-DENABLE_VPU=OFF
-DENABLE_PYTHON=ON
-DNGRAPH_PYTHON_BUILD_ENABLE=ON
-DENABLE_DEBUG_CAPS=ON
-DENABLE_TESTS=ON
..
$ make -j$(nproc); make install
单侧测试方法:
$ cd bin/intel64/Release
$ ./paddle_tests --gtest_filter=PaddleFuzzyOpTest/FrontEndFuzzyOpTest.testOpFuzzy/*
No.214:Arm 虚拟硬件上完成 PP-OCR 文本检测模型的部署与优化
提示,该任务会涉及以下几个关键步骤:
1. 选择合适的模型
- 可选模型库 Model Zoo(eg.en_PP-OCRv3_det),但不局限于模型库模型,支持高性能自研文本检测模型。
- 注意所选模型是否能成功地被
tvmc
编译(部分算子目前不支持 TVM 编译,tvmc 相关帮助文档请访问 TVM 官网或 GitHub 仓库)。2. 编译模型
- 编译模型前请对模型进行适当地量化处理, 确保算子能够尽可能多地调用 Arm CMSIS-NN 库 (不支持的算子可回调 C 标准库执行)。CMSIS-NN 文档请查看 Arm-software/CMSIS-NN。
- 训练模型 (Trained model) 需导出为 Paddle inference 推理模型才可编译。
- 可参考示例代码中模型编译部分(
line152-167
)。3. 应用程序编写
- 确保结果的可读性,请正确地完成应用程序的前后端数据处理。
- 构建应用程序,生成可执行文件。
4. 使用 Arm 虚拟硬件验证运行结果
- 订阅 Arm 虚拟硬件产品并远程登入创建的实例 (可通过
ssh
命令)。RFC 文档确认后,会提供相关镜像订阅及使用指导。- 调用 Arm 虚拟硬件 Corstone-300 (
VHT_Corstone_SSE-300_Ethos-U55
) 平台验证文本检测应用程序的运行结果。No.215:Arm 虚拟硬件上完成 PP-OCR 文本方向分类模型的部署与优化
提示,该任务会涉及以下几个关键步骤:
1. 选择合适的模型
- 可选模型库 Model Zoo(eg.ch_ppocr_mobile_v2.0_cls),但不局限于模型库模型,支持高性能自研文本方向分类模型。
- 注意所选模型是否能成功地被
tvmc
编译(部分算子目前不支持 TVM 编译,tvmc 相关帮助文档请访问 TVM 官网或 GitHub 仓库)。2. 编译模型
- 编译模型前请对模型进行适当地量化处理, 确保算子能够尽可能多地调用 Arm CMSIS-NN 库 (不支持的算子可回调 C 标准库执行)。CMSIS-NN 文档请查看 Arm-software/CMSIS-NN。
- 训练模型 (Trained model) 需导出为 Paddle inference 推理模型才可编译。
- 可参考示例代码中模型编译部分(
line152-167
)。3. 应用程序编写
- 确保结果的可读性,请正确地完成应用程序的前后端数据处理。
- 构建应用程序,生成可执行文件。
4. 使用 Arm 虚拟硬件验证运行结果
- 订阅 Arm 虚拟硬件产品并远程登入创建的实例 (可通过
ssh
命令)。RFC 文档确认后,会提供相关镜像订阅及使用指导。- 调用 Arm 虚拟硬件 Corstone-300 (
VHT_Corstone_SSE-300_Ethos-U55
) 平台验证文本方向分类应用程序的运行结果。No.216:Arm 虚拟硬件上完成 PaddleClas 模型的部署
提示,该任务会涉及以下几个关键步骤:
1. 选择合适的模型
- 可选模型库 Model Zoo(eg.PP-LCNet),但不局限于模型库模型,支持高性能自研模型。
- 注意所选模型是否能成功地被
tvmc
编译(部分算子目前不支持 TVM 编译,tvmc 相关帮助文档请访问 TVM 官网或 GitHub 仓库)。2. 编译模型
- 训练模型 (Trained model) 需导出为 Paddle inference 推理模型才可编译。
- 可参考示例代码中模型编译部分(
line152-167
)。3. 应用程序编写
- 确保结果的可读性,请正确地完成应用程序的前后端数据处理。
- 构建应用程序,生成可执行文件。
4. 使用 Arm 虚拟硬件验证运行结果
- 订阅 Arm 虚拟硬件产品并远程登入创建的实例 (可通过
ssh
命令)。RFC 文档确认后,会提供相关镜像订阅及使用指导。- 调用 Arm 虚拟硬件 Corstone-300 (
VHT_Corstone_SSE-300_Ethos-U55
) 平台验证应用程序的运行结果。No.217:Arm 虚拟硬件上完成 PaddleClas 模型的部署与优化
提示,该任务会涉及以下几个关键步骤:
1. 选择合适的模型
- 可选模型库 Model Zoo(eg.PP-LCNetv2),但不局限于模型库模型,支持高性能自研模型。
- 注意所选模型是否能成功地被
tvmc
编译(部分算子目前不支持 TVM 编译,tvmc 相关帮助文档请访问 TVM 官网或 GitHub 仓库)。2. 编译模型
- 编译模型前请对模型进行适当地量化处理, 确保算子能够尽可能多地调用 Arm CMSIS-NN 库 (不支持的算子可回调 C 标准库执行)。CMSIS-NN 文档请查看 Arm-software/CMSIS-NN。
- 训练模型 (Trained model) 需导出为 Paddle inference 推理模型才可编译。
- 可参考示例代码中模型编译部分(
line152-167
)。3. 应用程序编写
- 确保结果的可读性,请正确地完成应用程序的前后端数据处理。
- 构建应用程序,生成可执行文件。
4. 使用 Arm 虚拟硬件验证运行结果
- 订阅 Arm 虚拟硬件产品并远程登入创建的实例 (可通过
ssh
命令)。RFC 文档确认后,会提供相关镜像订阅及使用指导。- 调用 Arm 虚拟硬件 Corstone-310 (
VHT_Corstone_SSE-310
) 平台验证应用程序的运行结果。No.218:Arm 虚拟硬件上完成 PaddleSeg 模型的部署
提示,该任务会涉及以下几个关键步骤:
1. 选择合适的模型
- 可选模型库 Model Zoo(eg.BiSeNet V2),但不局限于模型库模型,支持高性能自研模型。
- 注意所选模型是否能成功地被
tvmc
编译(部分算子目前不支持 TVM 编译,tvmc 相关帮助文档请访问 TVM 官网或 GitHub 仓库)。2. 编译模型
- 训练模型 (Trained model) 需导出为 Paddle inference 推理模型才可编译。
- 可参考示例代码中模型编译部分(
line152-167
)。3. 应用程序编写
- 确保结果的可读性,请正确地完成应用程序的前后端数据处理。
- 构建应用程序,生成可执行文件。
4. 使用 Arm 虚拟硬件验证运行结果
- 订阅 Arm 虚拟硬件产品并远程登入创建的实例 (可通过
ssh
命令)。RFC 文档确认后,会提供相关镜像订阅及使用指导。- 调用 Arm 虚拟硬件 Corstone-300 (
VHT_Corstone_SSE-300_Ethos-U55
) 平台验证应用程序的运行结果。No.219:Arm 虚拟硬件上完成 PaddleSeg 模型的部署与优化
提示,该任务会涉及以下几个关键步骤:
1. 选择合适的模型
- 可选模型库 Model Zoo(eg. PP-HumanSeg-Lite),但不局限于模型库模型,支持高性能自研模型。
- 注意所选模型是否能成功地被
tvmc
编译(部分算子目前不支持 TVM 编译,tvmc 相关帮助文档请访问 TVM 官网或 GitHub 仓库)。2. 编译模型
- 编译模型前请对模型进行适当地量化处理, 确保算子能够尽可能多地调用 Arm CMSIS-NN 库 (不支持的算子可回调 C 标准库执行)。CMSIS-NN 文档请查看 Arm-software/CMSIS-NN。
- 训练模型 (Trained model) 需导出为 Paddle inference 推理模型才可编译。
- 可参考示例代码中模型编译部分(
line152-167
)。3. 应用程序编写
- 确保结果的可读性,请正确地完成应用程序的前后端数据处理。
- 构建应用程序,生成可执行文件。
4. 使用 Arm 虚拟硬件验证运行结果
- 订阅 Arm 虚拟硬件产品并远程登入创建的实例 (可通过
ssh
命令)。RFC 文档确认后,会提供相关镜像订阅及使用指导。- 调用 Arm 虚拟硬件 Corstone-310 (
VHT_Corstone_SSE-310
) 平台验证应用程序的运行结果。No.220:Arm 虚拟硬件上完成 PP-TinyPose 模型的部署与优化并在物理开发板上进行验证
提示,该任务会涉及以下几个关键步骤:
1. 选择合适的模型
- 可选模型 PP-TinyPose,但不局限于该模型,支持高性能自研模型。
- 注意所选模型是否能成功地被
tvmc
编译(部分算子目前不支持 TVM 编译,tvmc 相关帮助文档请访问 TVM 官网或 GitHub 仓库)。2. 编译模型
- 编译模型前请对模型进行适当地量化处理, 确保算子能够尽可能多地调用 Arm CMSIS-NN 库 (不支持的算子可回调 C 标准库执行)。CMSIS-NN 文档请查看 Arm-software/CMSIS-NN。
- 训练模型 (Trained model) 需导出为 Paddle inference 推理模型才可编译。
- 可参考示例代码中模型编译部分(
line152-167
)。3. 应用程序编写
- 确保结果的可读性,请正确地完成应用程序的前后端数据处理。
- 构建应用程序,生成可执行文件。
4. 使用 Arm 虚拟硬件验证运行结果
- 订阅 Arm 虚拟硬件产品并远程登入创建的实例 (可通过
ssh
命令)。RFC 文档确认后,会提供相关镜像订阅及使用指导。- 调用 Arm 虚拟硬件 Cortex-M33 (
VHT_MPS2_Cortex-M33
) 平台验证应用程序的运行结果。5. 使用物理开发板验证运行结果
No.221:Arm 虚拟硬件上完成 PaddleSpeech 模型的部署与优化
提示,该任务会涉及以下几个关键步骤:
1. 选择合适的模型
- 可选模型 PANN,但不局限于该模型,支持高性能自研模型。
- 注意所选模型是否能成功地被
tvmc
编译(部分算子目前不支持 TVM 编译,tvmc 相关帮助文档请访问 TVM 官网或 GitHub 仓库)。2. 编译模型
- 编译模型前请对模型进行适当地量化处理, 确保算子能够尽可能多地调用 Arm CMSIS-NN 库 (不支持的算子可回调 C 标准库执行)。CMSIS-NN 文档请查看 Arm-software/CMSIS-NN。
- 训练模型 (Trained model) 需导出为 Paddle inference 推理模型才可编译。
- 可参考示例代码中模型编译部分(
line152-167
)。3. 应用程序编写
- 确保结果的可读性,请正确地完成应用程序的前后端数据处理。
- 构建应用程序,生成可执行文件。
4. 使用 Arm 虚拟硬件验证运行结果
- 订阅 Arm 虚拟硬件产品并远程登入创建的实例 (可通过
ssh
命令)。RFC 文档确认后,会提供相关镜像订阅及使用指导。- 调用 Arm 虚拟硬件 Corstone-300 (
VHT_Corstone_SSE-300_Ethos-U55
) 平台验证应用程序的运行结果。No.222:为 TVM 增加单个 Paddle 算子 yolo_box 并在 Arm 虚拟硬件上完成 PP-Yolo 模型的部署
提示,该任务会涉及以下几个关键步骤:
1. 完成 TVM Paddle 前端算子 yolo_box 的开发
- 完成 yolo_box 算子映射,并提交PR。算子代码添加在相应文件中。
- 完成 yolo_box 算子实现代码,并添加单测且验证通过。单测添加在相应文件中。
- 可参考:paddle 算子文档 以及 TVM Relay api文档
2. 编译模型
- 训练模型 (Trained model) 需导出为 Paddle inference 推理模型才可编译。
- 可参考示例代码中模型编译部分(
line152-167
)。3. 应用程序编写
- 确保结果的可读性,请正确地完成应用程序的前后端数据处理。
- 构建应用程序,生成可执行文件。
4. 使用 Arm 虚拟硬件验证运行结果
- 订阅 Arm 虚拟硬件产品并远程登入创建的实例 (可通过
ssh
命令)。RFC 文档确认后,会提供相关镜像订阅及使用指导。- 调用 Arm 虚拟硬件 Corstone-300 (
VHT_Corstone_SSE-300_Ethos-U55
) 平台验证应用程序的运行结果。No.223:为 TVM 增加多个 Paddle 算子 stack 和 prior_box 并在 Arm 虚拟硬件上完成 SSD 模型的部署
提示,该任务会涉及以下几个关键步骤:
1. 完成 TVM Paddle 前端算子 stack 和 prior_box 的开发
- 完成 stack 和 prior_box 算子映射,并提交PR。算子代码添加在相应文件中。
- 完成 stack 和 prior_box 算子实现代码,并添加单测且验证通过。单测添加在相应文件中。
- 可参考:paddle 算子文档 以及 TVM Relay api文档
2. 编译模型
- 训练模型 (Trained model) 需导出为 Paddle inference 推理模型才可编译。
- 可参考示例代码中模型编译部分(
line152-167
)。3. 应用程序编写
- 确保结果的可读性,请正确地完成应用程序的前后端数据处理。
- 构建应用程序,生成可执行文件。
4. 使用 Arm 虚拟硬件验证运行结果
- 订阅 Arm 虚拟硬件产品并远程登入创建的实例 (可通过
ssh
命令)。RFC 文档确认后,会提供相关镜像订阅及使用指导。- 调用 Arm 虚拟硬件 Corstone-300 (
VHT_Corstone_SSE-300_Ethos-U55
) 平台验证应用程序的运行结果。No.224:利用 Jina AI 来部署开放域聊天模型 PLATO-Mini
题目简介: 使用 Jina 框架部署预训练模型 PLATO-Mini 实现开放域对话服务。
Jina
开源MLOps框架的使用,熟悉3个基本概念Document
,Executor
,Flow
;详细文档参见 docsPlatoXLExecutor
,在__init__
中实现paddle模型的加载; 实现一个新的 endpointgenerate
完成对话任务;请参考文档 docPlatoXLExecutor
对外提供gRPC
,HTTP
和WebSocket
三种服务类型;请参考文档 docPlatoXLExecutor
到 Jina HubNo.225:使用 Jina AI 和 UIE 搭建可视化信息抽取系统
题目简介: 基于通用信息抽取 (UIE)(https://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/uie) 在 Jina 中实现一个可视化的信息抽取系统
Jina
开源MLOps框架的使用,熟悉3个基本概念Document
,Executor
,Flow
;详细文档参见 docsUIEExecutor
,在__init__
中实现UIE Taskflow 的加载; 请参考文档 docUIEExecutor
对外提供gRPC
,HTTP
和WebSocket
三种服务类型;请参考文档 docUIEExecutor
到 Jina HubNo.226:TVM项目1--为Paddle框架新增TVM算子(进阶题)
背景:
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,TVM采用编译器思想,前端接收各个深度学习框架保存的模型格式,通过中间件Relay IR翻译之后,通过一系列优化(子图融合等),编译为特定后端可以识别的机器码完成模型推理。目前TVM支持PaddlePaddle/Pytorch/TensorFlow/Caffe/MxNet 等,同时也支持一些模型的中间格式如 ONNX、CoreML。
目前TVM中的PaddlePaddle Frontend覆盖算子不够全面,覆盖度仅包含各个套间(PaddleOCR/PaddleDetection等)的部分模型,我们希望通过此次黑客松活动为TVM中的PaddlePaddle Frontend补充算子。
目标:
为PaddlePaddle框架新增以下TVM算子,并通过单测测试;
任务难度:进阶题
将以下6个算子做适配并完成单算子测试。
【提示】:
1.在提交PR前需通过RFC提交自己要算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)
2.优先提交代码的团队会被优先review
3.优先通过算子单测的团队视为完成任务,且此算子不会被作为比赛任务继续适配
算子任务提交:
整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op
更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
用户需要做两件事:
通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作
更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py
TVM的PR会有代码风格检查,python代码检查工具基于black,更多细节可参考:[https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code%20style#python-code-styles](https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code style#python-code-styles)
RFC内容提交(必须项)
开发者需要提供一份RFC,用来描述本次任务的设计方案;
参考模板:
Solution name 方案名称
Description 方案描述
Workflow 方案流程
Results visualizing 方案运行效果
Project Timeline 项目提交时间计划
Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)
算子参考文档:
No.227:TVM项目2-为Paddle框架新增TVM算子(基础题)
背景:
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,TVM采用编译器思想,前端接收各个深度学习框架保存的模型格式,通过中间件Relay IR翻译之后,通过一系列优化(子图融合等),编译为特定后端可以识别的机器码完成模型推理。目前TVM支持PaddlePaddle/Pytorch/TensorFlow/Caffe/MxNet 等,同时也支持一些模型的中间格式如 ONNX、CoreML。
目前TVM中的PaddlePaddle Frontend覆盖算子不够全面,覆盖度仅包含各个套间(PaddleOCR/PaddleDetection等)的部分模型,我们希望通过此次黑客松活动为TVM中的PaddlePaddle Frontend补充算子。
目标:
为PaddlePaddle框架新增以下TVM算子,并通过单测测试;
任务难度:新增TVM算子基础题
从下表中选取题目类型为 “基础题” 的任意6个算子做适配并完成单算子测试。
【提示】:
1.在提交PR前需通过RFC提交自己要算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)
2.优先提交代码的团队会被优先review
3.优先通过算子单测的团队视为完成任务,且此算子不会被作为比赛任务继续适配
算子任务提交:
整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op
更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
2.完成TVM算子实现代码,并添加单测且验证通过
用户需要做两件事:
通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作
更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py
3.注意代码风格问题
TVM的PR会有代码风格检查,python代码检查工具基于black,更多细节可参考:[https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code%20style#python-code-styles](https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code style#python-code-styles)
4.OP代码以及单测实现之后,@jiangjiajun进行code review以及代码修改,修改完成后即可代码合入
RFC内容提交(必须项)
开发者需要提供一份RFC,用来描述本次任务的设计方案;
参考模板:
Solution name 方案名称
Description 方案描述
Workflow 方案流程
Results visualizing 方案运行效果
Project Timeline 项目提交时间计划
Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)
算子参考文档:
No.228:TVM项目3 -为Paddle框架新增TVM算子(基础题)
背景:
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,TVM采用编译器思想,前端接收各个深度学习框架保存的模型格式,通过中间件Relay IR翻译之后,通过一系列优化(子图融合等),编译为特定后端可以识别的机器码完成模型推理。目前TVM支持PaddlePaddle/Pytorch/TensorFlow/Caffe/MxNet 等,同时也支持一些模型的中间格式如 ONNX、CoreML。
目前TVM中的PaddlePaddle Frontend覆盖算子不够全面,覆盖度仅包含各个套间(PaddleOCR/PaddleDetection等)的部分模型,我们希望通过此次黑客松活动为TVM中的PaddlePaddle Frontend补充算子。
目标:
为PaddlePaddle框架新增以下TVM算子,并通过单测测试;
任务难度:新增TVM算子基础题
从下表中选取题目类型为 “基础题” 的任意6个算子做适配并完成单算子测试。
【提示】:
1.在提交PR前需通过RFC提交自己要算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)
2.优先提交代码的团队会被优先review
3.优先通过算子单测的团队视为完成任务,且此算子不会被作为比赛任务继续适配
算子任务提交:
整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op
更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
2.完成TVM算子实现代码,并添加单测且验证通过
用户需要做两件事:
通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作
更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py
3.注意代码风格问题
TVM的PR会有代码风格检查,python代码检查工具基于black,更多细节可参考:[https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code%20style#python-code-styles](https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code style#python-code-styles)
4.OP代码以及单测实现之后,@jiangjiajun进行code review以及代码修改,修改完成后即可代码合入
RFC内容提交(必须项)
开发者需要提供一份RFC,用来描述本次任务的设计方案;
参考模板:
Solution name 方案名称
Description 方案描述
Workflow 方案流程
Results visualizing 方案运行效果
Project Timeline 项目提交时间计划
Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)
算子参考文档:
No.229:TVM项目4 -为Paddle框架新增TVM算子(基础题)
背景:
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,TVM采用编译器思想,前端接收各个深度学习框架保存的模型格式,通过中间件Relay IR翻译之后,通过一系列优化(子图融合等),编译为特定后端可以识别的机器码完成模型推理。目前TVM支持PaddlePaddle/Pytorch/TensorFlow/Caffe/MxNet 等,同时也支持一些模型的中间格式如 ONNX、CoreML。
目前TVM中的PaddlePaddle Frontend覆盖算子不够全面,覆盖度仅包含各个套间(PaddleOCR/PaddleDetection等)的部分模型,我们希望通过此次黑客松活动为TVM中的PaddlePaddle Frontend补充算子。
目标:
为PaddlePaddle框架新增以下TVM算子,并通过单测测试;
任务难度:新增TVM算子基础题
从下表中选取题目类型为 “基础题” 的任意6个算子做适配并完成单算子测试。
【提示】:
1.在提交PR前需通过RFC提交自己要算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)
2.优先提交代码的团队会被优先review
3.优先通过算子单测的团队视为完成任务,且此算子不会被作为比赛任务继续适配
算子任务提交:
整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op
更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
2.完成TVM算子实现代码,并添加单测且验证通过
用户需要做两件事:
通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作
更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py
3.注意代码风格问题
TVM的PR会有代码风格检查,python代码检查工具基于black,更多细节可参考:[https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code%20style#python-code-styles](https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code style#python-code-styles)
4.OP代码以及单测实现之后,@jiangjiajun进行code review以及代码修改,修改完成后即可代码合入
RFC内容提交(必须项)
开发者需要提供一份RFC,用来描述本次任务的设计方案;
参考模板:
Solution name 方案名称
Description 方案描述
Workflow 方案流程
Results visualizing 方案运行效果
Project Timeline 项目提交时间计划
Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)
算子参考文档:
No.230:TVM项目5-为Paddle框架新增TVM算子(基础题)
背景:
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,TVM采用编译器思想,前端接收各个深度学习框架保存的模型格式,通过中间件Relay IR翻译之后,通过一系列优化(子图融合等),编译为特定后端可以识别的机器码完成模型推理。目前TVM支持PaddlePaddle/Pytorch/TensorFlow/Caffe/MxNet 等,同时也支持一些模型的中间格式如 ONNX、CoreML。
目前TVM中的PaddlePaddle Frontend覆盖算子不够全面,覆盖度仅包含各个套间(PaddleOCR/PaddleDetection等)的部分模型,我们希望通过此次黑客松活动为TVM中的PaddlePaddle Frontend补充算子。
目标:
为PaddlePaddle框架新增以下TVM算子,并通过单测测试;
任务难度:新增TVM算子基础题
从下表中选取题目类型为 “基础题” 的任意6个算子做适配并完成单算子测试。
【提示】:
1.在提交PR前需通过RFC提交自己要算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)
2.优先提交代码的团队会被优先review
3.优先通过算子单测的团队视为完成任务,且此算子不会被作为比赛任务继续适配
算子任务提交:
整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op
更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
2.完成TVM算子实现代码,并添加单测且验证通过
用户需要做两件事:
通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作
更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py
3.注意代码风格问题
TVM的PR会有代码风格检查,python代码检查工具基于black,更多细节可参考:[https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code%20style#python-code-styles](https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code style#python-code-styles)
4.OP代码以及单测实现之后,@jiangjiajun进行code review以及代码修改,修改完成后即可代码合入
RFC内容提交(必须项)
开发者需要提供一份RFC,用来描述本次任务的设计方案;
参考模板:
Solution name 方案名称
Description 方案描述
Workflow 方案流程
Results visualizing 方案运行效果
Project Timeline 项目提交时间计划
Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)
算子参考文档:
No.231:TVM项目6
背景:
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,TVM采用编译器思想,前端接收各个深度学习框架保存的模型格式,通过中间件Relay IR翻译之后,通过一系列优化(子图融合等),编译为特定后端可以识别的机器码完成模型推理。目前TVM支持PaddlePaddle/Pytorch/TensorFlow/Caffe/MxNet 等,同时也支持一些模型的中间格式如 ONNX、CoreML。
目前TVM中的PaddlePaddle Frontend已经支持100+算子,覆盖度仅包含各个套间(PaddleOCR/PaddleDetection等)的部分模型,但由于在实现后由于Paddle框架/TVM框架的升级,部分算子可能存在没支持全(某些属性,或某些输入情况没覆盖)/TVM OP/API存在兼容问题。 我们希望通过此次黑客松活动为TVM中的PaddlePaddle Frontend完善或修复现有Frontend中算子支持程度和问题。
目标:(开放题)
为TVM PaddlePaddle前端完善TVM算子支持程度或修复问题,并补充相应单测;对于TVM算子是否支持全(某些属性,或某些输入情况没覆盖),可参考Paddle对算子的定义,或者Paddle2ONNX的实现
任务难度:基础题
完善或修复4个以上算子支持程度或问题
【提示】:
1.优先提交代码的团队会被优先review
2.优先通过单测并合入的团队视为完成任务
3.在提交PR前需通过RFC提交自己要修复的算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通);如有选手重复,优先通过RFC的选手有效。
4.如提交的代码已经被合入的PR覆盖,例如修复的4个算子,其中已经有2个被合入的修复,则视为这2个无效
任务提交:
整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op
更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
用户需要做两件事:
通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作
更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py
TVM的PR会有代码风格检查,python代码检查工具基于black,更多细节可参考:[https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code%20style#python-code-styles](https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code style#python-code-styles)
RFC内容提交(必须项)
开发者需要提供一份RFC,用来描述本次任务的设计方案;
参考模板:
Solution name 方案名称
Description 方案描述
Workflow 方案流程
Results visualizing 方案运行效果
Project Timeline 项目提交时间计划
Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)
算子参考文档:
No.232:TVM项目7
背景:
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,TVM采用编译器思想,前端接收各个深度学习框架保存的模型格式,通过中间件Relay IR翻译之后,通过一系列优化(子图融合等),编译为特定后端可以识别的机器码完成模型推理。目前TVM支持PaddlePaddle/Pytorch/TensorFlow/Caffe/MxNet 等,同时也支持一些模型的中间格式如 ONNX、CoreML。
目前TVM中的PaddlePaddle Frontend已经支持100+算子,覆盖度仅包含各个套间(PaddleOCR/PaddleDetection等)的部分模型,但由于在实现后由于Paddle框架/TVM框架的升级,部分算子可能存在没支持全(某些属性,或某些输入情况没覆盖)/TVM OP/API存在兼容问题。 我们希望通过此次黑客松活动为TVM中的PaddlePaddle Frontend完善或修复现有Frontend中算子支持程度和问题。
目标:(开放题)
为TVM PaddlePaddle前端完善TVM算子支持程度或修复问题,并补充相应单测;对于TVM算子是否支持全(某些属性,或某些输入情况没覆盖),可参考Paddle对算子的定义,或者Paddle2ONNX的实现
任务难度:基础题
完善或修复4个以上算子支持程度或问题
【提示】:
1.优先提交代码的团队会被优先review
2.优先通过单测并合入的团队视为完成任务
3.在提交PR前需通过RFC提交自己要修复的算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通);如有选手重复,优先通过RFC的选手有效。
4.如提交的代码已经被合入的PR覆盖,例如修复的4个算子,其中已经有2个被合入的修复,则视为这2个无效
任务提交:
整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op
更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
用户需要做两件事:
通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作
更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py
TVM的PR会有代码风格检查,python代码检查工具基于black,更多细节可参考:[https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code%20style#python-code-styles](https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code style#python-code-styles)
RFC内容提交(必须项)
开发者需要提供一份RFC,用来描述本次任务的设计方案;
参考模板:
Solution name 方案名称
Description 方案描述
Workflow 方案流程
Results visualizing 方案运行效果
Project Timeline 项目提交时间计划
Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)
算子参考文档:
No.233:TVM项目8
背景:
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,TVM采用编译器思想,前端接收各个深度学习框架保存的模型格式,通过中间件Relay IR翻译之后,通过一系列优化(子图融合等),编译为特定后端可以识别的机器码完成模型推理。目前TVM支持PaddlePaddle/Pytorch/TensorFlow/Caffe/MxNet 等,同时也支持一些模型的中间格式如 ONNX、CoreML。
目前TVM中的PaddlePaddle Frontend已经支持100+算子,覆盖度仅包含各个套间(PaddleOCR/PaddleDetection等)的部分模型,但由于在实现后由于Paddle框架/TVM框架的升级,部分算子可能存在没支持全(某些属性,或某些输入情况没覆盖)/TVM OP/API存在兼容问题。 我们希望通过此次黑客松活动为TVM中的PaddlePaddle Frontend完善或修复现有Frontend中算子支持程度和问题。
目标:(开放题)
为TVM PaddlePaddle前端完善TVM算子支持程度或修复问题,并补充相应单测;对于TVM算子是否支持全(某些属性,或某些输入情况没覆盖),可参考Paddle对算子的定义,或者Paddle2ONNX的实现
任务难度:基础题
完善或修复4个以上算子支持程度或问题
【提示】:
1.优先提交代码的团队会被优先review
2.优先通过单测并合入的团队视为完成任务
3.在提交PR前需通过RFC提交自己要修复的算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通);如有选手重复,优先通过RFC的选手有效。
4.如提交的代码已经被合入的PR覆盖,例如修复的4个算子,其中已经有2个被合入的修复,则视为这2个无效
任务提交:
整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op
更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
用户需要做两件事:
通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作
更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py
TVM的PR会有代码风格检查,python代码检查工具基于black,更多细节可参考:[https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code%20style#python-code-styles](https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code style#python-code-styles)
RFC内容提交(必须项)
开发者需要提供一份RFC,用来描述本次任务的设计方案;
参考模板:
Solution name 方案名称
Description 方案描述
Workflow 方案流程
Results visualizing 方案运行效果
Project Timeline 项目提交时间计划
Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)
算子参考文档:
No.234:TVM项目9
背景:
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,TVM采用编译器思想,前端接收各个深度学习框架保存的模型格式,通过中间件Relay IR翻译之后,通过一系列优化(子图融合等),编译为特定后端可以识别的机器码完成模型推理。目前TVM支持PaddlePaddle/Pytorch/TensorFlow/Caffe/MxNet 等,同时也支持一些模型的中间格式如 ONNX、CoreML。
目前TVM中的PaddlePaddle Frontend已经支持100+算子,覆盖度仅包含各个套间(PaddleOCR/PaddleDetection等)的部分模型,但由于在实现后由于Paddle框架/TVM框架的升级,部分算子可能存在没支持全(某些属性,或某些输入情况没覆盖)/TVM OP/API存在兼容问题。 我们希望通过此次黑客松活动为TVM中的PaddlePaddle Frontend完善或修复现有Frontend中算子支持程度和问题。
目标:(开放题)
为TVM PaddlePaddle前端完善TVM算子支持程度或修复问题,并补充相应单测;对于TVM算子是否支持全(某些属性,或某些输入情况没覆盖),可参考Paddle对算子的定义,或者Paddle2ONNX的实现
任务难度:进阶题
完善或修复8个以上算子支持程度或问题
【提示】:
1.优先提交代码的团队会被优先review
2.优先通过单测并合入的团队视为完成任务
3.在提交PR前需通过RFC提交自己要修复的算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通);如有选手重复,优先通过RFC的选手有效。
4.如提交的代码已经被合入的PR覆盖,例如修复的8个算子,其中已经有2个被合入的修复,则视为这2个无效?
任务提交:
整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op
更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
用户需要做两件事:
通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作
更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py
TVM的PR会有代码风格检查,python代码检查工具基于black,更多细节可参考:[https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code%20style#python-code-styles](https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code style#python-code-styles)
RFC内容提交(必须项)
开发者需要提供一份RFC,用来描述本次任务的设计方案;
参考模板:
Solution name 方案名称
Description 方案描述
Workflow 方案流程
Results visualizing 方案运行效果
Project Timeline 项目提交时间计划
Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)
算子参考文档:
No.235:TVM项目10
背景:
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,TVM采用编译器思想,前端接收各个深度学习框架保存的模型格式,通过中间件Relay IR翻译之后,通过一系列优化(子图融合等),编译为特定后端可以识别的机器码完成模型推理。目前TVM支持PaddlePaddle/Pytorch/TensorFlow/Caffe/MxNet 等,同时也支持一些模型的中间格式如 ONNX、CoreML。
目前TVM中的PaddlePaddle Frontend已经支持100+算子,覆盖度仅包含各个套间(PaddleOCR/PaddleDetection等)的部分模型,但目前仍未支持PaddleSlim量化模型,此题期望开发者增加TVM对PaddleSlim模型的支持,并验证量化的性能提升情况。
目标:
为TVM PaddlePaddle前端增加PaddleSlim量化模型的支持。 PaddleSlim量化模型与普通Paddle模型差异在于,模型中各OP前后通过
linear_quantize
和dequantize_linear
来表达量化信息(算子与ONNX的DequantizeLinear/QuantizeLinear类似),与ONNX量化模型原理类似。开发者在开发时,可参考TVM中其它深度学习框架前端对量化模型的支持方式来实现。开发者可使用下面的量化模型进行正确性验证和性能测试
代码参考链接
【提示】:
1.优先提交代码的团队会被优先review
2.优先通过单测并合入的团队视为完成任务
3.在提交PR前需通过RFC提交自己方案。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)
任务提交:
整体思想通过TVM Relay IR去表示对应PaddlePaddle 量化OP,并进行量化的支持。具体实现方案可参考TVM中的onnx前端实现
更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
TVM的PR会有代码风格检查,python代码检查工具基于black,更多细节可参考:[https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code%20style#python-code-styles](https://tvm.apache.org/docs/contribute/code_guide.html?highlight=code style#python-code-styles)
RFC内容提交(必须项)
开发者需要提供一份RFC,用来描述本次任务的设计方案;
参考模板:
Solution name 方案名称
Description 方案描述
Workflow 方案流程
Results visualizing 方案运行效果
Project Timeline 项目提交时间计划
Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
答疑交流
The text was updated successfully, but these errors were encountered: