Skip to content

Commit 2436c5a

Browse files
[Doc] Update guidance of development (#965)
* update SPINN url * update url * annotate latex which may occur error when latex font is not installed * add mtl submodule to loss.__all__ * update doc * update pre-commit guidance * update synchronization of upstream guidance
1 parent a8f12e7 commit 2436c5a

File tree

12 files changed

+99
-77
lines changed

12 files changed

+99
-77
lines changed

README.md

Lines changed: 56 additions & 54 deletions
Large diffs are not rendered by default.

docs/index.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272

7373
| 问题类型 | 案例名称 | 优化算法 | 模型类型 | 训练方式 | 数据集 | 参考资料 |
7474
|-----|---------|-----|---------|----|---------|---------|
75-
| 三维亥姆霍兹方程 | [SPINN(Helmholtz3D)](./zh/examples/spinn.md) | 机理驱动 | ModifiedMLP | 无监督学习 | - | [Paper](https://arxiv.org/pdf/2306.15969) |
75+
| 亥姆霍兹方程 | [SPINN(Helmholtz3D)](./zh/examples/spinn.md) | 机理驱动 | SPINN | 无监督学习 | - | [Paper](https://arxiv.org/pdf/2306.15969) |
7676
| 相场方程 | [Allen-Cahn](./zh/examples/allen_cahn.md) | 机理驱动 | MLP | 无监督学习 | [Data](https://paddle-org.bj.bcebos.com/paddlescience/datasets/AllenCahn/allen_cahn.mat) | [Paper](https://arxiv.org/pdf/2402.00326) |
7777
| 微分方程 | [拉普拉斯方程](./zh/examples/laplace2d.md) | 机理驱动 | MLP | 无监督学习 | - | - |
7878
| 微分方程 | [伯格斯方程](./zh/examples/deephpms.md) | 机理驱动 | MLP | 无监督学习 | [Data](https://github.com/maziarraissi/DeepHPMs/tree/master/Data) | [Paper](https://arxiv.org/pdf/1801.06637.pdf) |
@@ -173,7 +173,9 @@
173173

174174
## 🎈其他领域支持
175175

176-
除 PaddleScience 套件外,Paddle 框架还支持了 DeepXDE 的所有案例,分子动力学套件 DeepMD-kit 部分案例和功能,以及正在适配中的 Modulus 。
176+
--8<--
177+
./README.md:adaptation
178+
--8<--
177179

178180
<div class="container">
179181
<a href="https://github.com/lululxvi/deepxde/tree/master?tab=readme-ov-file#deepxde">

docs/zh/api/arch.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
- ModifiedMLP
2626
- NowcastNet
2727
- SFNONet
28+
- SPINN
2829
- TFNO1dNet
2930
- TFNO2dNet
3031
- TFNO3dNet

docs/zh/api/utils/misc.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,6 @@
2020
- run_on_eval_mode
2121
- run_at_rank0
2222
- plot_curve
23+
- check_flag_enabled
2324
show_root_heading: True
2425
heading_level: 3

docs/zh/development.md

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,23 @@ PaddleScience 相关的论文复现、API 开发任务开始之前需提交 RFC
4242

4343
如果出现 PaddleScience is installed successfully.✨ 🍰 ✨,则说明安装验证成功。
4444

45+
7. 安装 pre-commit[重要]
46+
47+
PaddleScience 是一个开源的代码库,由多人共同参与开发,因此为了保持最终合入的代码风格整洁、一致,
48+
PaddleScience 使用了包括 [isort](https://github.com/PyCQA/isort#installing-isort)、[black](https://github.com/psf/black) 等自动化代码检查、格式化插件,
49+
让 commit 的代码遵循 python [PEP8](https://pep8.org/) 代码风格规范。
50+
51+
因此在 commit 您的代码之前,请务必先在 `PaddleScience/` 目录下执行以下命令安装 `pre-commit`,否则提交的 PR 会被 code-style 检测到代码未格式化而无法合入。
52+
53+
``` sh
54+
pip install pre-commit
55+
pre-commit install
56+
```
57+
58+
如果已经将代码进行了 commit,则可以在安装上述 pre-commit 之后,手动执行 pre-commit 命令,对代码进行格式化:`pre-commit run --files 你提交的代码文件/文件夹`,然后手动 `git add` 被修改了的文件,再 `git commit` 即可。
59+
60+
关于 pre-commit 的详情请参考 [Paddle 代码风格检查指南](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/dev_guides/git_guides/codestyle_check_guide_cn.html)
61+
4562
## 2. 编写代码
4663

4764
完成上述准备工作后,就可以基于 PaddleScience 开始开发自己的案例或者功能了。
@@ -920,25 +937,22 @@ mkdocs serve
920937
921938
## 4. 整理代码并提交
922939
923-
### 4.1 安装 pre-commit
940+
### 4.1 整理代码
941+
942+
在完成范例编写与训练后,确认结果无误,就可以整理代码。
943+
使用 git 命令将所有新增、修改的代码文件以及必要的文档、图片等一并提交到本地 `dev_model` 分支上。
924944
925-
PaddleScience 是一个开源的代码库,由多人共同参与开发,因此为了保持最终合入的代码风格整洁、一致,
926-
PaddleScience 使用了包括 [isort](https://github.com/PyCQA/isort#installing-isort)、[black](https://github.com/psf/black) 等自动化代码检查、格式化插件,
927-
让 commit 的代码遵循 python [PEP8](https://pep8.org/) 代码风格规范。
945+
### 4.2 同步上游代码
928946
929-
因此在 commit 您的代码之前,请务必先在 `PaddleScience/` 目录下执行以下命令安装 `pre-commit`,否则提交的 PR 会被 code-style 检测到代码未格式化而无法合入
947+
在开发过程中,上游代码可能经过更新,因此需要执行以下命令,先将上游的最新代码拉取下来,合并到当前代码中,与上游最新代码进行同步
930948
931949
``` sh
932-
pip install pre-commit
933-
pre-commit install
950+
git remote add upstream https://github.com/PaddlePaddle/PaddleScience.git
951+
git fetch upstream upstream_develop
952+
git merge upstream_develop
934953
```
935954
936-
关于 pre-commit 的详情请参考 [Paddle 代码风格检查指南](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/dev_guides/git_guides/codestyle_check_guide_cn.html)
937-
938-
### 4.2 整理代码
939-
940-
在完成范例编写与训练后,确认结果无误,就可以整理代码。
941-
使用 git 命令将所有新增、修改的代码文件以及必要的文档、图片等一并上传到自己仓库的 `dev_model` 分支上。
955+
如果出现 conflict,则需要解决冲突,再使用 `git add``git commit -m "merge code of upstream"` 命令将代码提交到本地仓库,最后执行 `git push origin dev_model`,将代码推送到你的远程仓库中。
942956
943957
### 4.3 提交 pull request
944958

docs/zh/examples/aneurysm.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ tar -xvf aneurysm_dataset.tar
119119

120120
???+ warning "注意"
121121

122-
**使用 `Mesh` 类之前,必须先按照[1.4.2 额外依赖安装[可选]](https://paddlescience-docs.readthedocs.io/zh/latest/zh/install_setup/#142)文档,安装好 open3d、pysdf、PyMesh 3 个几何依赖包。**
122+
**使用 `Mesh` 类之前,必须先按照[1.4.2 额外依赖安装[可选]](https://paddlescience-docs.readthedocs.io/zh-cn/latest/zh/install_setup/#142)文档,安装好 open3d、pysdf、PyMesh 3 个几何依赖包。**
123123

124124
然后通过 PaddleScience 内置的 STL 几何类 `Mesh` 来读取、解析这些几何文件,并且通过布尔运算,组合出各个计算域,代码如下:
125125

docs/zh/examples/bracket.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ tar -xvf bracket_dataset.tar
136136

137137
???+ warning "注意"
138138

139-
**使用 `Mesh` 类之前,必须先按照[1.4.2 额外依赖安装[可选]](https://paddlescience-docs.readthedocs.io/zh/latest/zh/install_setup/#142)文档,安装好 open3d、pysdf、PyMesh 3 个几何依赖包。**
139+
**使用 `Mesh` 类之前,必须先按照[1.4.2 额外依赖安装[可选]](https://paddlescience-docs.readthedocs.io/zh-cn/latest/zh/install_setup/#142)文档,安装好 open3d、pysdf、PyMesh 3 个几何依赖包。**
140140

141141
然后通过 PaddleScience 内置的 STL 几何类 `Mesh` 来读取、解析这些几何文件,并且通过布尔运算,组合出各个计算域,代码如下:
142142

docs/zh/examples/control_arm.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ examples/control_arm/forward_analysis.py:36:41
179179

180180
???+ warning "注意"
181181

182-
**使用 `Mesh` 类之前,必须先按照[1.4.2 额外依赖安装[可选]](https://paddlescience-docs.readthedocs.io/zh/latest/zh/install_setup/#142)文档,安装好 open3d、pysdf、PyMesh 3 个几何依赖包。**
182+
**使用 `Mesh` 类之前,必须先按照[1.4.2 额外依赖安装[可选]](https://paddlescience-docs.readthedocs.io/zh-cn/latest/zh/install_setup/#142)文档,安装好 open3d、pysdf、PyMesh 3 个几何依赖包。**
183183

184184
然后通过 PaddleScience 内置的 STL 几何类 `ppsci.geometry.Mesh` 即可读取、解析几何文件,得到计算域,并获取几何结构边界:
185185

@@ -384,7 +384,7 @@ examples/control_arm/inverse_parameter.py:35:40
384384

385385
???+ warning "注意"
386386

387-
**使用 `Mesh` 类之前,必须先按照[1.4.2 额外依赖安装[可选]](https://paddlescience-docs.readthedocs.io/zh/latest/zh/install_setup/#142)文档,安装好 open3d、pysdf、PyMesh 3 个几何依赖包。**
387+
**使用 `Mesh` 类之前,必须先按照[1.4.2 额外依赖安装[可选]](https://paddlescience-docs.readthedocs.io/zh-cn/latest/zh/install_setup/#142)文档,安装好 open3d、pysdf、PyMesh 3 个几何依赖包。**
388388

389389
然后通过 PaddleScience 内置的 STL 几何类 `ppsci.geometry.Mesh` 即可读取、解析几何文件,得到计算域,并获取几何结构边界:
390390

docs/zh/reproduction.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
- PaddleScience
1616

17-
基于飞桨的 AI4S 套件,提供面向 AI4S 领域通用功能,如复杂几何形状解析、通用微分方程、数据驱动/物理机理/数理融合等求解器,方便开发 AI4S 领域相关模型,具体参考 [PaddleScience 文档](https://paddlescience-docs.readthedocs.io/zh/latest/)
17+
基于飞桨的 AI4S 套件,提供面向 AI4S 领域通用功能,如复杂几何形状解析、通用微分方程、数据驱动/物理机理/数理融合等求解器,方便开发 AI4S 领域相关模型,具体参考 [PaddleScience 文档](https://paddlescience-docs.readthedocs.io/zh-cn/latest/)
1818

1919
- 飞桨PaddlePaddle
2020

@@ -194,4 +194,4 @@ PaddleScience 官网文档需满足:
194194
- 如果模型依赖 PaddlePaddle 未涵盖的依赖(如 pandas),则需要在文档开头对说明需安装哪些依赖项。
195195
- 随机控制,需要尽量固定含有随机因素模块的随机种子,保证模型可以正常复现(PaddleScience 套件提供了 `ppsci.utils.misc.set_random_seed(seed_num)` 语句来控制全局随机数)。
196196
- 超参数:模型内部超参数禁止写死,尽量都可以通过配置文件进行配置。
197-
- 文档末尾附上参考论文、参考代码网址、复现训练好的模型参数下载链接。 整体文档撰写可以参考:[文档参考样例(darcy2d)](https://paddlescience-docs.readthedocs.io/zh/latest/zh/examples/darcy2d/)。
197+
- 文档末尾附上参考论文、参考代码网址、复现训练好的模型参数下载链接。 整体文档撰写可以参考:[文档参考样例(darcy2d)](https://paddlescience-docs.readthedocs.io/zh-cn/latest/zh/examples/darcy2d/)。

docs/zh/user_guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -986,7 +986,7 @@ TODO -->
986986
987987
### 2.5 多任务学习
988988
989-
在机理驱动、数理融合场景中,往往会同时优化多个损失项,如控制方程残差损失、(初)边值条件损失等。在训练过程中这些损失项对参数的梯度方向可能会互相冲突,阻碍训练精度收敛,而这正是多任务学习方法能解决的问题。因此 PaddleScience 在多任务学习模块中引入了几种常见的算法,其主要通过对不同任务的权重或产生的梯度进行调整,从而缓解该问题,最终提升模型收敛精度。下面以 [`Relobralo`](https://paddlescience-docs.readthedocs.io/zh/latest/zh/api/loss/mtl/#ppsci.loss.mtl.Relobralo) 算法进行举例,使用方式如下:
989+
在机理驱动、数理融合场景中,往往会同时优化多个损失项,如控制方程残差损失、(初)边值条件损失等。在训练过程中这些损失项对参数的梯度方向可能会互相冲突,阻碍训练精度收敛,而这正是多任务学习方法能解决的问题。因此 PaddleScience 在多任务学习模块中引入了几种常见的算法,其主要通过对不同任务的权重或产生的梯度进行调整,从而缓解该问题,最终提升模型收敛精度。下面以 [`Relobralo`](https://paddlescience-docs.readthedocs.io/zh-cn/latest/zh/api/loss/mtl/#ppsci.loss.mtl.Relobralo) 算法进行举例,使用方式如下:
990990
991991
1. 实例化一个多任务学习方法的对象
992992

0 commit comments

Comments
 (0)