Skip to content

Commit 7aacf09

Browse files
fix checker
1 parent 57949c0 commit 7aacf09

File tree

3 files changed

+48
-43
lines changed

3 files changed

+48
-43
lines changed

examples/euler_beam/euler_beam.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ def u_solution_func(out):
126126
epochs=EPOCHS,
127127
iters_per_epoch=ITERS_PER_EPOCH,
128128
eval_during_train=True,
129-
eval_freq=10,
129+
eval_freq=1000,
130130
equation=equation,
131131
geom=geom,
132132
validator=validator,

ppsci/solver/solver.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,8 @@ def __init__(
258258
self.forward_helper = expression.ExpressionSolver()
259259

260260
# whether enable static for forward pass, default to Fals
261-
if to_static:
262-
jit.enable_to_static(to_static)
263-
logger.info("Enable to_static for forward computation.")
261+
jit.enable_to_static(to_static)
262+
logger.info(f"Set to_static={to_static} for forward computation.")
264263

265264
@staticmethod
266265
def from_config(cfg: Dict[str, Any]) -> Solver:

ppsci/utils/checker.py

Lines changed: 45 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@
1313
# limitations under the License.
1414

1515
import importlib.util
16+
import traceback
1617
from typing import Dict
1718
from typing import Tuple
1819
from typing import Union
1920

21+
import paddle
22+
2023
from ppsci.utils import logger
2124

2225

@@ -26,18 +29,7 @@ def run_check() -> None:
2629
2730
Examples:
2831
>>> import ppsci
29-
>>> ppsci.utils.run_check()
30-
Runing test code [1/2] [1/5]
31-
Runing test code [1/2] [2/5]
32-
Runing test code [1/2] [3/5]
33-
Runing test code [1/2] [4/5]
34-
Runing test code [1/2] [5/5]
35-
Runing test code [2/2] [1/5]
36-
Runing test code [2/2] [2/5]
37-
Runing test code [2/2] [3/5]
38-
Runing test code [2/2] [4/5]
39-
Runing test code [2/2] [5/5]
40-
PaddleScience is installed successfully.✨ 🍰 ✨
32+
>>> ppsci.utils.run_check() # doctest: +SKIP
4133
"""
4234

4335
# test demo code below.
@@ -46,24 +38,26 @@ def run_check() -> None:
4638
import ppsci
4739

4840
try:
49-
model = ppsci.arch.MLP(("x", "y"), ("u", "v", "p"), 9, 50, "tanh", False, False)
41+
ppsci.utils.set_random_seed(42)
42+
ppsci.utils.logger.init_logger()
43+
model = ppsci.arch.MLP(("x", "y"), ("u", "v", "p"), 3, 16, "tanh")
5044

5145
equation = {"NavierStokes": ppsci.equation.NavierStokes(0.01, 1.0, 2, False)}
5246

5347
geom = {"rect": ppsci.geometry.Rectangle((-0.05, -0.05), (0.05, 0.05))}
5448

55-
iters_per_epoch = 5
49+
ITERS_PER_EPOCH = 5
5650
train_dataloader_cfg = {
5751
"dataset": "IterableNamedArrayDataset",
58-
"iters_per_epoch": iters_per_epoch,
52+
"iters_per_epoch": ITERS_PER_EPOCH,
5953
}
6054

61-
npoint_pde = 8**2
55+
NPOINT_PDE = 8**2
6256
pde_constraint = ppsci.constraint.InteriorConstraint(
6357
equation["NavierStokes"].equations,
6458
{"continuity": 0, "momentum_x": 0, "momentum_y": 0},
6559
geom["rect"],
66-
{**train_dataloader_cfg, "batch_size": npoint_pde},
60+
{**train_dataloader_cfg, "batch_size": NPOINT_PDE},
6761
ppsci.loss.MSELoss("sum"),
6862
evenly=True,
6963
weight_dict={
@@ -73,31 +67,43 @@ def run_check() -> None:
7367
},
7468
name="EQ",
7569
)
70+
constraint = {pde_constraint.name: pde_constraint}
71+
72+
residual_validator = ppsci.validate.GeometryValidator(
73+
equation["NavierStokes"].equations,
74+
{"continuity": 0, "momentum_x": 0, "momentum_y": 0},
75+
geom["rect"],
76+
{
77+
"dataset": "NamedArrayDataset",
78+
"total_size": 8**2,
79+
"batch_size": 32,
80+
"sampler": {"name": "BatchSampler"},
81+
},
82+
ppsci.loss.MSELoss("sum"),
83+
evenly=True,
84+
metric={"MSE": ppsci.metric.MSE(False)},
85+
name="Residual",
86+
)
87+
validator = {residual_validator.name: residual_validator}
7688

77-
epochs = 2
89+
EPOCHS = 2
7890
optimizer = ppsci.optimizer.Adam(0.001)((model,))
79-
for _epoch in range(1, epochs + 1):
80-
for _iter_id in range(1, iters_per_epoch + 1):
81-
input_dict, label_dict, weight_dict = next(pde_constraint.data_iter)
82-
for v in input_dict.values():
83-
v.stop_gradient = False
84-
evaluator = ppsci.utils.ExpressionSolver(
85-
pde_constraint.input_keys, pde_constraint.output_keys, model
86-
)
87-
for output_name, output_formula in pde_constraint.output_expr.items():
88-
if output_name in label_dict:
89-
evaluator.add_target_expr(output_formula, output_name)
90-
91-
output_dict = evaluator(input_dict)
92-
loss = pde_constraint.loss(output_dict, label_dict, weight_dict)
93-
loss.backward()
94-
optimizer.step()
95-
optimizer.clear_grad()
96-
print(
97-
f"Runing test code [{_epoch}/{epochs}]"
98-
f" [{_iter_id}/{iters_per_epoch}]"
99-
)
91+
solver = ppsci.solver.Solver(
92+
model,
93+
constraint,
94+
None,
95+
optimizer,
96+
None,
97+
EPOCHS,
98+
ITERS_PER_EPOCH,
99+
device=paddle.device.get_device(),
100+
equation=equation,
101+
validator=validator,
102+
)
103+
solver.train()
104+
solver.eval(EPOCHS)
100105
except Exception as e:
106+
traceback.print_exc()
101107
logging.warning(
102108
f"PaddleScience meets some problem with \n {repr(e)} \nplease check whether "
103109
"Paddle's version and PaddleScience's version are both correct."

0 commit comments

Comments
 (0)