-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Closed
Labels
Description
问题描述 Please describe your issue
已移步至:
✨ 任务背景
大家好!
现有的深度学习框架主要是基于对实数函数的优化设计的,在主流的深度学习应用场景中,网络的输入变量,中间变量,输出变量都是实数,与此相关的基础设施,比如数组,优化器等组件也都是适用于实数类型。
但随着深度学习应用的扩展,也出现对复数支持的需求,比如图像,语音等领域的傅里叶变换,量子物理领域,其理论体系都是基于复数建立的。虽然并非不能用实数表示复数运算,但稍显繁琐,深度学习框架有原生的复数支持,可以使建模更接近其理论。
从更广义的视角来看, 深度学习框架提供更好的复数支持,也是更好地支持复数神经网络研究的基础。
现邀请大家一起参与paddle的复数支持。
此 ISSUE 是 赛题十三:复数kernel调研与实现 的弱化版批量任务。
🍻 参与流程:
参与的流程大致为:
- 任务认领
- 修改示例
- 提交 PR
- 任务收尾
PR 通过 CI 后,可以评论里或者 review request @zyt1024(recommend) @GGBond8488 研发会进行审核
任务认领
直接在 ISSUE 下回复认领的任务 ID 即可。
修改示例
认领完对应的任务后,需要实现对应op的 前向以及反向复数计算逻辑(部分op没有反向),并在对应op单测中添加复数的单测
主要修改点:
- 在op对应的前向以及反向kernel增加复数运算逻辑,且注册相应的complex64, complex128数据类型。 复数反向计算可参考 complex_autograd
- 在对应op的单测中增加复数类型
- 在对应api的类型校验中增加复数
具体修改可参考pr: #55380
提交pr
每个任务需要提交至少一个 PR:
- PR标题格式:【complex op】No.xxx add complex support for xxx
- PR描述中需要附上本issue,
- 在提交PR后我们会内部指派reviewer,由该reviewer负责合入。
任务收尾
PR 提交之后,需要确认所有required CI 通过状态,若认为不是本身改动引起的ci问题可联系@GGBond8488@@ScottWong98
pr merge后则视作任务收尾。
任务列表
后续评论中给出
✨ 注意:
- 开发流程与Paddle代码贡献流程完全一致,可参考Paddle官网文档:代码贡献流程
- API修改时,请注意同时修改 API中文文档(位于doc repo中)、API英文文档(数据类型额外可支持复数)。
- 实现反向时,需将反向计算公式注释在对应实现逻辑
- PR请先通过CI检查后再发起review,避免增加不必要的review成本。
- 如何计算复数梯度 & 详细推导证明:https://github.com/PaddlePaddle/community/tree/master/pfcc/paddle-code-reading/complex_autograd
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done