-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Closed
Description
(此 ISSUE 为 PaddlePaddle Hackathon 第二期活动的任务 ISSUE,更多详见 【PaddlePaddle Hackathon 第二期】任务总览)
【任务说明】
任务标题:为 Paddle 新增 nanmedian API
技术标签:深度学习框架,Python,C++
任务难度:中等
详细描述:paddle.nanmedian 扩展了 paddle.median API 的功能,如果输入Tensor中有nan值, paddle.median 会将nan值考虑在内然后取中位数(有可能为nan值),而 paddle.nanmedian 只考虑非nan值的中位数。比如输入数据 x = [[nan, 2. , 3. ], [0. , 1. , 2. ]],x.median() 得到 [nan],x.median(0) 得到 [nan, 1.5, 2.5],x.nanmedian() 得到 [2.],x.nanmedian(0) 得到 [0, 1.5, 2.5]。此API需要支持的调用路径为:paddle.nanmedian 和 Tensor.nanmedian 。
【提交流程】
请按 新增API 开发&提交流程中的描述,完成任务提交过程中的相关步骤。
【提交内容】
- API 的设计文档,并提 PR 至 PaddlePaddle/community 的 rfcs/APIs 目录
- Python 实现代码 & 英文 API 文档,在 Paddle repo 的 python/paddle/tensor/stat.py 目录,并在 python/paddle/tensor/__init__.py 中,添加 nanmedian API,以支持 Tensor.nanmedian 的调用方式
- C ++ 实现代码,头文件在 Paddle repo 的 paddle/phi/kernels目录,cc文件在paddle/phi/kernels/cpu 目录 和 cu文件在paddle/phi/kernels/gpu 目录
- 单测代码,在 Paddle repo 的 python/paddle/fluid/tests/unittests 目录
- 中文API文档,在 docs repo 的 docs/api/paddle/ 目录下新建 nanmedian_cn.rst
【合入标准】
【技术要求】
- 熟悉 paddle C++ 层面的 sort、isnan、sum 等基础算子的逻辑和使用
- 熟练掌握 C++、Python
【参考内容】
【答疑交流】
- 如果在开发中对于上述任务有任何问题,欢迎在本 ISSUE 下留言交流。
- 对于开发中的共性问题,在活动过程中,会定期组织答疑,请大家关注官网&QQ群的通知,及时参与。