2626
2727| 预训练模型 | 指标 |
2828| :--| :--|
29- | [ euler_beam_pretrained.pdparams] ( https://paddle-org.bj.bcebos.com/paddlescience/models/euler_beam/euler_beam_pretrained.pdparams ) | loss(L2Rel_Metric): 0.00000<br >L2Rel.u(L2Rel_Metric): 0.00080 |
29+ | [ euler_beam_pretrained.pdparams] ( https://paddle-org.bj.bcebos.com/paddlescience/models/euler_beam/euler_beam_pretrained.pdparams ) | loss(L2Rel_Metric): 0.00000<br >L2Rel.u(L2Rel_Metric): 0.00058 |
3030
3131## 1. 问题定义
3232
7070
7171上式中 $f$ 即为 MLP 模型本身,用 PaddleScience 代码表示如下
7272
73- ``` py linenums="36 "
73+ ``` py linenums="24 "
7474-- 8 < --
75- examples/ euler_beam/ euler_beam.py:36 : 37
75+ examples/ euler_beam/ euler_beam.py:24 : 25
7676-- 8 < --
7777```
7878
7979其中,用于初始化模型的参数通过配置文件进行配置:
8080
81- ``` yaml linenums="34 "
81+ ``` yaml linenums="38 "
8282--8<--
83- examples/euler_beam/conf/euler_beam.yaml:34:38
83+ examples/euler_beam/conf/euler_beam.yaml:38:43
8484--8<--
8585```
8686
@@ -90,9 +90,9 @@ examples/euler_beam/conf/euler_beam.yaml:34:38
9090
9191Euler Beam 的方程构建可以直接使用 PaddleScience 内置的 ` Biharmonic ` ,指定该类的参数 ` dim ` 为 1,` q ` 为 -1,` D ` 为1。
9292
93- ``` py linenums="42 "
93+ ``` py linenums="30 "
9494-- 8 < --
95- examples/ euler_beam/ euler_beam.py:42 : 43
95+ examples/ euler_beam/ euler_beam.py:30 : 31
9696-- 8 < --
9797```
9898
@@ -101,9 +101,9 @@ examples/euler_beam/euler_beam.py:42:43
101101本文中 Euler Beam 问题作用在以 (0.0, 1.0) 的一维区域上,
102102因此可以直接使用 PaddleScience 内置的空间几何 ` Interval ` 作为计算域。
103103
104- ``` py linenums="39 "
104+ ``` py linenums="27 "
105105-- 8 < --
106- examples/ euler_beam/ euler_beam.py:39 : 40
106+ examples/ euler_beam/ euler_beam.py:27 : 28
107107-- 8 < --
108108```
109109
@@ -113,59 +113,59 @@ examples/euler_beam/euler_beam.py:39:40
113113
114114在定义约束之前,需要给每一种约束指定采样点个数,表示每一种约束在其对应计算域内采样数据的数量,以及通用的采样配置。
115115
116- ``` yaml linenums="49 "
116+ ``` yaml linenums="45 "
117117--8<--
118- examples/euler_beam/conf/euler_beam.yaml:49:50
118+ examples/euler_beam/conf/euler_beam.yaml:45:55
119119--8<--
120120```
121121
122122#### 2.4.1 内部点约束
123123
124124以作用在内部点上的 ` InteriorConstraint ` 为例,代码如下:
125125
126- ``` py linenums="51 "
126+ ``` py linenums="33 "
127127-- 8 < --
128- examples/ euler_beam/ euler_beam.py:51 : 59
128+ examples/ euler_beam/ euler_beam.py:33 : 47
129129-- 8 < --
130130```
131131
132132#### 2.4.2 边界约束
133133
134134同理,我们还需要构建边界的约束。但与构建 ` InteriorConstraint ` 约束不同的是,由于作用区域是边界,因此我们使用 ` BoundaryConstraint ` 类,代码如下:
135135
136- ``` py linenums="60 "
136+ ``` py linenums="48 "
137137-- 8 < --
138- examples/ euler_beam/ euler_beam.py:60 : 73
138+ examples/ euler_beam/ euler_beam.py:48 : 61
139139-- 8 < --
140140```
141141
142142### 2.5 超参数设定
143143
144144接下来我们需要在配置文件中指定训练轮数,此处我们按实验经验,使用一万轮训练轮数,评估间隔为一千轮。
145145
146- ``` yaml linenums="41 "
146+ ``` yaml linenums="45 "
147147--8<--
148- examples/euler_beam/conf/euler_beam.yaml:41:52
148+ examples/euler_beam/conf/euler_beam.yaml:45:51
149149--8<--
150150```
151151
152152### 2.6 优化器构建
153153
154154训练过程会调用优化器来更新模型参数,此处选择较为常用的 ` Adam ` 优化器。
155155
156- ``` py linenums="80 "
156+ ``` py linenums="68 "
157157-- 8 < --
158- examples/ euler_beam/ euler_beam.py:80 : 81
158+ examples/ euler_beam/ euler_beam.py:68 : 69
159159-- 8 < --
160160```
161161
162162### 2.7 评估器构建
163163
164164在训练过程中通常会按一定轮数间隔,用验证集(测试集)评估当前模型的训练情况,因此使用 ` ppsci.validate.GeometryValidator ` 构建评估器。
165165
166- ``` py linenums="89 "
166+ ``` py linenums="77 "
167167-- 8 < --
168- examples/ euler_beam/ euler_beam.py:89 : 102
168+ examples/ euler_beam/ euler_beam.py:77 : 90
169169-- 8 < --
170170```
171171
@@ -175,19 +175,19 @@ examples/euler_beam/euler_beam.py:89:102
175175
176176本文中的输出数据是一个曲线图,因此我们只需要将评估的输出数据保存成 ** png** 文件即可。代码如下:
177177
178- ``` py linenums="104 "
178+ ``` py linenums="92 "
179179-- 8 < --
180- examples/ euler_beam/ euler_beam.py:104 : 114
180+ examples/ euler_beam/ euler_beam.py:92 : 105
181181-- 8 < --
182182```
183183
184184### 2.9 模型训练、评估与可视化
185185
186186完成上述设置之后,只需要将上述实例化的对象按顺序传递给 ` ppsci.solver.Solver ` ,然后启动训练、评估、可视化。
187187
188- ``` py linenums="117 "
188+ ``` py linenums="107 "
189189-- 8 < --
190- examples/ euler_beam/ euler_beam.py:117 : 141
190+ examples/ euler_beam/ euler_beam.py:107 : 132
191191-- 8 < --
192192```
193193
0 commit comments