-
Notifications
You must be signed in to change notification settings - Fork 5.9k
Closed
Labels
PFCCPaddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfccPaddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfccstatus/close已关闭已关闭type/others其他问题其他问题
Description
✨ 任务背景
现有的深度学习框架主要是基于对实数函数的优化设计的,在主流的深度学习应用场景中,网络的输入变量,中间变量,输出变量都是实数,与此相关的基础设施,比如数组,优化器等组件也都是适用于实数类型。
但随着深度学习应用的扩展,也出现对复数支持的需求,比如图像,语音等领域的傅里叶变换,量子物理领域,其理论体系都是基于复数建立的。虽然并非不能用实数表示复数运算,但稍显繁琐,深度学习框架有原生的复数支持,可以使建模更接近其理论。
从更广义的视角来看, 深度学习框架提供更好的复数支持,也是更好地支持复数神经网络研究的基础。
现邀请大家一起参与paddle的复数支持。
主要修改点
需要实现对应op的 前向以及反向复数计算逻辑(部分op没有反向),并在对应op单测中添加复数的单测
- 在op对应的前向以及反向kernel增加复数运算逻辑,且注册相应的complex64, complex128数据类型。 复数反向计算可参考 complex_autograd
- 在对应op的单测中增加复数类型
- 在对应api的类型校验中增加复数
具体修改可参考pr:
注意:
- API修改时,请注意同时修改 API中文文档(位于doc repo中)、API英文文档(数据类型额外可支持复数)。
- 实现反向时,需将反向计算公式注释在对应实现逻辑。
- PR请先通过CI检查后再发起review,避免增加不必要的review成本。
- 如何计算复数梯度 & 详细推导证明:https://github.com/PaddlePaddle/community/tree/master/pfcc/paddle-code-reading/complex_autograd
任务列表
| 序号 | 算子 | 认领人/状态/PR号 |
|---|---|---|
| 1 | addmm | |
| 2 | all_row, all_reduce | |
| 3 | Det(determinant) | @GreatV |
| 4 | bmm | @GreatV @YibinLiu666 |
| 5 | slogdet(slogdeterminant) | |
| 6 | Norm | |
| 7 | Log/log10/log2/log1p | @zbt78 |
| 8 | Rsqrt | @zbt78 @Aoraki-Dream |
| 9 | renorm | |
| 10 | sqrt | @piood @Aoraki-Dream |
| 11 | std | |
| 12 | pow | @zbt78 |
| 13 | tanhshrink | @zbt78 |
| 14 | mm | @yyBlone |
| 15 | atan2 | |
| 16 | Dist | |
| 17 | Floor | @KDZZZZZZ |
| 18 | logsoftmax | |
| 19 | logcumsumexp | |
| 20 | logsumexp | @struim |
| 21 | cholesky_solve | |
| 22 | cholesky | |
| 23 | lstsq | |
| 24 | matrix_power | |
| 25 | Cross | @zbt78 |
| 26 | Inv | @zbt78 |
| 27 | Svd | |
| 28 | Solvetriangular_solve | |
| 29 | Ceil | |
| 30 | p_norm | |
| 31 | Qr | |
| 32 | Lu | |
| 33 | abs_coo/abs_csr(sparse) | @bapijun |
| 34 | addmm_coo_dense(sparse) | @bapijun |
| 35 | addmm_csr_dense(sparse) | |
| 36 | asin_coo/asin_csr(sparse) | @Aoraki-Dream |
| 37 | asinh_coo/asinh_csr(sparse) | @Aoraki-Dream |
| 38 | atan_coo/atan_csr(sparse) | @Aoraki-Dream |
| 39 | atanh_coo/atanh_csr(sparse) | @Aoraki-Dream |
| 40 | ||
| 41 | expm1_coo/expm1_csr(sparse) | @Aoraki-Dream |
| 42 | log1p_coo/log1p_csr(sparse) | @Aoraki-Dream |
| 43 | matmul_csr_dense(sparse) | |
| 44 | ||
| 45 | pow_coo/pow_csr(sparse) | @Aoraki-Dream |
| 46 | sin_coo/sin_csr(sparse) | @bapijun |
| 47 | sinh_coo/sinh_csr(sparse) | @bapijun @Aoraki-Dream |
| 48 | sqrt_coo/sqrt_csr(sparse) | @Aoraki-Dream |
| 49 | square_coo/square_csr(sparse) | @Aoraki-Dream |
| 50 | tan_coo/tan_csr(sparse) | @Aoraki-Dream |
| 51 | tanh_coo/tanh_csr(sparse) | @Aoraki-Dream |
| 52 | Expand | |
| 53 | expand_as_v2 | |
| 54 | put_along_axis | |
| 55 | take_along_axis |
认领方式
请大家以 comment 的形式认领任务,如:
【报名】:1、3、12-13
多个任务之间需要使用中文顿号分隔,报名多个连续任务可用横线表示,如 2-5
PR 提交格式
- 在 PR 的标题中以 【complex op No.】 开头,注明任务编号
- PR描述中需要附上本issue
- 评论里或者 review request @zbt78 (recommend) @GGBond8488 研发会进行审核
看板信息
| 任务方向 | 任务数量 | 提交作品 / 任务认领 | 提交率 | 完成 | 完成率 |
|---|---|---|---|---|---|
| 快乐开源 | 55 | 24 / 27 | 43.64% | 15 | 27.27% |
统计信息
排名不分先后 @zbt78 (3) @bapijun (2) @Aoraki-Dream (10)
Metadata
Metadata
Assignees
Labels
PFCCPaddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfccPaddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfccstatus/close已关闭已关闭type/others其他问题其他问题
Type
Projects
Status
Done