Paddle icon indicating copy to clipboard operation
Paddle copied to clipboard

【PaddlePaddle Hackathon 3 No.9】为 Paddle 新增 Laplace API

Open TUDelftHao opened this issue 2 years ago • 6 comments

PR types

New features

PR changes

APIs

Describe

新增laplace分布api;历史commit: https://github.com/PaddlePaddle/Paddle/pull/44579#issue-1316379129 设计文档:https://github.com/PaddlePaddle/community/pull/190#issue-1318006124

TUDelftHao avatar Aug 05 '22 02:08 TUDelftHao

你的PR提交成功,感谢你对开源项目的贡献! 请关注后续CI自动化测试结果,详情请参考Paddle-CI手册。 Your PR has been submitted. Thanks for your contribution! Please wait for the result of CI firstly. See Paddle CI Manual for details.

paddle-bot[bot] avatar Aug 05 '22 02:08 paddle-bot[bot]

  1. 需要按照活动要求的格式修改下pr标题,方便统计~
  2. 需要补充中文文档到 docs repo

Ligoml avatar Aug 08 '22 07:08 Ligoml

解决CI失败中问题

cxxly avatar Aug 08 '22 08:08 cxxly

修改PR标题,一句话描述清楚你的工作

cxxly avatar Aug 08 '22 08:08 cxxly

参考 test_distribution_multinomial_static 增加静态图测试(测试用例保持和动态图一致)

cxxly avatar Aug 08 '22 08:08 cxxly

@cxxly 你好,有两个疑问:

  1. 请问PR-CI-Static-Check这个CI的错误原因具体是啥? image 是要人工aprroval才能通过吗?样例代码已经按照标准修改了还是没过。
  2. 动态图单测里面有个ks test是需要Laplace sample返回一维结果,前提是loc和scale都是0维的,但是静态图里面variable好像无法传入0维参数?其他api的静态图单测没有看到类似的用例,所以这个单测我先注释掉了,辛苦看下是否保留以及需要怎样的修改。https://github.com/PaddlePaddle/Paddle/pull/44913/files#diff-dd8c71861caea3d18f6f55dd112e84257efb9c51d8e7f9d91ef0c85ca5df6e39R238

TUDelftHao avatar Aug 10 '22 02:08 TUDelftHao

@cxxly 你好,有两个疑问:

  1. 请问PR-CI-Static-Check这个CI的错误原因具体是啥? image 是要人工aprroval才能通过吗?样例代码已经按照标准修改了还是没过。
  2. 动态图单测里面有个ks test是需要Laplace sample返回一维结果,前提是loc和scale都是0维的,但是静态图里面variable好像无法传入0维参数?其他api的静态图单测没有看到类似的用例,所以这个单测我先注释掉了,辛苦看下是否保留以及需要怎样的修改。https://github.com/PaddlePaddle/Paddle/pull/44913/files#diff-dd8c71861caea3d18f6f55dd112e84257efb9c51d8e7f9d91ef0c85ca5df6e39R238
  1. 需要approve 2) 可以先注释掉,备注上注释掉原因。静态图目前还不支持创建零维Tensor,在改进中,

cxxly avatar Aug 11 '22 12:08 cxxly

  1. 需要按照活动要求的格式修改下pr标题,方便统计~
  2. 需要补充中文文档到 docs repo

@Ligoml

  1. Done
  2. 中文api文档:https://github.com/PaddlePaddle/docs/pull/5214

TUDelftHao avatar Aug 27 '22 10:08 TUDelftHao

image

@cxxly 单测的时候发现sample函数的采样有时会出现inf的结果,公式和torch以及tensorflow的框架都是一样的,请教一下这是什么原因?已经把采样上下限缩小了eps / 2,还是不能避免这个问题。

TUDelftHao avatar Aug 27 '22 15:08 TUDelftHao

image

@cxxly 单测的时候发现sample函数的采样有时会出现inf的结果,公式和torch以及tensorflow的框架都是一样的,请教一下这是什么原因?已经把采样上下限缩小了eps / 2,还是不能避免这个问题。

这个不太好直接判断,不排除Paddle OP本身可能存在缺陷,需要Debug。 建议 1)在 rsample方法中每一步操作,加上日志,打印每个OP的输入、输出数据 2)因为是随机性问题,重复执行 rsample,直到复现上述问题 3)根据日志定位是写法问题还是OP存在BUG,定位到具体OP 4)如果是写法错误,修改即可;如果是OP存在BUG,提交issue

另外,我在linux机器上没有复现,是只有Windows存在上述问题吗?自己先尝试定位问题,如果无法定位或问题解决不了,再进一步交流

cxxly avatar Aug 29 '22 09:08 cxxly

image @cxxly 单测的时候发现sample函数的采样有时会出现inf的结果,公式和torch以及tensorflow的框架都是一样的,请教一下这是什么原因?已经把采样上下限缩小了eps / 2,还是不能避免这个问题。

这个不太好直接判断,不排除Paddle OP本身可能存在缺陷,需要Debug。 建议 1)在 rsample方法中每一步操作,加上日志,打印每个OP的输入、输出数据 2)因为是随机性问题,重复执行 rsample,直到复现上述问题 3)根据日志定位是写法问题还是OP存在BUG,定位到具体OP 4)如果是写法错误,修改即可;如果是OP存在BUG,提交issue

另外,我在linux机器上没有复现,是只有Windows存在上述问题吗?自己先尝试定位问题,如果无法定位或问题解决不了,再进一步交流

感谢@cxxly。我这边debug了一下,paddle.uniform()的实现可能存在问题,具体在这个issue https://github.com/PaddlePaddle/Paddle/issues/45713#issue-1360735914 提出了,辛苦有空看下。Laplace我强制paddle.uniform生成的数据类型和self.loc一致,并缩小上下界,暂时回避了这个问题,目前没有再出现inf的结果。

TUDelftHao avatar Sep 03 '22 14:09 TUDelftHao

英文API文档的部分需要和中文部分对齐哈,现在缺少了公式和name参数的介绍

Ligoml avatar Sep 08 '22 03:09 Ligoml

英文API文档的部分需要和中文部分对齐哈,现在缺少了公式和name参数的介绍

Done.

TUDelftHao avatar Sep 09 '22 01:09 TUDelftHao

API文档规范请参考:https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/dev_guides/api_contributing_guides/api_docs_guidelines_cn.html

Ligoml avatar Sep 09 '22 06:09 Ligoml