Skip to content

Commit f9b72d9

Browse files
committed
reducing test times for DGM
1 parent 052e610 commit f9b72d9

File tree

2 files changed

+19
-12
lines changed

2 files changed

+19
-12
lines changed

docs/src/tutorials/dgm.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ $$
3232
$$
3333

3434
defined over
35-
$$ t \in [0, 1], x \in [-1, 1] $$
35+
36+
$$
37+
t \in [0, 1], x \in [-1, 1]
38+
$$
3639

3740
with boundary conditions
3841
```math
@@ -84,8 +87,8 @@ xs = sol[x]
8487
u_MOL = sol[u(t,x)]
8588

8689
# NeuralPDE, using Deep Galerkin Method
87-
strategy = QuasiRandomTraining(4_000, minibatch= 500);
88-
discretization= DeepGalerkin(2, 1, 50, 5, tanh, tanh, identity, strategy);
90+
strategy = QuasiRandomTraining(256, minibatch= 32);
91+
discretization= DeepGalerkin(2, 1, 50, 5, tanh, tanh, identity, strategy);
8992
@named pde_system = PDESystem(eq, bcs, domains, [t, x], [u(t,x)]);
9093
prob = discretize(pde_system, discretization);
9194
global iter = 0;
@@ -97,7 +100,9 @@ callback = function (p, l)
97100
return false
98101
end
99102

100-
res = Optimization.solve(prob, Adam(0.01); callback = callback, maxiters = 300);
103+
res = Optimization.solve(prob, Adam(0.1); callback = callback, maxiters = 100)
104+
prob = remake(prob, u0 = res.u)
105+
res = Optimization.solve(prob, Adam(0.01); callback = callback, maxiters = 500)
101106
phi = discretization.phi;
102107

103108
u_predict= [first(phi([t, x], res.minimizer)) for t in ts, x in xs]

test/dgm_test.jl

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ import Lux: tanh, identity
1919
# Space and time domains
2020
domains = [x Interval(0.0, 1.0), y Interval(0.0, 1.0)]
2121

22-
strategy = QuasiRandomTraining(4_000, minibatch= 500);
23-
discretization= DeepGalerkin(2, 1, 30, 3, tanh, tanh, identity, strategy);
22+
strategy = QuasiRandomTraining(256, minibatch= 32);
23+
discretization= DeepGalerkin(2, 1, 20, 3, tanh, tanh, identity, strategy);
2424

2525
@named pde_system = PDESystem(eq, bcs, domains, [x, y], [u(x, y)])
2626
prob = discretize(pde_system, discretization)
@@ -71,8 +71,8 @@ end
7171

7272
domains = [t Interval(0.0, T), x Interval(0.0, S * S_multiplier)]
7373

74-
strategy = QuasiRandomTraining(4_000, minibatch= 500);
75-
discretization= DeepGalerkin(2, 1, 30, 3, tanh, tanh, identity, strategy);
74+
strategy = QuasiRandomTraining(128, minibatch= 32);
75+
discretization= DeepGalerkin(2, 1, 40, 3, tanh, tanh, identity, strategy);
7676

7777
@named pde_system = PDESystem(eq, bcs, domains, [t, x], [g(t,x)])
7878
prob = discretize(pde_system, discretization)
@@ -86,9 +86,9 @@ end
8686
return false
8787
end
8888

89-
res = Optimization.solve(prob, Adam(0.01); callback = callback, maxiters = 300)
89+
res = Optimization.solve(prob, Adam(0.1); callback = callback, maxiters = 100)
9090
prob = remake(prob, u0 = res.u)
91-
res = Optimization.solve(prob, Adam(0.001); callback = callback, maxiters = 300)
91+
res = Optimization.solve(prob, Adam(0.01); callback = callback, maxiters = 500)
9292
phi = discretization.phi
9393

9494
function analytical_soln(t, x, K, σ, T)
@@ -138,7 +138,7 @@ end
138138
u_MOL = sol[u(t,x)]
139139

140140
# NeuralPDE
141-
strategy = QuasiRandomTraining(4_000, minibatch= 500);
141+
strategy = QuasiRandomTraining(256, minibatch= 32);
142142
discretization= DeepGalerkin(2, 1, 50, 5, tanh, tanh, identity, strategy);
143143
@named pde_system = PDESystem(eq, bcs, domains, [t, x], [u(t,x)]);
144144
prob = discretize(pde_system, discretization);
@@ -151,7 +151,9 @@ end
151151
return false
152152
end
153153

154-
res = Optimization.solve(prob, Adam(0.01); callback = callback, maxiters = 300);
154+
res = Optimization.solve(prob, Adam(0.01); callback = callback, maxiters = 200);
155+
prob = remake(prob, u0 = res.u);
156+
res = Optimization.solve(prob, Adam(0.001); callback = callback, maxiters = 100);
155157
phi = discretization.phi;
156158

157159
u_predict= [first(phi([t, x], res.u)) for t in ts, x in xs]

0 commit comments

Comments
 (0)