Skip to content

Commit 8d3a5ec

Browse files
zhwesky2010luotao1
andauthored
add No.113~121 API enhance or Buf-fix task (#771)
* add No.113~121 API enhance or Buf-fix task * Update 【PaddlePaddle Hackathon 5th】开源贡献个人挑战赛 API 开发任务合集.md * Update 【PaddlePaddle Hackathon 5th】开源贡献个人挑战赛框架开发任务合集.md * Update 【PaddlePaddle Hackathon 5th】开源贡献个人挑战赛rfc需求列表.md * Update 【PaddlePaddle Hackathon 5th】开源贡献个人挑战赛rfc需求列表.md --------- Co-authored-by: Tao Luo <[email protected]>
1 parent c4ac7f9 commit 8d3a5ec

File tree

2 files changed

+260
-0
lines changed

2 files changed

+260
-0
lines changed

hackathon/hackathon_5th/【PaddlePaddle Hackathon 5th】开源贡献个人挑战赛 API 开发任务合集.md

Lines changed: 251 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -963,3 +963,254 @@ Rprop优化器是在A direct adaptive method for faster backpropagation learning
963963

964964
- 熟练掌握 C++,Python
965965
- 熟悉CUDA库cusparse的调用方式
966+
967+
968+
### No.114:为paddle.nn.functional.embedding增加参数max_norm/norm_type/scale_grad_by_freq
969+
970+
**详细描述:**
971+
972+
torch.nn.functional.embedding支持max_norm/norm_type/scale_grad_by_freq参数,而paddle不支持,需要调研这三个参数的功能,并且为paddle.nn.functional.embedding增加这三个参数。
973+
需要注意同时修改paddle.nn.Embedding。
974+
975+
976+
**提交内容:**
977+
978+
- 算子Kernel 和 API的修改文档,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)
979+
- 单测代码,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)中,需自行寻找相应的API或OP测试代码,如未有现成代码,则需自行增加测试case,对改动功能点需要着重测试并对齐Pytorch计算结果
980+
- API中文文档,如果有API参数的增删或功能的修改,需修改API文档并提交到[Docs Repo](https://github.com/PaddlePaddle/docs)
981+
982+
**技术要求:**
983+
984+
- 熟练掌握 C++,Python
985+
986+
**参考内容:**
987+
988+
Pytorch对应API参考:torch.nn.functional.embedding/torch.nn.Embedding
989+
990+
991+
### No.115:为paddle.linalg.norm进行功能对齐与功能增强
992+
993+
**详细描述:**
994+
995+
与torch.norm/torch.linalg.norm相比,paddle.linalg.norm需要进行以下方面的修改:
996+
997+
1)【功能对齐】求解p范数时,torch是对矩阵求p范数,而paddle是将矩阵直接展平为向量求p范数,两者计算结果不一致,需要对paddle的实现逻辑进行调整
998+
2)【功能增强】torch支持负实数的范数,paddle不支持
999+
3)【功能增强】torch支持p='nuc',paddle不支持
1000+
1001+
1002+
**提交内容:**
1003+
1004+
- 算子Kernel 和 API的修改文档,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)
1005+
- 单测代码,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)中,需自行寻找相应的API或OP测试代码,如未有现成代码,则需自行增加测试case,对改动功能点需要着重测试并对齐Pytorch计算结果
1006+
- API中文文档,如果有API参数的增删或功能的修改,需修改API文档并提交到[Docs Repo](https://github.com/PaddlePaddle/docs)
1007+
1008+
**技术要求:**
1009+
1010+
- 熟练掌握 C++,Python
1011+
1012+
**参考内容:**
1013+
1014+
Pytorch对应API参考:torch.norm/torch.linalg.norm
1015+
1016+
1017+
### No.116:为paddle.nn.LSTM/RNNBase/paddle.quantile/nanquantile功能增强
1018+
1019+
**详细描述:**
1020+
1021+
为以下多个API进行功能增强:
1022+
1023+
1)【功能增强】torch.nn.LSTM支持参数proj_size,表示将隐藏状态h的维度映射到proj_size对应的大小,而paddle.nn.LSTM不支持
1024+
2)【功能增强】torch.nn.RNNBase的mode参数,可取值为 `'LSTM', 'GRU', 'RNN_TANH', 'RNN_RELU'`,而paddle.nn.RNNBase只支持 `'LSTM', 'GRU'`,不支持其他两种
1025+
3)【功能增强】torch.quantile/torch.nanquantile的输入q支持1D Tensor表示1个list,而paddle.quantile/nanquantile不支持输入1D Tensor表示1个list
1026+
4)【功能增强】torch.quantile/torch.nanquantile支持interpolation参数,而paddle不支持
1027+
1028+
1029+
**提交内容:**
1030+
1031+
- 算子Kernel 和 API的修改文档,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)
1032+
- 单测代码,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)中,需自行寻找相应的API或OP测试代码,如未有现成代码,则需自行增加测试case,对改动功能点需要着重测试并对齐Pytorch计算结果
1033+
- API中文文档,如果有API参数的增删或功能的修改,需修改API文档并提交到[Docs Repo](https://github.com/PaddlePaddle/docs)
1034+
1035+
**技术要求:**
1036+
1037+
- 熟练掌握 C++,Python
1038+
1039+
1040+
**参考内容:**
1041+
1042+
与上述列出的4个问题点一一对应:
1043+
1044+
1)https://github.com/PaddlePaddle/Paddle/pull/56460
1045+
2)https://github.com/PaddlePaddle/Paddle/pull/56460
1046+
3)https://github.com/PaddlePaddle/Paddle/pull/56461
1047+
4)https://github.com/PaddlePaddle/Paddle/pull/56461
1048+
1049+
Pytorch对应API参考:torch.nn.LSTM/torch.nn.RNNBase/torch.quantile/torch.nanquantile
1050+
1051+
1052+
### No.117:为paddle.histogram/paddle.nn.functional.threshold进行功能对齐与功能增强
1053+
1054+
**详细描述:**
1055+
1056+
为以下多个API进行功能增强和功能对齐:
1057+
1058+
1)【功能增强】torch.histogram支持参数weight、density,而paddle不支持,需要调研这两个参数的功能,并且为paddle.histogram增加这两个参数
1059+
2)【功能对齐】torch.histogram返回两个Tensor:hist、bin,而paddle仅返回一个hist,需要增加一个histogram_bin_edges,支持返回bin
1060+
2)【功能增强】torch.nn.functional.threshold支持value参数,而paddle不支持,需要调研这个参数的功能,并且为paddle.nn.functional.threshold增加这个参数
1061+
1062+
1063+
**提交内容:**
1064+
1065+
- 算子Kernel 和 API的修改文档,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)
1066+
- 单测代码,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)中,需自行寻找相应的API或OP测试代码,如未有现成代码,则需自行增加测试case,对改动功能点需要着重测试并对齐Pytorch计算结果
1067+
- API中文文档,如果有API参数的增删或功能的修改,需修改API文档并提交到[Docs Repo](https://github.com/PaddlePaddle/docs)
1068+
1069+
**技术要求:**
1070+
1071+
- 熟练掌握 C++,Python
1072+
1073+
1074+
**参考内容:**
1075+
1076+
与上述列出的3个问题点一一对应:
1077+
1078+
1)https://github.com/PaddlePaddle/Paddle/pull/56771
1079+
2)https://github.com/PaddlePaddle/Paddle/pull/56771
1080+
3)https://github.com/PaddlePaddle/Paddle/pull/56853
1081+
1082+
Pytorch对应API参考: torch.histogram/torch.nn.functional.threshold
1083+
1084+
1085+
### No.118:为paddle.nn.functional.upsample/paddle.nn.initializer.XavierNormal/XavierUniform/KaimingNormal/KaimingUniform进行功能增强
1086+
1087+
**详细描述:**
1088+
1089+
为以下多个API进行功能增强:
1090+
1091+
1)【功能增强】paddle.nn.functional.upsample中目前data_format默认值始终固定为NCHW,但由于这个API支持3D/4D/5D,建议data_format默认值能根据输入维度自动切换NCW/NCHW/NCDHW
1092+
2)【功能增强】torch.nn.init.xavier_normal_/xavier_uniform_均支持参数gain,paddle.nn.initializer.XavierNormal/XavierUniform缺少参数gain,需增加该参数
1093+
3)【功能增强】torch.nn.init.kaiming_normal_/kaiming_uniform_缺少参数mode,当mode="fan_out"时,paddle.nn.initializer.KaimingNormal/KaimingUniform缺少对应可替代的功能,需增加mode参数或fan_out参数,从而补齐该功能
1094+
1095+
1096+
**提交内容:**
1097+
1098+
- 算子Kernel 和 API的修改文档,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)
1099+
- 单测代码,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)中,需自行寻找相应的API或OP测试代码,如未有现成代码,则需自行增加测试case,对改动功能点需要着重测试并对齐Pytorch计算结果
1100+
- API中文文档,如果有API参数的增删或功能的修改,需修改API文档并提交到[Docs Repo](https://github.com/PaddlePaddle/docs)
1101+
1102+
**技术要求:**
1103+
1104+
- 熟练掌握 C++,Python
1105+
1106+
1107+
**参考内容:**
1108+
1109+
https://github.com/PaddlePaddle/Paddle/pull/56471
1110+
1111+
Pytorch对应API参考: torch.nn.funciton.upsample/torch.nn.init.xavier_normal_/torch.nn.init.xavier_uniform_/torch.nn.init.kaiming_normal_/torch.nn.init.kaiming_uniform_
1112+
1113+
1114+
### No.119:为paddle.io.RandomSampler/random_split/Layer.clear_gradients进行功能增强
1115+
1116+
**详细描述:**
1117+
1118+
为以下多个API进行功能增强:
1119+
1120+
1)【功能增强】paddle.io.RandomSampler当参数 replacement = False时,不允许指定 num_samples,而torch.utils.data.RandomSampler则无此限制,需要增强该功能
1121+
2)【功能增强】torch.utils.data.random_split的lengths参数支持比例方式划分,而paddle.io.random_split不支持,需要增强该功能
1122+
3)【功能增强】paddle.nn.Layer.clear_gradients需要暴露底层的set_to_zero参数,从而和torch.nn.Module.zero_grad的set_to_none参数功能对应
1123+
1124+
**提交内容:**
1125+
1126+
- 算子Kernel 和 API的修改文档,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)
1127+
- 单测代码,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)中,需自行寻找相应的API或OP测试代码,如未有现成代码,则需自行增加测试case,对改动功能点需要着重测试并对齐Pytorch计算结果
1128+
- API中文文档,如果有API参数的增删或功能的修改,需修改API文档并提交到[Docs Repo](https://github.com/PaddlePaddle/docs)
1129+
1130+
**技术要求:**
1131+
1132+
- 熟练掌握 C++,Python
1133+
1134+
1135+
**参考内容:**
1136+
1137+
Pytorch对应API参考: torch.utils.data.RandomSampler/torch.utils.data.random_split/torch.nn.Module.zero_grad
1138+
1139+
1140+
### No.120:为paddle.round/paddle.nn.functional.max_pool1d/max_pool2d/max_pool3d进行功能增强
1141+
1142+
**详细描述:**
1143+
1144+
为以下多个API进行功能增强:
1145+
1146+
1)【功能增强】torch.round支持decimals 参数,表示舍入的小数点位数,paddle不支持,需要增加该参数
1147+
2)【功能增强】torch.nn.functional.max_pool1d/max_pool2d/max_pool3d支持dilation参数空洞池化,paddle不支持,需要增加该参数
1148+
1149+
1150+
**提交内容:**
1151+
1152+
- 算子Kernel 和 API的修改文档,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)
1153+
- 单测代码,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)中,需自行寻找相应的API或OP测试代码,如未有现成代码,则需自行增加测试case,对改动功能点需要着重测试并对齐Pytorch计算结果
1154+
- API中文文档,如果有API参数的增删或功能的修改,需修改API文档并提交到[Docs Repo](https://github.com/PaddlePaddle/docs)
1155+
1156+
1157+
**技术要求:**
1158+
1159+
- 熟练掌握 C++,Python
1160+
1161+
1162+
**参考内容:**
1163+
1164+
Pytorch对应API参考: torch.round/torch.nn.functional.max_pool1d/max_pool2d/max_pool3d
1165+
1166+
1167+
### No.121:为paddle.nn.functional.max_unpool1d/max_unpool2d/max_unpool3d/paddle.nn.functional.kl_div进行功能增强
1168+
1169+
**详细描述:**
1170+
1171+
为以下多个API进行功能增强或Bug修复:
1172+
1173+
1)【功能增强】torch.nn.functional.max_unpool1d/max_unpool2d/max_unpool3d支持int64输入,而paddle不支持,需要增加该功能
1174+
2)【Bug修复】paddle.nn.functional.max_unpool1d/max_unpool2d/max_unpool3d的output_size参数的判断有bug,输入正确的output_size会报错
1175+
3)【功能增强】torch.nn.functional.kl_div支持参数log_target,而paddle不支持,需要增加该参数
1176+
1177+
**提交内容:**
1178+
1179+
- 算子Kernel 和 API的修改文档,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)
1180+
- 单测代码,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)中,需自行寻找相应的API或OP测试代码,如未有现成代码,则需自行增加测试case,对改动功能点需要着重测试并对齐Pytorch计算结果
1181+
- API中文文档,如果有API参数的增删或功能的修改,需修改API文档并提交到[Docs Repo](https://github.com/PaddlePaddle/docs)
1182+
1183+
**技术要求:**
1184+
1185+
- 熟练掌握 C++,Python
1186+
1187+
1188+
**参考内容:**
1189+
1190+
Pytorch对应API参考: torch.nn.functional.max_unpool1d/max_unpool2d/max_unpool3d/torch.nn.functional.kl_div
1191+
1192+
1193+
### No.122:为paddle.nn.functional.max_pool1d/max_pool2d/max_pool3d/paddle.signal.stft进行功能增强
1194+
1195+
**详细描述:**
1196+
1197+
为以下多个API进行功能增强或Bug修复:
1198+
1199+
1)【Bug修复】paddle.nn.functional.max_pool1d/max_pool2d/max_pool3d当return_mask=True时,ceil_mode不生效。[问题case链接](https://github.com/PaddlePaddle/PaConvert/blob/master/tests/test_nn_functional_max_pool1d.py#L93-L106)
1200+
1201+
2)【Bug修复】paddle.signal.stft计算结果与torch.stft有较大差距,需要分析该问题并给出正确的解决方案
1202+
1203+
**提交内容:**
1204+
1205+
- 算子Kernel 和 API的修改文档,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)
1206+
- 单测代码,提交到[Paddle Repo](https://github.com/PaddlePaddle/Paddle)中,需自行寻找相应的API或OP测试代码,如未有现成代码,则需自行增加测试case,对改动功能点需要着重测试并对齐Pytorch计算结果
1207+
- API中文文档,如果有API参数的增删或功能的修改,需修改API文档并提交到[Docs Repo](https://github.com/PaddlePaddle/docs)
1208+
1209+
**技术要求:**
1210+
1211+
- 熟练掌握 C++,Python
1212+
1213+
1214+
**参考内容:**
1215+
1216+
Pytorch对应API参考: torch.nn.functional.max_pool1d/max_pool2d/max_pool3d/torch.stft

hackathon/hackathon_5th/【PaddlePaddle Hackathon 5th】开源贡献个人挑战赛rfc需求列表.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,15 @@
4949
| 40 | 🌟🌟🌟 | 为 Paddle 新增 ASGD API ||
5050
| 41 | 🌟🌟🌟 | 为 Paddle 新增 Rprop API ||
5151
| 110 | 🌟 | 为 Paddle 增强 sparse.matmul API ||
52+
| 114 | 🌟 | 为paddle.nn.functional.embedding增加参数max_norm/norm_type/scale_grad_by_freq ||
53+
| 115 | 🌟 | 为paddle.linalg.norm进行功能对齐与功能增强 ||
54+
| 116 | 🌟 | 为paddle.nn.LSTM/RNNBase/paddle.quantile/nanquantile功能增强 ||
55+
| 117 | 🌟 | 为paddle.histogram/paddle.nn.functional.threshold进行功能对齐与功能增强 ||
56+
| 118 | 🌟 | 为paddle.nn.functional.upsample/paddle.nn.initializer.XavierNormal/XavierUniform/KaimingNormal/KaimingUniform进行功能增强 ||
57+
| 119 | 🌟 | 为paddle.io.RandomSampler/random_split/Layer.clear_gradients进行功能增强 ||
58+
| 120 | 🌟 | 为paddle.round/paddle.nn.functional.max_pool1d/max_pool2d/max_pool3d进行功能增强 ||
59+
| 121 | 🌟 | 为paddle.nn.functional.max_unpool1d/max_unpool2d/max_unpool3d/paddle.nn.functional.kl_div进行功能增强 ||
60+
| 122 | 🌟 | 为paddle.nn.functional.max_pool1d/max_pool2d/max_pool3d/paddle.signal.stft进行功能增强 ||
5261

5362

5463
## 框架其他开发任务

0 commit comments

Comments
 (0)