PaddlePaddle/PaddleScience

【快乐开源】复现 Phy-LSTM 论文

HydrogenSulfate opened this issue · 2 comments

This project will be mentored by @HydrogenSulfate

1. 背景

在 PhyLSTM 论文中,引入了一个创新的物理信息LSTM框架,用于对具有稀缺数据的非线性结构系统进行元建模。基本概念是将可用但不完整的物理知识(例如,物理定律,科学原理)整合到深度长短期记忆(LSTM)网络中,从而限制和促进可行解决方案空间内的学习。将物理先验知识融入到损失函数中,以促使模型在非常有限的可用训练数据集下,也可以准确地捕获潜在的系统非线性。具体到动态结构,考虑运动方程的物理定律、状态依赖性和滞回本构关系来构造物理损耗。嵌入式物理场可以缓解过拟合问题,减少对大型训练数据集的需求,并提高训练模型的鲁棒性,以便通过外推能力进行更可靠的预测。因此,物理引导的深度学习范式优于经典的非物理引导的数据驱动神经网络。

2. 收益

2.1 个人收益

  • 熟悉经典网络模型 LSTM 及其基本原理,以及物理信息驱动与 LSTM 模型结合的方式
  • 掌握开源套件的开发流程和方法

2.2 PaddleScience 收益

  • 补充 LSTM 结构至 Arch 模块
  • 补充 PhyLSTM 案例至相关案例中,提升案例丰富度

3. 开发流程

3.1 安装 PaddleScience

下载安装 PaddleScience 套件:https://paddlescience-docs.readthedocs.io/zh/latest/zh/install_setup/#121-git

3.2 代码开发

参考 Phy-LSTM 源代码,基于 PaddleScience 套件(PaddleScience API 文档)进行复现,在训练精度对齐的前提下,完成复现并撰写对应文档

3.3 整理代码并提交PR

参考 PaddleScience文档-贡献指南-整理代码并提交

4. 参考资料

奖励

500 京东卡

co63oc commented

使用docker镜像 tensorflow/tensorflow:1.13.2-gpu-py3 运行

https://github.com/zhry10/PhyLSTM 原代码变量没有定义
https://github.com/zhry10/PhyLSTM/blob/master/model/PhyLSTM2.py ag_pred,u_pred,ut_pred引用次数为1
图片

https://github.com/zhry10/PhyLSTM/blob/master/model/PhyLSTM3.py Index_pred 没有设置值
图片

使用docker镜像 tensorflow/tensorflow:1.13.2-gpu-py3 运行

https://github.com/zhry10/PhyLSTM 原代码变量没有定义 https://github.com/zhry10/PhyLSTM/blob/master/model/PhyLSTM2.py ag_pred,u_pred,ut_pred引用次数为1 图片

https://github.com/zhry10/PhyLSTM/blob/master/model/PhyLSTM3.py Index_pred 没有设置值 图片

看了一下,应该是训练完后的预测部分和画损失曲线部分有问题,应该不影响训练,最终对比 loss_val_value: float 的收敛精度和 Loss: List[float] 的训练曲线两部分就行,能对上就算对齐了