PaddlePaddle / PaddleScience

PaddleScience is SDK and library for developing AI-driven scientific computing applications based on PaddlePaddle.
http://paddlescience-docs.rtfd.io/
Apache License 2.0
244 stars 132 forks source link

带有paddle.fft.fftshift网络模型的导出 #896

Closed Yang-Changhui closed 1 month ago

Yang-Changhui commented 1 month ago

需求描述 Feature Description

请问,现在的动转静支持带有paddle.einsum API的网络吗,我将带有paddle.einsum网络动转静后,预测结果动态图和静态图结果不一样,请问还需要什么特殊配置吗

替代实现 Alternatives

No response

HydrogenSulfate commented 1 month ago

是已有的案例吗?结果的误差能达到多少呢?

Yang-Changhui commented 1 month ago

不是已有案例,我查看了已有案例,使用paddle.einsum API的网络好像都没有动转静,是我新复现的tfno网络预测darcy-flow数据集;误差比较大:感觉输入没有进入静态图网络一样 这是静态图预测结果: 4ab7c36f94228dc69d48b750a7b05fc

这是动态图预测结果: outputs_tfno_pretrain

HydrogenSulfate commented 1 month ago

不是已有案例,我查看了已有案例,使用paddle.einsum API的网络好像都没有动转静,是我新复现的tfno网络预测darcy-flow数据集;误差比较大:感觉输入没有进入静态图网络一样 这是静态图预测结果: 4ab7c36f94228dc69d48b750a7b05fc

这是动态图预测结果: outputs_tfno_pretrain

是否方便在aistudio上提供一下可复现的代码和复现命令

Yang-Changhui commented 1 month ago

@HydrogenSulfate 项目“neuraloperator”共享链接(有效期三天):https://aistudio.baidu.com/studio/project/partial/verify/7659466/e8dfd505d4d044e29bf43a751960029b

Yang-Changhui commented 1 month ago

@HydrogenSulfate 你好,请问有时间帮忙查一下问题吗

HydrogenSulfate commented 1 month ago

不是已有案例,我查看了已有案例,使用paddle.einsum API的网络好像都没有动转静,是我新复现的tfno网络预测darcy-flow数据集;误差比较大:感觉输入没有进入静态图网络一样 这是静态图预测结果: 4ab7c36f94228dc69d48b750a7b05fc

这是动态图预测结果: outputs_tfno_pretrain

  1. 某些模型文档里没有导出和推理是因为正在开发中(这段时间会逐步补充完),与einsum无关
  2. 我本地试了下含有einsum操作的DeepONet,结果跟动态图的前向完全一致,感觉可能不是einsum的问题 image,需要进一步确认一下具体是哪个计算过程引入了BUG,可以通过对代码进行二分排查,比如二分点在第100行,那就在forward的第100行直接return结果,然后导出模型-推理,看下结果和动态图是否一致。
Yang-Changhui commented 1 month ago

@HydrogenSulfate 好的,谢谢,那我再看看

Yang-Changhui commented 1 month ago

@HydrogenSulfate 你好,查出问题出在paddle.fft.fftshift(x=out_fft, axes=fft_dims[:-1]),静态图和动态图输出结果不一样,

HydrogenSulfate commented 1 month ago

@HydrogenSulfate 你好,查出问题出在paddle.fft.fftshift(x=out_fft, axes=fft_dims[:-1]),静态图和动态图输出结果不一样,

收到,我本地测试一下看看