Skip to content
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

Closed
cloud2009 opened this issue Feb 18, 2023 · 7 comments
Closed

【PaddlePaddle Hackathon 4】生态伙伴开源贡献任务合集 #50632

cloud2009 opened this issue Feb 18, 2023 · 7 comments

Comments

@cloud2009
Copy link

cloud2009 commented Feb 18, 2023

【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。

  • 提交内容**:**

    • 第一阶段:RFC方案提交
      1. RFC提交方式:
        1)以issue的形式进行提交
        2)递交地址为https://github.com/openvinotoolkit/openvino_notebooks/issues
        3)需要标题处打上【PaddlePaddle Hackathon 4】字样
        4)RFC语言不做强制要求
      2. RFC方案基本要求:
        1)应用场景与现有notebook demo不重复
        2)该示例中需要使用最新版本的openvino完成所有模型的推理部署
      3. RFC筛选依据:
        1)该示例在真实场景下是否具有实际应用价值
        2)该示例的流程逻辑是否清晰
        3)运行结果是否符合预期
      4. RFC提交模板:
        image
        第二阶段:PR代码提交
      5. PR提交地址:
        https://github.com/openvinotoolkit/openvino_notebooks
      6. 提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样,并在描述处链接之前的RFC地址
      7. 该PR需满足notebook贡献规范
        4.开发者需要及时根据review的结果进行PR修改
      8. 在比赛过半时设置中期检查会,开发者需汇报项目进度、展示已完成的功能、总结当前遇到的问题与挑战、并介绍后半段比赛的计划安排
  • 参考示例:

    • 考虑到通用性,选取的应用场景尽量以英文为主,推荐方案场景有:
      *PaddleDetection
      1)行为识别(打架,抽烟,接打电话 )
      2)车辆追踪
      3)高空抛物
      4)产线上包装盒内产品计数
      *PaddleSeg
      1)背景去除与替换
      *PaddleNLP
      1)为申请大学的学生写推荐信(推荐使用ERINE3.0 tiny)
      *PaddleGAN
      1)人脸表情迁移
      *PaddleOCR
      1)古籍电子化保存
      *PaddleSpeech
      1)口录医嘱(推荐使用U2++)
      2)会议,视频电话等背景噪音去除
  • 技术要求**:**

    • 熟练掌握OpenVINO python API与其他工具组件的使用方法
  • 参考文档:

No.206:为 OpenVINO 实现 Paddle 算子 flip 转换

No.207:为 OpenVINO 实现 Paddle 算子 linspace 转换

No.208:为 OpenVINO 实现 Paddle 算子 set_value 转换

No.209:为 OpenVINO 实现 Paddle 算子 silu 转换

No.210:为 OpenVINO 实现 Paddle 算子one_hot_v2 转换

No.211:为 OpenVINO 实现 Paddle 算子softshrink 转换

No.212:为 OpenVINO 实现 Paddle 算子 grid_sampler 转换

  • 技术标签:深度学习框架,C++,Python,OpenVINO

  • 任务难度:基础

  • 详细描述:每个框架都有自己的模型和算子表达。OpenVINO对PaddlePaddle的支持需要从Paddle的算子映射转换到OpenVINO的算子。在这个过程中,我们将熟悉深度学习神经网络的算子表达和计算。

在这个任务中,你需要为OpenVINO实现Paddle算子 grid_sampler转换,该OP基于 flow field 网格的对输入 X 进行双线性插值采样。具体做法请参考openvinotoolkit/openvino#11731

No.213:为 OpenVINO 实现 Paddle 算子index_select转换

No.214:Arm 虚拟硬件上完成 PP-OCR 文本检测模型的部署与优化

  • 任务难度:🌟 基础
  • 详细描述:任务目标为将 PaddleOCR 模型库中的文本检测模型 (Text Detection Model) 部署在 Arm Cortex-M55 处理器上并使用 Arm 虚拟硬件 Corstone-300 平台进行验证。
    提示,该任务会涉及以下几个关键步骤:
    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) 平台验证文本检测应用程序的运行结果。
  • 提交内容:
    • 项目启动前,请提交 RFC 文档(注意标明所选模型及来源)。
    • PR 示例工程代码至 GitHub 仓库,工程文件结构请参考 OCR-example,注意同步更新 README.md 说明文档的内容。代码合入仓库地址及合入规范将在RFC文档确认后提供。
  • 技术要求:
    • 熟练使用 c/c++,Python 进行工程项目开发。
    • 熟悉基础的 Linux 操作系统命令。
    • 熟悉深度学习工程开发流程,tinyML 相关知识理论(例如, 模型量化)并掌握基本的嵌入式软件开发知识。

No.215:Arm 虚拟硬件上完成 PP-OCR 文本方向分类模型的部署与优化

    • 任务难度:🌟 基础
    • 详细描述:任务目标为将 PaddleOCR 模型库中的文本方向分类模型 (Text Angle Classification Model) 部署在 Arm Cortex-M55 处理器上并使用 Arm 虚拟硬件 Corstone-300 平台进行验证。
      提示,该任务会涉及以下几个关键步骤:
      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) 平台验证文本方向分类应用程序的运行结果。
    • 提交内容:
      • 项目启动前,请提交 RFC 文档(注意标明所选模型及来源)。
      • PR 示例工程代码至 GitHub 仓库,工程文件结构请参考 OCR-example,注意同步更新 README.md 说明文档的内容。代码合入仓库地址及合入规范将在RFC文档确认后提供。
    • 技术要求:
      • 熟练使用 c/c++,Python 进行工程项目开发。
      • 熟悉基础的 Linux 操作系统命令。
      • 熟悉深度学习工程开发流程,tinyML 相关知识理论(例如, 模型量化)并掌握基本的嵌入式软件开发知识。

No.216:Arm 虚拟硬件上完成 PaddleClas 模型的部署

    • 任务难度:🌟 基础
    • 详细描述:任务目标为将 PaddleClas 模型库中的模型部署在 Arm Cortex-M55 处理器上并使用 Arm 虚拟硬件 Corstone-300 平台进行验证。
      提示,该任务会涉及以下几个关键步骤:
      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) 平台验证应用程序的运行结果。
    • 提交内容:
      • 项目启动前,请提交 RFC 文档(注意标明所选模型及来源)。
      • PR 示例工程代码至 GitHub 仓库,工程文件结构请参考 OCR-example,注意同步更新 README.md 说明文档的内容。代码合入仓库地址及合入规范将在 RFC 文档确认后提供。
    • 技术要求:
      • 熟练使用 c/c++,Python 进行工程项目开发。
      • 熟悉基础的 Linux 操作系统命令。
      • 熟悉深度学习工程开发流程,tinyML 相关知识理论并掌握基本的嵌入式软件开发知识。

No.217:Arm 虚拟硬件上完成 PaddleClas 模型的部署与优化

    • 任务难度:🌟🌟 进阶
    • 详细描述:任务目标为将 PaddleClas 模型库中的模型部署在 Arm Cortex-M85 处理器上并使用 Arm 虚拟硬件 Corstone-310 平台进行验证 (本题目与 No.3 题的主要区别在于是否对模型进行量化等处理从而确保运行时可以最大程度地调用 Arm CMSIS-NN 库的算子,及对部署目标平台的调整)。
      提示,该任务会涉及以下几个关键步骤:
      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) 平台验证应用程序的运行结果。
    • 提交内容:
      • 项目启动前,请提交 RFC 文档(注意标明所选模型及来源)。
      • PR 示例工程代码至 GitHub 仓库,工程文件结构请参考 OCR-example,注意同步更新 README.md 说明文档的内容。代码合入仓库地址及合入规范将在 RFC 文档确认后提供。
    • 技术要求:
      • 熟练使用 c/c++,Python 进行工程项目开发。
      • 熟悉基础的 Linux 操作系统命令。
      • 熟悉深度学习工程开发流程,tinyML 相关知识理论 (例如, 模型量化) 并掌握基本的嵌入式软件开发知识。

No.218:Arm 虚拟硬件上完成 PaddleSeg 模型的部署

  • 任务难度:🌟 基础
  • 详细描述:任务目标为将 PaddleSeg 模型库中的模型部署在 Arm Cortex-M55 处理器上并使用 Arm 虚拟硬件 Corstone-300 平台进行验证。
    提示,该任务会涉及以下几个关键步骤:
    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) 平台验证应用程序的运行结果。
  • 提交内容:
    • 项目启动前,请提交 RFC 文档(注意标明所选模型及来源)。
    • PR 示例工程代码至 GitHub 仓库,工程文件结构请参考 OCR-example,注意同步更新 README.md 说明文档的内容。代码合入仓库地址及合入规范将在 RFC 文档确认后提供。
  • 技术要求:
    • 熟练使用 c/c++,Python 进行工程项目开发。
    • 熟悉基础的 Linux 操作系统命令。
    • 熟悉深度学习工程开发流程,tinyML 相关知识理论并掌握基本的嵌入式软件开发知识。

No.219:Arm 虚拟硬件上完成 PaddleSeg 模型的部署与优化

  • 任务难度:🌟🌟 进阶
  • 详细描述:任务目标为将 PaddleSeg 模型库中的模型部署在 Arm Cortex-M85 处理器上并使用 Arm 虚拟硬件 Corstone-310 平台进行验证 (本题目与 No.5 题的主要区别在于是否对模型进行量化等处理从而确保运行时可以最大程度地调用 Arm CMSIS-NN 库的算子,及对部署目标平台的调整)。
    提示,该任务会涉及以下几个关键步骤:
    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) 平台验证应用程序的运行结果。
  • 提交内容:
    • 项目启动前,请提交 RFC 文档(注意标明所选模型及来源)。
    • PR 示例工程代码至 GitHub 仓库,工程文件结构请参考 OCR-example,注意同步更新 README.md 说明文档的内容。代码合入仓库地址及合入规范将在 RFC 文档确认后提供。
  • 技术要求:
    • 熟练使用 c/c++,Python 进行工程项目开发。
    • 熟悉基础的 Linux 操作系统命令。
    • 熟悉深度学习工程开发流程,tinyML 相关知识理论 (例如, 模型量化) 并掌握基本的嵌入式软件开发知识。

No.220:Arm 虚拟硬件上完成 PP-TinyPose 模型的部署与优化并在物理开发板上进行验证

  • 任务难度:🌟🌟 进阶
  • 详细描述:任务目标为首先将 PaddleDetection 模型库中的 PP-TinyPose 模型部署在 Arm Cortex-M33 处理器上并使用 Arm 虚拟硬件 Cortex-M33 平台进行验证;然后将验证后的应用程序移植在物理开发板上进行二次验证。
    提示,该任务会涉及以下几个关键步骤:
    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. 使用物理开发板验证运行结果
  • 提交内容:
    • 项目启动前,请提交 RFC 文档(注意标明所选模型及来源)。
    • PR 示例工程代码至 GitHub 仓库,工程文件结构请参考 OCR-example,注意同步更新 README.md 说明文档的内容。代码合入仓库地址及合入规范将在RFC文档确认后提供。
  • 技术要求:
    • 熟练使用 c/c++,Python 进行工程项目开发。
    • 熟悉基础的 Linux 操作系统命令。
    • 熟悉深度学习工程开发流程,tinyML 相关知识理论(例如, 模型量化)并掌握基本的嵌入式软件开发知识。

No.221:Arm 虚拟硬件上完成 PaddleSpeech 模型的部署与优化

  • 任务难度:🌟🌟 进阶
  • 详细描述:任务目标为首先将 PaddleSpeech 模型库中的 PANN 模型部署在 Arm Cortex-M55 处理器上并使用 Arm 虚拟硬件 Corstone-300 平台进行验证。
    提示,该任务会涉及以下几个关键步骤:
    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) 平台验证应用程序的运行结果。
  • 提交内容:
    • 项目启动前,请提交 RFC 文档(注意标明所选模型及来源)。
    • PR 示例工程代码至 GitHub 仓库,工程文件结构请参考 OCR-example,注意同步更新 README.md 说明文档的内容。代码合入仓库地址及合入规范将在RFC文档确认后提供。
  • 技术要求:
    • 熟练使用 c/c++,Python 进行工程项目开发。
    • 熟悉基础的 Linux 操作系统命令。
    • 熟悉深度学习工程开发流程,tinyML 相关知识理论(例如, 模型量化)并掌握基本的嵌入式软件开发知识。

No.222:为 TVM 增加单个 Paddle 算子 yolo_box 并在 Arm 虚拟硬件上完成 PP-Yolo 模型的部署

  • 任务难度:🌟 基础
  • 详细描述:由于目前 TVM 前端 Paddle 算子 yolo_box 缺失,导致部分模型 (eg. PP-Yolo ) 无法通过 TVM 编译。本任务目标为首先为 TVM 增加单个 Paddle 算子 yolo_box,然后将算子补齐后的 PP-Yolo 模型部署在 Arm Cortex-M55 处理器上并使用 Arm 虚拟硬件 Corstone-300 平台进行验证。
    提示,该任务会涉及以下几个关键步骤:
    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) 平台验证应用程序的运行结果。
  • 提交内容:
    • 项目启动前,请提交 RFC 文档(注意标明所选模型及来源)。
    • PR 示例工程代码至 GitHub 仓库,工程文件结构请参考 Object-Detection-example,注意同步更新 README.md 说明文档的内容。代码合入仓库地址及合入规范将在 RFC 文档确认后提供。
  • 技术要求:
    • 熟练掌握 TVM 原理及 TVM 前端算子开发流程。
    • 熟练使用 c/c++,Python 进行工程项目开发。
    • 熟悉基础的 Linux 操作系统命令。
    • 熟悉深度学习工程开发流程,tinyML 相关知识理论并掌握基本的嵌入式软件开发知识。

No.223:为 TVM 增加多个 Paddle 算子 stack 和 prior_box 并在 Arm 虚拟硬件上完成 SSD 模型的部署

  • 任务难度:🌟🌟 进阶
  • 详细描述:由于目前 TVM 前端 Paddle 算子 stack 和 prior_box 缺失,导致部分模型 (eg. SSD ) 无法通过 TVM 编译。本任务目标为首先为 TVM 增加 2 个 Paddle 算子 stack 和 prior_box,然后将算子补齐后的 SSD 模型部署在 Arm Cortex-M55 处理器上并使用 Arm 虚拟硬件 Corstone-300 平台进行验证。
    提示,该任务会涉及以下几个关键步骤:
    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) 平台验证应用程序的运行结果。
  • 提交内容:
    • 项目启动前,请提交 RFC 文档(注意标明所选模型及来源)。
    • PR 示例工程代码至 GitHub 仓库,工程文件结构请参考 Object-Detection-example,注意同步更新 README.md 说明文档的内容。代码合入仓库地址及合入规范将在 RFC 文档确认后提供。
  • 技术要求:
    • 熟练掌握 TVM 原理及 TVM 前端算子开发流程。
    • 熟练使用 c/c++,Python 进行工程项目开发。
    • 熟悉基础的 Linux 操作系统命令。
    • 熟悉深度学习工程开发流程,tinyML 相关知识理论并掌握基本的嵌入式软件开发知识。

No.224:利用 Jina AI 来部署开放域聊天模型 PLATO-Mini

题目简介: 使用 Jina 框架部署预训练模型 PLATO-Mini 实现开放域对话服务。

  • 技术标签:深度学习,Python
  • 任务难度:基础 ⭐️
  • 详细描述:
    • 1)学习 Jina 开源MLOps框架的使用,熟悉3个基本概念 Document, Executor, Flow;详细文档参见 docs
    • 2)封装实现一个新的 Executor PlatoXLExecutor,在 __init__ 中实现paddle模型的加载; 实现一个新的 endpoint generate 完成对话任务;请参考文档 doc
    • 3)定义一个 Jina Flow,Flow中使用 PlatoXLExecutor对外提供 gRPC, HTTPWebSocket 三种服务类型;请参考文档 doc
    • 4)【进阶】 实现 半精度 fp16 的推理,减少模型对GPU显存的占用,同时加速模型推理速度;
    • 5)【进阶】完成一个简单的交互界面展示对话效果
  • 提交内容:
    • 提交方案 rfc 至仓库 rfcs 目录下;
    • 上传 PlatoXLExecutorJina Hub
    • 请将代码提交至仓库 src 目录下,并创建自己的文件夹。
  • 合入标准
    • 按 rfc 设计文档格式,提交设计思路,并保证后期提交的内容与该技术方案保持一致;如果实际开发过程中需要对设计实现思路有更改,提前和mentor沟通确认通过后才可以被接受。
    • 针对提交的内容,在自定义 repo 下建立API功能实现、单测、API 文档对应的文件夹,并完成功能实现、单测、功能测试。
  • 技术要求:
    • 熟练掌握Python, 了解AI部署

No.225:使用 Jina AI 和 UIE 搭建可视化信息抽取系统

题目简介: 基于通用信息抽取 (UIE)(https://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/uie) 在 Jina 中实现一个可视化的信息抽取系统

  • 技术标签:深度学习,Python
  • 任务难度:基础 ⭐️
  • 详细描述:
    • 1)学习 Jina 开源MLOps框架的使用,熟悉3个基本概念 Document, Executor, Flow;详细文档参见 docs
    • 2)封装实现一个新的 Executor UIEExecutor,在 __init__ 中实现UIE Taskflow 的加载; 请参考文档 doc
    • 3)定义一个 Jina Flow,Flow中使用 UIEExecutor对外提供 gRPC, HTTPWebSocket 三种服务类型;请参考文档 doc
    • 4)实现一个前端交互页面可视化信息抽取结果 (前端页面的实现可以使用 Dask, Gradio, Streamlit 或者 Vue, React等)
  • 提交内容:
    • 提交方案 rfc 至仓库 rfcs 目录下;
    • 上传 UIEExecutorJina Hub
    • 请将代码提交至仓库 src 目录下,并创建自己的文件夹。
  • 合入标准
    • 按 rfc 设计文档格式,提交设计思路,并保证后期提交的内容与该技术方案保持一致;如果实际开发过程中需要对设计实现思路有更改,提前和mentor沟通确认通过后才可以被接受。
    • 针对提交的内容,在自定义 repo 下建立API功能实现、单测、API 文档对应的文件夹,并完成功能实现、单测、功能测试。
  • 技术要求:
    • 熟练掌握Python, 了解AI部署

No.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个算子做适配并完成单算子测试。

TVM 队伍
multiclass_nms3
set_value
pool3d
max_pool2d_with_index
tanh_shrink
max_pool3d_with_index

【提示】:

1.在提交PR前需通过RFC提交自己要算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)

2.优先提交代码的团队会被优先review

3.优先通过算子单测的团队视为完成任务,且此算子不会被作为比赛任务继续适配

算子任务提交:

  1. 完成TVM算子映射,并提交 PR;提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样

整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op

def convert_leaky_relu(g, op, block):
    """Operator converter for leaky_relu."""

    alpha = op.attr("alpha")
    x = g.get_node(op.input("X")[0])
    out = _op.nn.leaky_relu(x, alpha=alpha)
    g.add_node(op.output("Out")[0], out)

更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py

  1. 完成TVM算子实现代码,并添加单测且验证通过

用户需要做两件事:

  • 定义组网结构
  • 制定输入shape以及输入类型

通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作

@tvm.testing.uses_gpu
def test_forward_leaky_relu():
    @paddle.jit.to_static
    def leaky_relu(inputs):
        return nn.functional.leaky_relu(inputs)

    input_shape = [1, 3, 10, 10]
    input_data = paddle.rand(input_shape, dtype="float32")
    verify_model(leaky_relu, input_data=input_data)

更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py

  1. 注意代码风格问题

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)

  1. OP代码以及单测实现之后,@jiangjiajun进行code review以及代码修改,修改完成后即可代码合入

RFC内容提交(必须项)

开发者需要提供一份RFC,用来描述本次任务的设计方案;

参考模板:

Solution name 方案名称

Description 方案描述

Workflow 方案流程

Results visualizing 方案运行效果

Project Timeline 项目提交时间计划

Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)

算子参考文档:

  1. Paddle算子文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
  2. TVM Relay API文档:https://tvm.apache.org/docs/reference/api/python/relay/index.html

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个算子做适配并完成单算子测试。

TVM 队伍
affine_channel
conv3d
data_norm
dist
eye
fill_zeros_like
gaussian_random
grid_sampler
index_select
mish
flip
p_norm
roi_align
share_data
silu
softmax_with_cross_entropy
softshrink
linspace
take_along_axis
thresholded_relu
tile
unique
unstack
where

【提示】:

1.在提交PR前需通过RFC提交自己要算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)

2.优先提交代码的团队会被优先review

3.优先通过算子单测的团队视为完成任务,且此算子不会被作为比赛任务继续适配

算子任务提交:

  1. 完成TVM算子映射,并提交 PR;提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样

整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op

def convert_leaky_relu(g, op, block):
    """Operator converter for leaky_relu."""

    alpha = op.attr("alpha")
    x = g.get_node(op.input("X")[0])
    out = _op.nn.leaky_relu(x, alpha=alpha)
    g.add_node(op.output("Out")[0], out)

更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py

2.完成TVM算子实现代码,并添加单测且验证通过

用户需要做两件事:

  • 定义组网结构
  • 制定输入shape以及输入类型

通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作

@tvm.testing.uses_gpu
def test_forward_leaky_relu():
    @paddle.jit.to_static
    def leaky_relu(inputs):
        return nn.functional.leaky_relu(inputs)

    input_shape = [1, 3, 10, 10]
    input_data = paddle.rand(input_shape, dtype="float32")
    verify_model(leaky_relu, input_data=input_data)

更多单测实现以及添加在: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) 个人介绍及以往项目经历(可选)

算子参考文档:

  1. Paddle算子文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
  2. TVM Relay API文档:https://tvm.apache.org/docs/reference/api/python/relay/index.html

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个算子做适配并完成单算子测试。

TVM 队伍
affine_channel
conv3d
data_norm
dist
eye
fill_zeros_like
gaussian_random
grid_sampler
index_select
mish
flip
p_norm
roi_align
share_data
silu
softmax_with_cross_entropy
softshrink
linspace
take_along_axis
thresholded_relu
tile
unique
unstack
where

【提示】:

1.在提交PR前需通过RFC提交自己要算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)

2.优先提交代码的团队会被优先review

3.优先通过算子单测的团队视为完成任务,且此算子不会被作为比赛任务继续适配

算子任务提交:

  1. 完成TVM算子映射,并提交 PR;提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样

整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op

def convert_leaky_relu(g, op, block):
    """Operator converter for leaky_relu."""

    alpha = op.attr("alpha")
    x = g.get_node(op.input("X")[0])
    out = _op.nn.leaky_relu(x, alpha=alpha)
    g.add_node(op.output("Out")[0], out)

更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py

2.完成TVM算子实现代码,并添加单测且验证通过

用户需要做两件事:

  • 定义组网结构
  • 制定输入shape以及输入类型

通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作

@tvm.testing.uses_gpu
def test_forward_leaky_relu():
    @paddle.jit.to_static
    def leaky_relu(inputs):
        return nn.functional.leaky_relu(inputs)

    input_shape = [1, 3, 10, 10]
    input_data = paddle.rand(input_shape, dtype="float32")
    verify_model(leaky_relu, input_data=input_data)

更多单测实现以及添加在: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) 个人介绍及以往项目经历(可选)

算子参考文档:

  1. Paddle算子文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
  2. TVM Relay API文档:https://tvm.apache.org/docs/reference/api/python/relay/index.html

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个算子做适配并完成单算子测试。

TVM 队伍
affine_channel
conv3d
data_norm
dist
eye
fill_zeros_like
gaussian_random
grid_sampler
index_select
mish
flip
p_norm
roi_align
share_data
silu
softmax_with_cross_entropy
softshrink
linspace
take_along_axis
thresholded_relu
tile
unique
unstack
where

【提示】:

1.在提交PR前需通过RFC提交自己要算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)

2.优先提交代码的团队会被优先review

3.优先通过算子单测的团队视为完成任务,且此算子不会被作为比赛任务继续适配

算子任务提交:

  1. 完成TVM算子映射,并提交 PR;提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样

整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op

def convert_leaky_relu(g, op, block):
    """Operator converter for leaky_relu."""

    alpha = op.attr("alpha")
    x = g.get_node(op.input("X")[0])
    out = _op.nn.leaky_relu(x, alpha=alpha)
    g.add_node(op.output("Out")[0], out)

更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py

2.完成TVM算子实现代码,并添加单测且验证通过

用户需要做两件事:

  • 定义组网结构
  • 制定输入shape以及输入类型

通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作

@tvm.testing.uses_gpu
def test_forward_leaky_relu():
    @paddle.jit.to_static
    def leaky_relu(inputs):
        return nn.functional.leaky_relu(inputs)

    input_shape = [1, 3, 10, 10]
    input_data = paddle.rand(input_shape, dtype="float32")
    verify_model(leaky_relu, input_data=input_data)

更多单测实现以及添加在: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) 个人介绍及以往项目经历(可选)

算子参考文档:

  1. Paddle算子文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
  2. TVM Relay API文档:https://tvm.apache.org/docs/reference/api/python/relay/index.html

No.230:TVM项目5-为Paddle框架新增TVM算子(基础题)

  1. 背景:

    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个算子做适配并完成单算子测试。

    TVM 队伍
    affine_channel
    conv3d
    data_norm
    dist
    eye
    fill_zeros_like
    gaussian_random
    grid_sampler
    index_select
    mish
    flip
    p_norm
    roi_align
    share_data
    silu
    softmax_with_cross_entropy
    softshrink
    linspace
    take_along_axis
    thresholded_relu
    tile
    unique
    unstack
    where

    【提示】:

    1.在提交PR前需通过RFC提交自己要算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)

    2.优先提交代码的团队会被优先review

    3.优先通过算子单测的团队视为完成任务,且此算子不会被作为比赛任务继续适配

    算子任务提交:

    1. 完成TVM算子映射,并提交 PR;提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样

    整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op

    def convert_leaky_relu(g, op, block):
        """Operator converter for leaky_relu."""
    
        alpha = op.attr("alpha")
        x = g.get_node(op.input("X")[0])
        out = _op.nn.leaky_relu(x, alpha=alpha)
        g.add_node(op.output("Out")[0], out)

    更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py

    2.完成TVM算子实现代码,并添加单测且验证通过

    用户需要做两件事:

    • 定义组网结构
    • 制定输入shape以及输入类型

    通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作

    @tvm.testing.uses_gpu
    def test_forward_leaky_relu():
        @paddle.jit.to_static
        def leaky_relu(inputs):
            return nn.functional.leaky_relu(inputs)
    
        input_shape = [1, 3, 10, 10]
        input_data = paddle.rand(input_shape, dtype="float32")
        verify_model(leaky_relu, input_data=input_data)

    更多单测实现以及添加在: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) 个人介绍及以往项目经历(可选)

    算子参考文档:

    1. Paddle算子文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
    2. TVM Relay API文档:https://tvm.apache.org/docs/reference/api/python/relay/index.html

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的实现

  1. TVM Paddle前端代码:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
  2. Paddle算子定义:https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/fluid/operators
  3. Paddle2ONNX实现:https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper

任务难度:基础题

完善或修复4个以上算子支持程度或问题

【提示】:

1.优先提交代码的团队会被优先review

2.优先通过单测并合入的团队视为完成任务

3.在提交PR前需通过RFC提交自己要修复的算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通);如有选手重复,优先通过RFC的选手有效。

4.如提交的代码已经被合入的PR覆盖,例如修复的4个算子,其中已经有2个被合入的修复,则视为这2个无效

任务提交:

  1. 完成TVM算子映射,并提交 PR;提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样

整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op

def convert_leaky_relu(g, op, block):
    """Operator converter for leaky_relu."""

    alpha = op.attr("alpha")
    x = g.get_node(op.input("X")[0])
    out = _op.nn.leaky_relu(x, alpha=alpha)
    g.add_node(op.output("Out")[0], out)

更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py

  1. 完成TVM算子实现代码,并添加单测且验证通过

用户需要做两件事:

  • 定义组网结构
  • 制定输入shape以及输入类型

通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作

@tvm.testing.uses_gpu
def test_forward_leaky_relu():
    @paddle.jit.to_static
    def leaky_relu(inputs):
        return nn.functional.leaky_relu(inputs)

    input_shape = [1, 3, 10, 10]
    input_data = paddle.rand(input_shape, dtype="float32")
    verify_model(leaky_relu, input_data=input_data)

更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py

  1. 注意代码风格问题

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)

  1. OP代码以及单测实现之后,@jiangjiajun进行code review以及代码修改,修改完成后即可代码合入

RFC内容提交(必须项)

开发者需要提供一份RFC,用来描述本次任务的设计方案;

参考模板:

Solution name 方案名称

Description 方案描述

Workflow 方案流程

Results visualizing 方案运行效果

Project Timeline 项目提交时间计划

Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)

算子参考文档:

  1. Paddle算子文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
  2. TVM Relay API文档:https://tvm.apache.org/docs/reference/api/python/relay/index.html

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的实现

  1. TVM Paddle前端代码:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
  2. Paddle算子定义:https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/fluid/operators
  3. Paddle2ONNX实现:https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper

任务难度:基础题

完善或修复4个以上算子支持程度或问题

【提示】:

1.优先提交代码的团队会被优先review

2.优先通过单测并合入的团队视为完成任务

3.在提交PR前需通过RFC提交自己要修复的算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通);如有选手重复,优先通过RFC的选手有效。

4.如提交的代码已经被合入的PR覆盖,例如修复的4个算子,其中已经有2个被合入的修复,则视为这2个无效

任务提交:

  1. 完成TVM算子映射,并提交 PR;提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样

整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op

def convert_leaky_relu(g, op, block):
    """Operator converter for leaky_relu."""

    alpha = op.attr("alpha")
    x = g.get_node(op.input("X")[0])
    out = _op.nn.leaky_relu(x, alpha=alpha)
    g.add_node(op.output("Out")[0], out)

更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py

  1. 完成TVM算子实现代码,并添加单测且验证通过

用户需要做两件事:

  • 定义组网结构
  • 制定输入shape以及输入类型

通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作

@tvm.testing.uses_gpu
def test_forward_leaky_relu():
    @paddle.jit.to_static
    def leaky_relu(inputs):
        return nn.functional.leaky_relu(inputs)

    input_shape = [1, 3, 10, 10]
    input_data = paddle.rand(input_shape, dtype="float32")
    verify_model(leaky_relu, input_data=input_data)

更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py

  1. 注意代码风格问题

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)

  1. OP代码以及单测实现之后,@jiangjiajun进行code review以及代码修改,修改完成后即可代码合入

RFC内容提交(必须项)

开发者需要提供一份RFC,用来描述本次任务的设计方案;

参考模板:

Solution name 方案名称

Description 方案描述

Workflow 方案流程

Results visualizing 方案运行效果

Project Timeline 项目提交时间计划

Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)

算子参考文档:

  1. Paddle算子文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
  2. TVM Relay API文档:https://tvm.apache.org/docs/reference/api/python/relay/index.html

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的实现

  1. TVM Paddle前端代码:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
  2. Paddle算子定义:https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/fluid/operators
  3. Paddle2ONNX实现:https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper

任务难度:基础题

完善或修复4个以上算子支持程度或问题

【提示】:

1.优先提交代码的团队会被优先review

2.优先通过单测并合入的团队视为完成任务

3.在提交PR前需通过RFC提交自己要修复的算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通);如有选手重复,优先通过RFC的选手有效。

4.如提交的代码已经被合入的PR覆盖,例如修复的4个算子,其中已经有2个被合入的修复,则视为这2个无效

任务提交:

  1. 完成TVM算子映射,并提交 PR;提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样

整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op

def convert_leaky_relu(g, op, block):
    """Operator converter for leaky_relu."""

    alpha = op.attr("alpha")
    x = g.get_node(op.input("X")[0])
    out = _op.nn.leaky_relu(x, alpha=alpha)
    g.add_node(op.output("Out")[0], out)

更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py

  1. 完成TVM算子实现代码,并添加单测且验证通过

用户需要做两件事:

  • 定义组网结构
  • 制定输入shape以及输入类型

通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作

@tvm.testing.uses_gpu
def test_forward_leaky_relu():
    @paddle.jit.to_static
    def leaky_relu(inputs):
        return nn.functional.leaky_relu(inputs)

    input_shape = [1, 3, 10, 10]
    input_data = paddle.rand(input_shape, dtype="float32")
    verify_model(leaky_relu, input_data=input_data)

更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py

  1. 注意代码风格问题

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)

  1. OP代码以及单测实现之后,@jiangjiajun进行code review以及代码修改,修改完成后即可代码合入

RFC内容提交(必须项)

开发者需要提供一份RFC,用来描述本次任务的设计方案;

参考模板:

Solution name 方案名称

Description 方案描述

Workflow 方案流程

Results visualizing 方案运行效果

Project Timeline 项目提交时间计划

Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)

算子参考文档:

  1. Paddle算子文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
  2. TVM Relay API文档:https://tvm.apache.org/docs/reference/api/python/relay/index.html

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的实现

  1. TVM Paddle前端代码:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
  2. Paddle算子定义:https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/fluid/operators
  3. Paddle2ONNX实现:https://github.com/PaddlePaddle/Paddle2ONNX/tree/develop/paddle2onnx/mapper

任务难度:进阶题

完善或修复8个以上算子支持程度或问题

【提示】:

1.优先提交代码的团队会被优先review

2.优先通过单测并合入的团队视为完成任务

3.在提交PR前需通过RFC提交自己要修复的算子列表。RFC提交后,不可随意修改(如确实必要,与运营人员沟通);如有选手重复,优先通过RFC的选手有效。

4.如提交的代码已经被合入的PR覆盖,例如修复的8个算子,其中已经有2个被合入的修复,则视为这2个无效?

任务提交:

  1. 完成TVM算子映射,并提交 PR;提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样

整体思想通过TVM Relay IR去表示对应PaddlePaddle OP,可通过一对一或者多对一去组合实现,以下面Leaky_relu为例,可直接通过_op.nn.leaky_relu去表示PaddlePaddle的leaky_relu op

def convert_leaky_relu(g, op, block):
    """Operator converter for leaky_relu."""

    alpha = op.attr("alpha")
    x = g.get_node(op.input("X")[0])
    out = _op.nn.leaky_relu(x, alpha=alpha)
    g.add_node(op.output("Out")[0], out)

更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py

  1. 完成TVM算子实现代码,并添加单测且验证通过

用户需要做两件事:

  • 定义组网结构
  • 制定输入shape以及输入类型

通过定义PaddlePaddle 动态图 api 进行组网,指定输入数据的shape以及类型,调用verify_model函数自动进行Relay IR转换以及精度验证工作

@tvm.testing.uses_gpu
def test_forward_leaky_relu():
    @paddle.jit.to_static
    def leaky_relu(inputs):
        return nn.functional.leaky_relu(inputs)

    input_shape = [1, 3, 10, 10]
    input_data = paddle.rand(input_shape, dtype="float32")
    verify_model(leaky_relu, input_data=input_data)

更多单测实现以及添加在:https://github.com/apache/tvm/blob/main/tests/python/frontend/paddlepaddle/test_forward.py

  1. 注意代码风格问题

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)

  1. OP代码以及单测实现之后,@jiangjiajun进行code review以及代码修改,修改完成后即可代码合入

RFC内容提交(必须项)

开发者需要提供一份RFC,用来描述本次任务的设计方案;

参考模板:

Solution name 方案名称

Description 方案描述

Workflow 方案流程

Results visualizing 方案运行效果

Project Timeline 项目提交时间计划

Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)

算子参考文档:

  1. Paddle算子文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
  2. TVM Relay API文档:https://tvm.apache.org/docs/reference/api/python/relay/index.html

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_quantizedequantize_linear来表达量化信息(算子与ONNX的DequantizeLinear/QuantizeLinear类似),与ONNX量化模型原理类似。开发者在开发时,可参考TVM中其它深度学习框架前端对量化模型的支持方式来实现。

开发者可使用下面的量化模型进行正确性验证和性能测试

  1. ResNet50_vd: https://bj.bcebos.com/paddlehub/fastdeploy/resnet50_vd_ptq.tar
  2. MobileNetV1: https://bj.bcebos.com/paddlehub/fastdeploy/mobilenetv1_ssld_ptq.tar
  3. PP-LiteSeg: https://bj.bcebos.com/paddlehub/fastdeploy/PP_LiteSeg_T_STDC1_cityscapes_without_argmax_infer_QAT_new.tar

代码参考链接

  1. TVM Paddle前端代码:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py
  2. TVM ONNX前端代码: https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/onnx.py
  3. Paddle 量化算子定义:https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/fluid/operators/quantize_linear_op.cc
  4. ONNX 量化算子定义:https://github.com/onnx/onnx/blob/main/docs/Operators.md

【提示】:

1.优先提交代码的团队会被优先review

2.优先通过单测并合入的团队视为完成任务

3.在提交PR前需通过RFC提交自己方案。RFC提交后,不可随意修改(如确实必要,与运营人员沟通)

任务提交:

  1. 完成TVM量化支持,与量化性能验证数据,并提交 PR;提交PR时需在PR标题加上【PaddlePaddle Hackathon 4】字样

整体思想通过TVM Relay IR去表示对应PaddlePaddle 量化OP,并进行量化的支持。具体实现方案可参考TVM中的onnx前端实现

def convert_leaky_relu(g, op, block):
    """Operator converter for leaky_relu."""

    alpha = op.attr("alpha")
    x = g.get_node(op.input("X")[0])
    out = _op.nn.leaky_relu(x, alpha=alpha)
    g.add_node(op.output("Out")[0], out)

更多算子代码实现以及添加在:https://github.com/apache/tvm/blob/main/python/tvm/relay/frontend/paddlepaddle.py

  1. 注意代码风格问题

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)

  1. 代码实现之后,@jiangjiajun进行code review以及代码修改,修改完成后即可代码合入

RFC内容提交(必须项)

开发者需要提供一份RFC,用来描述本次任务的设计方案;

参考模板:

Solution name 方案名称

Description 方案描述

Workflow 方案流程

Results visualizing 方案运行效果

Project Timeline 项目提交时间计划

Your experience in ML and DL (optional) 个人介绍及以往项目经历(可选)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

答疑交流

@paddle-bot
Copy link

paddle-bot bot commented Feb 18, 2023

您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网API文档常见问题历史IssueAI社区来寻求解答。祝您生活愉快~

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 APIFAQGithub Issue and AI community to get the answer.Have a nice day!

@paddle-bot paddle-bot bot added type/others 其他问题 hackathon labels Feb 20, 2023
@cloud2009 cloud2009 changed the title 【PaddlePaddle Hackathon 4】 子任务合集3(2023-02-20公布) 【PaddlePaddle Hackathon 4】生态伙伴开源贡献任务合集 Feb 20, 2023
@cloud2009
Copy link
Author

Task212 是不是已经被实现了 https://github.com/openvinotoolkit/openvino/blob/86b50044cdc98a4ebe5df1ee2088584fcd95b269/src/frontends/paddle/tests/test_models/gen_scripts/generate_reduce_mean.py#L19 @cloud2009

您好 这个题目经过OpenVINO确认,确实已经实现了,现在已经替换为另一个题目,请查看。

@jinyouzhi
Copy link
Contributor

Task212 是不是已经被实现了 https://github.com/openvinotoolkit/openvino/blob/86b50044cdc98a4ebe5df1ee2088584fcd95b269/src/frontends/paddle/tests/test_models/gen_scripts/generate_reduce_mean.py#L19 @cloud2009

您好 这个题目经过OpenVINO确认,确实已经实现了,现在已经替换为另一个题目,请查看。

Great, Thanks!

@cloud2009
Copy link
Author

Task No.205:为OpenVINO notebook新增demo示例 的RFC提交模板为:
image

@cloud2009 cloud2009 assigned onecatcn and cloud2009 and unassigned onecatcn Feb 27, 2023
@Leenorwich
Copy link

Openvino Arm TVM

@ziyuanji
Copy link

ziyuanji commented May 17, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants
@luotao1 @jinyouzhi @onecatcn @Ligoml @cloud2009 @Leenorwich @ziyuanji and others