Burgers equation with residual-based adaptive refinement#
Problem setup#
We will solve a Burgers equation:
with the Dirichlet boundary conditions and initial conditions
Dimensional Analysis#
Step 1: Assign Dimensions to Variables#
Spatial Coordinate \(x\):
The dimension of \(x\) is length:
\[ [x] = L. \]
Time \(t\):
The dimension of time is:
\[ [t] = T. \]
Velocity \(u\):
Velocity has dimensions of length per unit time:
\[ [u] = L / T. \]
Viscosity \(\nu\):
The term \(\nu \frac{\partial^2 u}{\partial x^2}\) involves the second spatial derivative of velocity, which must have the same dimensions as the time derivative \(\frac{\partial u}{\partial t}\).
Step 2: Analyze the Dimensions of Each Term#
Time Derivative Term:
The time derivative \(\frac{\partial u}{\partial t}\) has dimensions:
\[ \left[\frac{\partial u}{\partial t}\right] = \frac{[u]}{[t]} = \frac{L / T}{T} = \frac{L}{T^2}. \]
Advection Term:
The advection term \(u \frac{\partial u}{\partial x}\) involves the spatial derivative of velocity:
\[ \left[u \frac{\partial u}{\partial x}\right] = [u] \cdot \frac{[u]}{[x]} = \frac{L}{T} \cdot \frac{L / T}{L} = \frac{L}{T^2}. \]
Diffusion Term:
The diffusion term \(\nu \frac{\partial^2 u}{\partial x^2}\) involves the second spatial derivative of velocity:
\[ \left[\frac{\partial^2 u}{\partial x^2}\right] = \frac{[u]}{[x]^2} = \frac{L / T}{L^2} = \frac{1}{L T}. \]Therefore, the diffusion term has dimensions:
\[ \left[\nu \frac{\partial^2 u}{\partial x^2}\right] = [\nu] \cdot \frac{1}{L T} = \frac{L}{T^2}. \]
Step 3: Determine the Dimensions of \(\nu\)#
The diffusion term \(\nu \frac{\partial^2 u}{\partial x^2}\) must have the same dimensions as the time derivative \(\frac{\partial u}{\partial t}\):
\[ [\nu] \cdot \frac{1}{L T} = \frac{L}{T^2} \implies [\nu] = \frac{L^2}{T}. \]Therefore, the viscosity \(\nu\) has dimensions of kinematic viscosity:
\[ [\nu] = \frac{L^2}{T}. \]
Step 4: Summary of Dimensions#
Variable/Parameter |
Physical Meaning |
Dimensions |
|---|---|---|
\(x\) |
Spatial coordinate |
\(L\) |
\(t\) |
Time |
\(T\) |
\(u\) |
Velocity |
\(L / T\) |
\(\nu\) |
Kinematic viscosity |
\(L^2 / T\) |
Step 5: Initial and Boundary Conditions#
Boundary Conditions:
The boundary conditions \(u(-1,t) = u(1,t) = 0\) are given in meters per second:
\[ [u(-1,t)] = [u(1,t)] = L / T. \]
Initial Condition:
The initial condition \(u(x,0) = -\sin(\pi x)\) is given in meters per second:
\[ [u(x,0)] = L / T. \]The term \(\sin(\pi x)\) is dimensionless because \(x\) is in meters, and \(\pi\) is a dimensionless constant.
Implementation#
This description goes through the implementation of a solver for the above described Burgers equation step-by-step.
First, import the libraries we need:
import braintools
import brainunit as u
import numpy as np
import jax
import pinnx
We begin by defining a computational geometry and time domain. We can use a built-in class Interval and TimeDomain and we combine both the domains using GeometryXTime as follows:
geomtime = pinnx.geometry.GeometryXTime(
geometry=pinnx.geometry.Interval(-1., 1.),
timedomain=pinnx.geometry.TimeDomain(0., 0.99)
).to_dict_point(x=u.meter, t=u.second)
Next, we express the PDE residual of the Burgers equation:
v = 0.01 / u.math.pi * u.meter ** 2 / u.second
def pde(x, y):
jacobian = approximator.jacobian(x)
hessian = approximator.hessian(x)
dy_x = jacobian['y']['x']
dy_t = jacobian['y']['t']
dy_xx = hessian['y']['x']['x']
residual = dy_t + y['y'] * dy_x - v * dy_xx
return residual
Next, we consider the boundary/initial condition. on_boundary is chosen here to use the whole boundary of the computational domain in considered as the boundary condition. We include the geomtime space, time geometry created above and on_boundary as the BCs in the DirichletBC function of DeepXDE. We also define IC which is the inital condition for the burgers equation and we use the computational domain, initial function, and on_initial to specify the IC.
uy = u.meter / u.second
bc = pinnx.icbc.DirichletBC(lambda x: {'y': 0. * uy})
ic = pinnx.icbc.IC(lambda x: {'y': -u.math.sin(u.math.pi * x['x'] / u.meter) * uy})
Next, we choose the network. Here, we use a fully connected neural network of depth 4 (i.e., 3 hidden layers) and width 20:
approximator = pinnx.nn.Model(
pinnx.nn.DictToArray(x=u.meter, t=u.second),
pinnx.nn.FNN(
[geometry.dim] + [20] * 3 + [1],
"tanh",
braintools.init.KaimingUniform()
),
pinnx.nn.ArrayToDict(y=uy)
)
Now, we have specified the geometry, PDE residual, and boundary/initial condition. We then define the TimePDE problem as
problem = pinnx.problem.TimePDE(
geometry,
pde,
[bc, ic],
approximator,
num_domain=2540,
num_boundary=80,
num_initial=160,
)
The number 2540 is the number of training residual points sampled inside the domain, and the number 80 is the number of training points sampled on the boundary. We also include 160 initial residual points for the initial conditions.
Now, we have the PDE problem and the network. We build a Trainer and choose the optimizer and learning rate:
trainer = pinnx.Trainer(problem)
trainer.compile(braintools.optim.Adam(1e-3)).train(iterations=15000)
Compiling trainer...
'compile' took 0.003058 s
Training trainer...
Step Train loss Test loss Test metric
0 [2.1140547 * 10.0^0 * ((meter / second) / second) ** 2, [2.1140547 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 0.09046214 * meter / second}}, {'ibc0': {'y': 0.09046214 * meter / second}},
{'ibc1': {'y': 0.23645507 * meter / second}}] {'ibc1': {'y': 0.23645507 * meter / second}}]
1000 [0.05101593 * 10.0^0 * ((meter / second) / second) ** 2, [0.05101593 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 0.00244636 * meter / second}}, {'ibc0': {'y': 0.00244636 * meter / second}},
{'ibc1': {'y': 0.06664469 * meter / second}}] {'ibc1': {'y': 0.06664469 * meter / second}}]
2000 [0.04578441 * 10.0^0 * ((meter / second) / second) ** 2, [0.04578441 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 0.00104335 * meter / second}}, {'ibc0': {'y': 0.00104335 * meter / second}},
{'ibc1': {'y': 0.05536607 * meter / second}}] {'ibc1': {'y': 0.05536607 * meter / second}}]
3000 [0.04083971 * 10.0^0 * ((meter / second) / second) ** 2, [0.04083971 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 0.00048144 * meter / second}}, {'ibc0': {'y': 0.00048144 * meter / second}},
{'ibc1': {'y': 0.05146844 * meter / second}}] {'ibc1': {'y': 0.05146844 * meter / second}}]
4000 [0.03656165 * 10.0^0 * ((meter / second) / second) ** 2, [0.03656165 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 0.00020483 * meter / second}}, {'ibc0': {'y': 0.00020483 * meter / second}},
{'ibc1': {'y': 0.04795899 * meter / second}}] {'ibc1': {'y': 0.04795899 * meter / second}}]
5000 [0.03201985 * 10.0^0 * ((meter / second) / second) ** 2, [0.03201985 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 5.5738237e-05 * meter / second}}, {'ibc0': {'y': 5.5738237e-05 * meter / second}},
{'ibc1': {'y': 0.04417896 * meter / second}}] {'ibc1': {'y': 0.04417896 * meter / second}}]
6000 [0.01897248 * 10.0^0 * ((meter / second) / second) ** 2, [0.01897248 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.411638e-05 * meter / second}}, {'ibc0': {'y': 3.411638e-05 * meter / second}},
{'ibc1': {'y': 0.02110803 * meter / second}}] {'ibc1': {'y': 0.02110803 * meter / second}}]
7000 [0.0083445 * 10.0^0 * ((meter / second) / second) ** 2, [0.0083445 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9857232e-05 * meter / second}}, {'ibc0': {'y': 1.9857232e-05 * meter / second}},
{'ibc1': {'y': 0.00840012 * meter / second}}] {'ibc1': {'y': 0.00840012 * meter / second}}]
8000 [0.00405152 * 10.0^0 * ((meter / second) / second) ** 2, [0.00405152 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.13869e-05 * meter / second}}, {'ibc0': {'y': 3.13869e-05 * meter / second}},
{'ibc1': {'y': 0.0031565 * meter / second}}] {'ibc1': {'y': 0.0031565 * meter / second}}]
9000 [0.00258377 * 10.0^0 * ((meter / second) / second) ** 2, [0.00258377 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.9788125e-05 * meter / second}}, {'ibc0': {'y': 2.9788125e-05 * meter / second}},
{'ibc1': {'y': 0.00185996 * meter / second}}] {'ibc1': {'y': 0.00185996 * meter / second}}]
10000 [0.00182265 * 10.0^0 * ((meter / second) / second) ** 2, [0.00182265 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8763618e-05 * meter / second}}, {'ibc0': {'y': 1.8763618e-05 * meter / second}},
{'ibc1': {'y': 0.00121202 * meter / second}}] {'ibc1': {'y': 0.00121202 * meter / second}}]
11000 [0.00131502 * 10.0^0 * ((meter / second) / second) ** 2, [0.00131502 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1222968e-05 * meter / second}}, {'ibc0': {'y': 1.1222968e-05 * meter / second}},
{'ibc1': {'y': 0.00087704 * meter / second}}] {'ibc1': {'y': 0.00087704 * meter / second}}]
12000 [0.00102354 * 10.0^0 * ((meter / second) / second) ** 2, [0.00102354 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 7.5733656e-06 * meter / second}}, {'ibc0': {'y': 7.5733656e-06 * meter / second}},
{'ibc1': {'y': 0.00069363 * meter / second}}] {'ibc1': {'y': 0.00069363 * meter / second}}]
13000 [0.00085795 * 10.0^0 * ((meter / second) / second) ** 2, [0.00085795 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 6.1193127e-06 * meter / second}}, {'ibc0': {'y': 6.1193127e-06 * meter / second}},
{'ibc1': {'y': 0.00059203 * meter / second}}] {'ibc1': {'y': 0.00059203 * meter / second}}]
14000 [0.00075481 * 10.0^0 * ((meter / second) / second) ** 2, [0.00075481 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 5.336154e-06 * meter / second}}, {'ibc0': {'y': 5.336154e-06 * meter / second}},
{'ibc1': {'y': 0.00052162 * meter / second}}] {'ibc1': {'y': 0.00052162 * meter / second}}]
15000 [0.00067973 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067973 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.3045325e-06 * meter / second}}, {'ibc0': {'y': 4.3045325e-06 * meter / second}},
{'ibc1': {'y': 0.00046943 * meter / second}}] {'ibc1': {'y': 0.00046943 * meter / second}}]
Best trainer at step 15000:
train loss: 1.15e-03
test loss: 1.15e-03
test metric: []
'train' took 60.923828 s
<pinnx.Trainer at 0x308d237d0>
After we train the network using Adam, we continue to train the network using L-BFGS to achieve a smaller loss:
trainer.compile(braintools.optim.LBFGS(1e-3)).train(2000, display_every=200)
Compiling trainer...
'compile' took 0.023359 s
Training trainer...
Step Train loss Test loss Test metric
15000 [0.00067973 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067973 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.3045325e-06 * meter / second}}, {'ibc0': {'y': 4.3045325e-06 * meter / second}},
{'ibc1': {'y': 0.00046943 * meter / second}}] {'ibc1': {'y': 0.00046943 * meter / second}}]
15200 [0.00068126 * 10.0^0 * ((meter / second) / second) ** 2, [0.00068126 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.169301e-06 * meter / second}}, {'ibc0': {'y': 4.169301e-06 * meter / second}},
{'ibc1': {'y': 0.00046952 * meter / second}}] {'ibc1': {'y': 0.00046952 * meter / second}}]
15400 [0.00068003 * 10.0^0 * ((meter / second) / second) ** 2, [0.00068003 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.1923004e-06 * meter / second}}, {'ibc0': {'y': 4.1923004e-06 * meter / second}},
{'ibc1': {'y': 0.00046954 * meter / second}}] {'ibc1': {'y': 0.00046954 * meter / second}}]
15600 [0.00067914 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067914 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.2128318e-06 * meter / second}}, {'ibc0': {'y': 4.2128318e-06 * meter / second}},
{'ibc1': {'y': 0.00046957 * meter / second}}] {'ibc1': {'y': 0.00046957 * meter / second}}]
15800 [0.00067831 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067831 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.2393303e-06 * meter / second}}, {'ibc0': {'y': 4.2393303e-06 * meter / second}},
{'ibc1': {'y': 0.0004696 * meter / second}}] {'ibc1': {'y': 0.0004696 * meter / second}}]
16000 [0.00067745 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067745 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.397528e-06 * meter / second}}, {'ibc0': {'y': 4.397528e-06 * meter / second}},
{'ibc1': {'y': 0.0004696 * meter / second}}] {'ibc1': {'y': 0.0004696 * meter / second}}]
16200 [0.00067771 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067771 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.1383482e-06 * meter / second}}, {'ibc0': {'y': 4.1383482e-06 * meter / second}},
{'ibc1': {'y': 0.00046968 * meter / second}}] {'ibc1': {'y': 0.00046968 * meter / second}}]
16400 [0.00067749 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067749 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.25508e-06 * meter / second}}, {'ibc0': {'y': 4.25508e-06 * meter / second}},
{'ibc1': {'y': 0.00046969 * meter / second}}] {'ibc1': {'y': 0.00046969 * meter / second}}]
16600 [0.00067738 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067738 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.3410837e-06 * meter / second}}, {'ibc0': {'y': 4.3410837e-06 * meter / second}},
{'ibc1': {'y': 0.00046968 * meter / second}}] {'ibc1': {'y': 0.00046968 * meter / second}}]
16800 [0.0006782 * 10.0^0 * ((meter / second) / second) ** 2, [0.0006782 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.657258e-06 * meter / second}}, {'ibc0': {'y': 3.657258e-06 * meter / second}},
{'ibc1': {'y': 0.00047006 * meter / second}}] {'ibc1': {'y': 0.00047006 * meter / second}}]
17000 [0.00067788 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067788 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.8210997e-06 * meter / second}}, {'ibc0': {'y': 3.8210997e-06 * meter / second}},
{'ibc1': {'y': 0.00046992 * meter / second}}] {'ibc1': {'y': 0.00046992 * meter / second}}]
Best trainer at step 16600:
train loss: 1.15e-03
test loss: 1.15e-03
test metric: []
'train' took 9.051486 s
<pinnx.Trainer at 0x308d237d0>
Because we only use 2500 residual points for training, the accuracy is low. Next, we improve the accuracy by the residual-based adaptive refinement (RAR) method. Because the Burgers equation has a sharp front, intuitively, we should put more points near the sharp front. First, we randomly generate 100000 points from our domain to calculate the PDE residual.
X = geomtime.random_points(100000)
err = 1
We will repeatedly add points while the mean residual is greater than 0.005. Each iteration, we use our model to generate predictions for inputs in X and compute the absolute values of the errors. We then print the mean residual. Next, we find the points where the residual is greatest and add these new points for training PDE loss. Furthermore, we define a callback function to check whether the network converges. If there is significant improvement in the model’s accuracy, as judged by the callback function, we continue to train the model. As before, after we train the network using Adam, we continue to train the network using L-BFGS to achieve a smaller loss:
while u.get_magnitude(err) > 0.012:
f = trainer.predict(X, operator=pde)
err_eq = u.math.absolute(f)
err = u.math.mean(err_eq)
print(f"Mean residual: {err:.3f}")
x_id = u.math.argmax(err_eq)
new_xs = jax.tree.map(lambda x: x[[x_id]], X)
print("Adding new point:", new_xs, "\n")
problem.add_anchors(new_xs)
early_stopping = pinnx.callbacks.EarlyStopping(min_delta=1e-4, patience=2000)
trainer.compile(braintools.optim.Adam(1e-3)).train(iterations=10000,
disregard_previous_best=True,
callbacks=[early_stopping])
trainer.compile(braintools.optim.LBFGS(1e-3)).train(1000, display_every=100)
Mean residual: 0.018 * (meter / second) / second
Adding new point: {'t': ArrayImpl([0.31030682], dtype=float32) * second, 'x': ArrayImpl([0.00072277], dtype=float32) * meter}
Compiling trainer...
'compile' took 0.013387 s
Training trainer...
Step Train loss Test loss Test metric
17000 [0.00295319 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067788 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.8210997e-06 * meter / second}}, {'ibc0': {'y': 3.8210997e-06 * meter / second}},
{'ibc1': {'y': 0.00046992 * meter / second}}] {'ibc1': {'y': 0.00046992 * meter / second}}]
18000 [0.00108327 * 10.0^0 * ((meter / second) / second) ** 2, [0.0009432 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 5.890686e-06 * meter / second}}, {'ibc0': {'y': 5.890686e-06 * meter / second}},
{'ibc1': {'y': 0.00053691 * meter / second}}] {'ibc1': {'y': 0.00053691 * meter / second}}]
19000 [0.00092558 * 10.0^0 * ((meter / second) / second) ** 2, [0.000839 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.3144605e-06 * meter / second}}, {'ibc0': {'y': 4.3144605e-06 * meter / second}},
{'ibc1': {'y': 0.00054824 * meter / second}}] {'ibc1': {'y': 0.00054824 * meter / second}}]
20000 [0.00081564 * 10.0^0 * ((meter / second) / second) ** 2, [0.00076047 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.5706555e-06 * meter / second}}, {'ibc0': {'y': 3.5706555e-06 * meter / second}},
{'ibc1': {'y': 0.00053703 * meter / second}}] {'ibc1': {'y': 0.00053703 * meter / second}}]
21000 [0.00096415 * 10.0^0 * ((meter / second) / second) ** 2, [0.00090121 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.095076e-06 * meter / second}}, {'ibc0': {'y': 4.095076e-06 * meter / second}},
{'ibc1': {'y': 0.00050534 * meter / second}}] {'ibc1': {'y': 0.00050534 * meter / second}}]
22000 [0.00064556 * 10.0^0 * ((meter / second) / second) ** 2, [0.00062304 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.185172e-06 * meter / second}}, {'ibc0': {'y': 3.185172e-06 * meter / second}},
{'ibc1': {'y': 0.00046558 * meter / second}}] {'ibc1': {'y': 0.00046558 * meter / second}}]
23000 [0.00058509 * 10.0^0 * ((meter / second) / second) ** 2, [0.00056849 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.078764e-06 * meter / second}}, {'ibc0': {'y': 3.078764e-06 * meter / second}},
{'ibc1': {'y': 0.00042695 * meter / second}}] {'ibc1': {'y': 0.00042695 * meter / second}}]
24000 [0.00053798 * 10.0^0 * ((meter / second) / second) ** 2, [0.00052545 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.944127e-06 * meter / second}}, {'ibc0': {'y': 2.944127e-06 * meter / second}},
{'ibc1': {'y': 0.0003891 * meter / second}}] {'ibc1': {'y': 0.0003891 * meter / second}}]
25000 [0.00053603 * 10.0^0 * ((meter / second) / second) ** 2, [0.00052135 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.57443e-06 * meter / second}}, {'ibc0': {'y': 3.57443e-06 * meter / second}},
{'ibc1': {'y': 0.00035367 * meter / second}}] {'ibc1': {'y': 0.00035367 * meter / second}}]
26000 [0.00046754 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.5451907e-06 * meter / second}}, {'ibc0': {'y': 2.5451907e-06 * meter / second}},
{'ibc1': {'y': 0.00032271 * meter / second}}] {'ibc1': {'y': 0.00032271 * meter / second}}]
27000 [0.00044109 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043435 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.2023457e-06 * meter / second}}, {'ibc0': {'y': 2.2023457e-06 * meter / second}},
{'ibc1': {'y': 0.00029436 * meter / second}}] {'ibc1': {'y': 0.00029436 * meter / second}}]
Best trainer at step 27000:
train loss: 7.38e-04
test loss: 7.31e-04
test metric: []
'train' took 38.123230 s
Compiling trainer...
'compile' took 0.009922 s
Training trainer...
Step Train loss Test loss Test metric
27000 [0.00044109 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043435 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.2023457e-06 * meter / second}}, {'ibc0': {'y': 2.2023457e-06 * meter / second}},
{'ibc1': {'y': 0.00029436 * meter / second}}] {'ibc1': {'y': 0.00029436 * meter / second}}]
27100 [0.00044241 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043749 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.3348348e-06 * meter / second}}, {'ibc0': {'y': 2.3348348e-06 * meter / second}},
{'ibc1': {'y': 0.00029449 * meter / second}}] {'ibc1': {'y': 0.00029449 * meter / second}}]
27200 [0.00044184 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043681 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.326817e-06 * meter / second}}, {'ibc0': {'y': 2.326817e-06 * meter / second}},
{'ibc1': {'y': 0.00029447 * meter / second}}] {'ibc1': {'y': 0.00029447 * meter / second}}]
27300 [0.00044135 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043622 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.3192913e-06 * meter / second}}, {'ibc0': {'y': 2.3192913e-06 * meter / second}},
{'ibc1': {'y': 0.00029445 * meter / second}}] {'ibc1': {'y': 0.00029445 * meter / second}}]
27400 [0.00044094 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043571 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.3149416e-06 * meter / second}}, {'ibc0': {'y': 2.3149416e-06 * meter / second}},
{'ibc1': {'y': 0.00029443 * meter / second}}] {'ibc1': {'y': 0.00029443 * meter / second}}]
27500 [0.00044026 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043484 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.307417e-06 * meter / second}}, {'ibc0': {'y': 2.307417e-06 * meter / second}},
{'ibc1': {'y': 0.00029437 * meter / second}}] {'ibc1': {'y': 0.00029437 * meter / second}}]
27600 [0.0004401 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043462 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.3055607e-06 * meter / second}}, {'ibc0': {'y': 2.3055607e-06 * meter / second}},
{'ibc1': {'y': 0.00029435 * meter / second}}] {'ibc1': {'y': 0.00029435 * meter / second}}]
27700 [0.00044003 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043452 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.3062646e-06 * meter / second}}, {'ibc0': {'y': 2.3062646e-06 * meter / second}},
{'ibc1': {'y': 0.00029433 * meter / second}}] {'ibc1': {'y': 0.00029433 * meter / second}}]
27800 [0.00043955 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043361 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.3343398e-06 * meter / second}}, {'ibc0': {'y': 2.3343398e-06 * meter / second}},
{'ibc1': {'y': 0.00029413 * meter / second}}] {'ibc1': {'y': 0.00029413 * meter / second}}]
27900 [0.00043953 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043358 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.3186947e-06 * meter / second}}, {'ibc0': {'y': 2.3186947e-06 * meter / second}},
{'ibc1': {'y': 0.00029415 * meter / second}}] {'ibc1': {'y': 0.00029415 * meter / second}}]
28000 [0.00070291 * 10.0^0 * ((meter / second) / second) ** 2, [0.00070311 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.3909661e-05 * meter / second}}, {'ibc0': {'y': 1.3909661e-05 * meter / second}},
{'ibc1': {'y': 0.00030785 * meter / second}}] {'ibc1': {'y': 0.00030785 * meter / second}}]
Best trainer at step 27900:
train loss: 7.36e-04
test loss: 7.30e-04
test metric: []
'train' took 4.621998 s
Mean residual: 0.016 * (meter / second) / second
Adding new point: {'t': ArrayImpl([0.98801452], dtype=float32) * second, 'x': ArrayImpl([-0.00032282], dtype=float32) * meter}
Compiling trainer...
'compile' took 0.013920 s
Training trainer...
Step Train loss Test loss Test metric
28000 [0.00197229 * 10.0^0 * ((meter / second) / second) ** 2, [0.00070311 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.3909661e-05 * meter / second}}, {'ibc0': {'y': 1.3909661e-05 * meter / second}},
{'ibc1': {'y': 0.00030785 * meter / second}}] {'ibc1': {'y': 0.00030785 * meter / second}}]
29000 [0.00051649 * 10.0^0 * ((meter / second) / second) ** 2, [0.00050734 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.4825522e-06 * meter / second}}, {'ibc0': {'y': 2.4825522e-06 * meter / second}},
{'ibc1': {'y': 0.0002885 * meter / second}}] {'ibc1': {'y': 0.0002885 * meter / second}}]
30000 [0.00048944 * 10.0^0 * ((meter / second) / second) ** 2, [0.00048262 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.2519919e-06 * meter / second}}, {'ibc0': {'y': 2.2519919e-06 * meter / second}},
{'ibc1': {'y': 0.00028214 * meter / second}}] {'ibc1': {'y': 0.00028214 * meter / second}}]
31000 [0.00046857 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046308 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.1248854e-06 * meter / second}}, {'ibc0': {'y': 2.1248854e-06 * meter / second}},
{'ibc1': {'y': 0.0002748 * meter / second}}] {'ibc1': {'y': 0.0002748 * meter / second}}]
Epoch 31000: early stopping
Best trainer at step 31000:
train loss: 7.45e-04
test loss: 7.40e-04
test metric: []
'train' took 12.569310 s
Compiling trainer...
'compile' took 0.009631 s
Training trainer...
Step Train loss Test loss Test metric
31000 [0.00046857 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046308 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.1248854e-06 * meter / second}}, {'ibc0': {'y': 2.1248854e-06 * meter / second}},
{'ibc1': {'y': 0.0002748 * meter / second}}] {'ibc1': {'y': 0.0002748 * meter / second}}]
31100 [0.00046857 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046308 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.1262192e-06 * meter / second}}, {'ibc0': {'y': 2.1262192e-06 * meter / second}},
{'ibc1': {'y': 0.0002748 * meter / second}}] {'ibc1': {'y': 0.0002748 * meter / second}}]
31200 [0.00046849 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046293 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.1473877e-06 * meter / second}}, {'ibc0': {'y': 2.1473877e-06 * meter / second}},
{'ibc1': {'y': 0.00027483 * meter / second}}] {'ibc1': {'y': 0.00027483 * meter / second}}]
31300 [0.00073493 * 10.0^0 * ((meter / second) / second) ** 2, [0.0007051 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 6.5290965e-06 * meter / second}}, {'ibc0': {'y': 6.5290965e-06 * meter / second}},
{'ibc1': {'y': 0.00029808 * meter / second}}] {'ibc1': {'y': 0.00029808 * meter / second}}]
31400 [0.00068256 * 10.0^0 * ((meter / second) / second) ** 2, [0.00065663 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 5.5905107e-06 * meter / second}}, {'ibc0': {'y': 5.5905107e-06 * meter / second}},
{'ibc1': {'y': 0.00029581 * meter / second}}] {'ibc1': {'y': 0.00029581 * meter / second}}]
31500 [0.00063919 * 10.0^0 * ((meter / second) / second) ** 2, [0.00061659 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.833671e-06 * meter / second}}, {'ibc0': {'y': 4.833671e-06 * meter / second}},
{'ibc1': {'y': 0.00029365 * meter / second}}] {'ibc1': {'y': 0.00029365 * meter / second}}]
31600 [0.00060404 * 10.0^0 * ((meter / second) / second) ** 2, [0.00058418 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.2318925e-06 * meter / second}}, {'ibc0': {'y': 4.2318925e-06 * meter / second}},
{'ibc1': {'y': 0.00029175 * meter / second}}] {'ibc1': {'y': 0.00029175 * meter / second}}]
31700 [0.0005764 * 10.0^0 * ((meter / second) / second) ** 2, [0.00055869 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.7593527e-06 * meter / second}}, {'ibc0': {'y': 3.7593527e-06 * meter / second}},
{'ibc1': {'y': 0.00029007 * meter / second}}] {'ibc1': {'y': 0.00029007 * meter / second}}]
31800 [0.00055442 * 10.0^0 * ((meter / second) / second) ** 2, [0.00053848 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.3909535e-06 * meter / second}}, {'ibc0': {'y': 3.3909535e-06 * meter / second}},
{'ibc1': {'y': 0.00028856 * meter / second}}] {'ibc1': {'y': 0.00028856 * meter / second}}]
31900 [0.00053654 * 10.0^0 * ((meter / second) / second) ** 2, [0.00052207 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.0938609e-06 * meter / second}}, {'ibc0': {'y': 3.0938609e-06 * meter / second}},
{'ibc1': {'y': 0.00028721 * meter / second}}] {'ibc1': {'y': 0.00028721 * meter / second}}]
32000 [0.00052238 * 10.0^0 * ((meter / second) / second) ** 2, [0.00050915 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.8530642e-06 * meter / second}}, {'ibc0': {'y': 2.8530642e-06 * meter / second}},
{'ibc1': {'y': 0.00028593 * meter / second}}] {'ibc1': {'y': 0.00028593 * meter / second}}]
Best trainer at step 31200:
train loss: 7.45e-04
test loss: 7.40e-04
test metric: []
'train' took 4.693850 s
Mean residual: 0.014 * (meter / second) / second
Adding new point: {'t': ArrayImpl([0.40964028], dtype=float32) * second, 'x': ArrayImpl([-0.00796556], dtype=float32) * meter}
Compiling trainer...
'compile' took 0.013628 s
Training trainer...
Step Train loss Test loss Test metric
32000 [0.00079346 * 10.0^0 * ((meter / second) / second) ** 2, [0.00050915 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.8530642e-06 * meter / second}}, {'ibc0': {'y': 2.8530642e-06 * meter / second}},
{'ibc1': {'y': 0.00028593 * meter / second}}] {'ibc1': {'y': 0.00028593 * meter / second}}]
33000 [0.00055445 * 10.0^0 * ((meter / second) / second) ** 2, [0.0004924 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.0238429e-06 * meter / second}}, {'ibc0': {'y': 2.0238429e-06 * meter / second}},
{'ibc1': {'y': 0.00029025 * meter / second}}] {'ibc1': {'y': 0.00029025 * meter / second}}]
34000 [0.00052658 * 10.0^0 * ((meter / second) / second) ** 2, [0.00047557 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.0058028e-06 * meter / second}}, {'ibc0': {'y': 2.0058028e-06 * meter / second}},
{'ibc1': {'y': 0.00029186 * meter / second}}] {'ibc1': {'y': 0.00029186 * meter / second}}]
35000 [0.00050164 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045865 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9805689e-06 * meter / second}}, {'ibc0': {'y': 1.9805689e-06 * meter / second}},
{'ibc1': {'y': 0.0002901 * meter / second}}] {'ibc1': {'y': 0.0002901 * meter / second}}]
Epoch 35000: early stopping
Best trainer at step 35000:
train loss: 7.94e-04
test loss: 7.51e-04
test metric: []
'train' took 11.863162 s
Compiling trainer...
'compile' took 0.009882 s
Training trainer...
Step Train loss Test loss Test metric
35000 [0.00050164 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045865 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9805689e-06 * meter / second}}, {'ibc0': {'y': 1.9805689e-06 * meter / second}},
{'ibc1': {'y': 0.0002901 * meter / second}}] {'ibc1': {'y': 0.0002901 * meter / second}}]
35100 [0.00050166 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045857 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9694924e-06 * meter / second}}, {'ibc0': {'y': 1.9694924e-06 * meter / second}},
{'ibc1': {'y': 0.00029009 * meter / second}}] {'ibc1': {'y': 0.00029009 * meter / second}}]
35200 [0.00050164 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045859 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9775282e-06 * meter / second}}, {'ibc0': {'y': 1.9775282e-06 * meter / second}},
{'ibc1': {'y': 0.0002901 * meter / second}}] {'ibc1': {'y': 0.0002901 * meter / second}}]
35300 [0.00050156 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045861 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.0046225e-06 * meter / second}}, {'ibc0': {'y': 2.0046225e-06 * meter / second}},
{'ibc1': {'y': 0.00029016 * meter / second}}] {'ibc1': {'y': 0.00029016 * meter / second}}]
35400 [0.00050155 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045858 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.0021143e-06 * meter / second}}, {'ibc0': {'y': 2.0021143e-06 * meter / second}},
{'ibc1': {'y': 0.00029016 * meter / second}}] {'ibc1': {'y': 0.00029016 * meter / second}}]
35500 [0.00050156 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045858 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.0010755e-06 * meter / second}}, {'ibc0': {'y': 2.0010755e-06 * meter / second}},
{'ibc1': {'y': 0.00029016 * meter / second}}] {'ibc1': {'y': 0.00029016 * meter / second}}]
35600 [0.00050155 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045855 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9991612e-06 * meter / second}}, {'ibc0': {'y': 1.9991612e-06 * meter / second}},
{'ibc1': {'y': 0.00029016 * meter / second}}] {'ibc1': {'y': 0.00029016 * meter / second}}]
35700 [0.00050155 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045855 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9982401e-06 * meter / second}}, {'ibc0': {'y': 1.9982401e-06 * meter / second}},
{'ibc1': {'y': 0.00029016 * meter / second}}] {'ibc1': {'y': 0.00029016 * meter / second}}]
35800 [0.00050156 * 10.0^0 * ((meter / second) / second) ** 2, [0.0004586 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9993226e-06 * meter / second}}, {'ibc0': {'y': 1.9993226e-06 * meter / second}},
{'ibc1': {'y': 0.00029015 * meter / second}}] {'ibc1': {'y': 0.00029015 * meter / second}}]
35900 [0.00050156 * 10.0^0 * ((meter / second) / second) ** 2, [0.0004586 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9988458e-06 * meter / second}}, {'ibc0': {'y': 1.9988458e-06 * meter / second}},
{'ibc1': {'y': 0.00029015 * meter / second}}] {'ibc1': {'y': 0.00029015 * meter / second}}]
36000 [0.00050155 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045858 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9998658e-06 * meter / second}}, {'ibc0': {'y': 1.9998658e-06 * meter / second}},
{'ibc1': {'y': 0.00029015 * meter / second}}] {'ibc1': {'y': 0.00029015 * meter / second}}]
Best trainer at step 36000:
train loss: 7.94e-04
test loss: 7.51e-04
test metric: []
'train' took 4.908738 s
Mean residual: 0.013 * (meter / second) / second
Adding new point: {'t': ArrayImpl([0.2315986], dtype=float32) * second, 'x': ArrayImpl([-0.00680643], dtype=float32) * meter}
Compiling trainer...
'compile' took 0.015565 s
Training trainer...
Step Train loss Test loss Test metric
36000 [0.00074802 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045858 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9998658e-06 * meter / second}}, {'ibc0': {'y': 1.9998658e-06 * meter / second}},
{'ibc1': {'y': 0.00029015 * meter / second}}] {'ibc1': {'y': 0.00029015 * meter / second}}]
37000 [0.00059534 * 10.0^0 * ((meter / second) / second) ** 2, [0.00048061 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9475647e-06 * meter / second}}, {'ibc0': {'y': 1.9475647e-06 * meter / second}},
{'ibc1': {'y': 0.00031009 * meter / second}}] {'ibc1': {'y': 0.00031009 * meter / second}}]
38000 [0.0005734 * 10.0^0 * ((meter / second) / second) ** 2, [0.00047273 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9098984e-06 * meter / second}}, {'ibc0': {'y': 1.9098984e-06 * meter / second}},
{'ibc1': {'y': 0.00030421 * meter / second}}] {'ibc1': {'y': 0.00030421 * meter / second}}]
39000 [0.00054813 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046036 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8778497e-06 * meter / second}}, {'ibc0': {'y': 1.8778497e-06 * meter / second}},
{'ibc1': {'y': 0.00029654 * meter / second}}] {'ibc1': {'y': 0.00029654 * meter / second}}]
Epoch 39000: early stopping
Best trainer at step 39000:
train loss: 8.47e-04
test loss: 7.59e-04
test metric: []
'train' took 12.797805 s
Compiling trainer...
'compile' took 0.010421 s
Training trainer...
Step Train loss Test loss Test metric
39000 [0.00054813 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046036 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8778497e-06 * meter / second}}, {'ibc0': {'y': 1.8778497e-06 * meter / second}},
{'ibc1': {'y': 0.00029654 * meter / second}}] {'ibc1': {'y': 0.00029654 * meter / second}}]
39100 [0.00054806 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046043 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.870236e-06 * meter / second}}, {'ibc0': {'y': 1.870236e-06 * meter / second}},
{'ibc1': {'y': 0.00029661 * meter / second}}] {'ibc1': {'y': 0.00029661 * meter / second}}]
39200 [0.00054929 * 10.0^0 * ((meter / second) / second) ** 2, [0.0004634 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.0574782e-06 * meter / second}}, {'ibc0': {'y': 2.0574782e-06 * meter / second}},
{'ibc1': {'y': 0.00029533 * meter / second}}] {'ibc1': {'y': 0.00029533 * meter / second}}]
39300 [0.00054904 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046287 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.0242942e-06 * meter / second}}, {'ibc0': {'y': 2.0242942e-06 * meter / second}},
{'ibc1': {'y': 0.00029551 * meter / second}}] {'ibc1': {'y': 0.00029551 * meter / second}}]
39400 [0.00054891 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046254 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.004753e-06 * meter / second}}, {'ibc0': {'y': 2.004753e-06 * meter / second}},
{'ibc1': {'y': 0.00029562 * meter / second}}] {'ibc1': {'y': 0.00029562 * meter / second}}]
39500 [0.00054882 * 10.0^0 * ((meter / second) / second) ** 2, [0.0004622 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.994075e-06 * meter / second}}, {'ibc0': {'y': 1.994075e-06 * meter / second}},
{'ibc1': {'y': 0.0002957 * meter / second}}] {'ibc1': {'y': 0.0002957 * meter / second}}]
39600 [0.0005721 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045579 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.6710437e-06 * meter / second}}, {'ibc0': {'y': 1.6710437e-06 * meter / second}},
{'ibc1': {'y': 0.00030883 * meter / second}}] {'ibc1': {'y': 0.00030883 * meter / second}}]
39700 [0.00056654 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045358 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.5904287e-06 * meter / second}}, {'ibc0': {'y': 1.5904287e-06 * meter / second}},
{'ibc1': {'y': 0.00030726 * meter / second}}] {'ibc1': {'y': 0.00030726 * meter / second}}]
39800 [0.00056229 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045216 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.5325267e-06 * meter / second}}, {'ibc0': {'y': 1.5325267e-06 * meter / second}},
{'ibc1': {'y': 0.00030581 * meter / second}}] {'ibc1': {'y': 0.00030581 * meter / second}}]
39900 [0.0005591 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045143 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.498971e-06 * meter / second}}, {'ibc0': {'y': 1.498971e-06 * meter / second}},
{'ibc1': {'y': 0.00030449 * meter / second}}] {'ibc1': {'y': 0.00030449 * meter / second}}]
40000 [0.00055651 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045115 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.4806845e-06 * meter / second}}, {'ibc0': {'y': 1.4806845e-06 * meter / second}},
{'ibc1': {'y': 0.00030329 * meter / second}}] {'ibc1': {'y': 0.00030329 * meter / second}}]
Best trainer at step 39500:
train loss: 8.47e-04
test loss: 7.60e-04
test metric: []
'train' took 4.848265 s
Mean residual: 0.013 * (meter / second) / second
Adding new point: {'t': ArrayImpl([0.98284292], dtype=float32) * second, 'x': ArrayImpl([0.00254142], dtype=float32) * meter}
Compiling trainer...
'compile' took 0.014243 s
Training trainer...
Step Train loss Test loss Test metric
40000 [0.0006681 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045115 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.4806845e-06 * meter / second}}, {'ibc0': {'y': 1.4806845e-06 * meter / second}},
{'ibc1': {'y': 0.00030329 * meter / second}}] {'ibc1': {'y': 0.00030329 * meter / second}}]
41000 [0.00057995 * 10.0^0 * ((meter / second) / second) ** 2, [0.00048127 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.0367063e-06 * meter / second}}, {'ibc0': {'y': 2.0367063e-06 * meter / second}},
{'ibc1': {'y': 0.00029667 * meter / second}}] {'ibc1': {'y': 0.00029667 * meter / second}}]
42000 [0.00055732 * 10.0^0 * ((meter / second) / second) ** 2, [0.000462 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8838784e-06 * meter / second}}, {'ibc0': {'y': 1.8838784e-06 * meter / second}},
{'ibc1': {'y': 0.0002966 * meter / second}}] {'ibc1': {'y': 0.0002966 * meter / second}}]
43000 [0.0005333 * 10.0^0 * ((meter / second) / second) ** 2, [0.00044418 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8350134e-06 * meter / second}}, {'ibc0': {'y': 1.8350134e-06 * meter / second}},
{'ibc1': {'y': 0.00029156 * meter / second}}] {'ibc1': {'y': 0.00029156 * meter / second}}]
44000 [0.00050091 * 10.0^0 * ((meter / second) / second) ** 2, [0.0004224 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.826639e-06 * meter / second}}, {'ibc0': {'y': 1.826639e-06 * meter / second}},
{'ibc1': {'y': 0.00027955 * meter / second}}] {'ibc1': {'y': 0.00027955 * meter / second}}]
Epoch 44000: early stopping
Best trainer at step 44000:
train loss: 7.82e-04
test loss: 7.04e-04
test metric: []
'train' took 14.967950 s
Compiling trainer...
'compile' took 0.009629 s
Training trainer...
Step Train loss Test loss Test metric
44000 [0.00050091 * 10.0^0 * ((meter / second) / second) ** 2, [0.0004224 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.826639e-06 * meter / second}}, {'ibc0': {'y': 1.826639e-06 * meter / second}},
{'ibc1': {'y': 0.00027955 * meter / second}}] {'ibc1': {'y': 0.00027955 * meter / second}}]
44100 [0.00050114 * 10.0^0 * ((meter / second) / second) ** 2, [0.00042319 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8824794e-06 * meter / second}}, {'ibc0': {'y': 1.8824794e-06 * meter / second}},
{'ibc1': {'y': 0.00027945 * meter / second}}] {'ibc1': {'y': 0.00027945 * meter / second}}]
44200 [0.00145139 * 10.0^0 * ((meter / second) / second) ** 2, [0.00122295 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 8.942031e-06 * meter / second}}, {'ibc0': {'y': 8.942031e-06 * meter / second}},
{'ibc1': {'y': 0.00027929 * meter / second}}] {'ibc1': {'y': 0.00027929 * meter / second}}]
44300 [0.00127814 * 10.0^0 * ((meter / second) / second) ** 2, [0.00108249 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 7.864425e-06 * meter / second}}, {'ibc0': {'y': 7.864425e-06 * meter / second}},
{'ibc1': {'y': 0.00027888 * meter / second}}] {'ibc1': {'y': 0.00027888 * meter / second}}]
44400 [0.00113658 * 10.0^0 * ((meter / second) / second) ** 2, [0.00096735 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 6.9546295e-06 * meter / second}}, {'ibc0': {'y': 6.9546295e-06 * meter / second}},
{'ibc1': {'y': 0.00027857 * meter / second}}] {'ibc1': {'y': 0.00027857 * meter / second}}]
44500 [0.00102089 * 10.0^0 * ((meter / second) / second) ** 2, [0.00087287 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 6.1936867e-06 * meter / second}}, {'ibc0': {'y': 6.1936867e-06 * meter / second}},
{'ibc1': {'y': 0.00027836 * meter / second}}] {'ibc1': {'y': 0.00027836 * meter / second}}]
44600 [0.00092632 * 10.0^0 * ((meter / second) / second) ** 2, [0.00079524 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 5.5573573e-06 * meter / second}}, {'ibc0': {'y': 5.5573573e-06 * meter / second}},
{'ibc1': {'y': 0.00027821 * meter / second}}] {'ibc1': {'y': 0.00027821 * meter / second}}]
44700 [0.00084903 * 10.0^0 * ((meter / second) / second) ** 2, [0.00073138 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 5.0196286e-06 * meter / second}}, {'ibc0': {'y': 5.0196286e-06 * meter / second}},
{'ibc1': {'y': 0.00027812 * meter / second}}] {'ibc1': {'y': 0.00027812 * meter / second}}]
44800 [0.0007858 * 10.0^0 * ((meter / second) / second) ** 2, [0.00067878 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.56894e-06 * meter / second}}, {'ibc0': {'y': 4.56894e-06 * meter / second}},
{'ibc1': {'y': 0.00027808 * meter / second}}] {'ibc1': {'y': 0.00027808 * meter / second}}]
44900 [0.00073408 * 10.0^0 * ((meter / second) / second) ** 2, [0.00063543 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 4.191006e-06 * meter / second}}, {'ibc0': {'y': 4.191006e-06 * meter / second}},
{'ibc1': {'y': 0.00027807 * meter / second}}] {'ibc1': {'y': 0.00027807 * meter / second}}]
45000 [0.00069176 * 10.0^0 * ((meter / second) / second) ** 2, [0.00059965 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.8737767e-06 * meter / second}}, {'ibc0': {'y': 3.8737767e-06 * meter / second}},
{'ibc1': {'y': 0.00027808 * meter / second}}] {'ibc1': {'y': 0.00027808 * meter / second}}]
Best trainer at step 44000:
train loss: 7.82e-04
test loss: 7.04e-04
test metric: []
'train' took 4.975001 s
Mean residual: 0.014 * (meter / second) / second
Adding new point: {'t': ArrayImpl([0.47824991], dtype=float32) * second, 'x': ArrayImpl([0.00034535], dtype=float32) * meter}
Compiling trainer...
'compile' took 0.013878 s
Training trainer...
Step Train loss Test loss Test metric
45000 [0.00086286 * 10.0^0 * ((meter / second) / second) ** 2, [0.00059965 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 3.8737767e-06 * meter / second}}, {'ibc0': {'y': 3.8737767e-06 * meter / second}},
{'ibc1': {'y': 0.00027808 * meter / second}}] {'ibc1': {'y': 0.00027808 * meter / second}}]
46000 [0.00051184 * 10.0^0 * ((meter / second) / second) ** 2, [0.00043078 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.951535e-06 * meter / second}}, {'ibc0': {'y': 1.951535e-06 * meter / second}},
{'ibc1': {'y': 0.00028326 * meter / second}}] {'ibc1': {'y': 0.00028326 * meter / second}}]
47000 [0.00049468 * 10.0^0 * ((meter / second) / second) ** 2, [0.00041779 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8175754e-06 * meter / second}}, {'ibc0': {'y': 1.8175754e-06 * meter / second}},
{'ibc1': {'y': 0.00027674 * meter / second}}] {'ibc1': {'y': 0.00027674 * meter / second}}]
48000 [0.00047711 * 10.0^0 * ((meter / second) / second) ** 2, [0.00040669 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8042014e-06 * meter / second}}, {'ibc0': {'y': 1.8042014e-06 * meter / second}},
{'ibc1': {'y': 0.00026785 * meter / second}}] {'ibc1': {'y': 0.00026785 * meter / second}}]
Epoch 48000: early stopping
Best trainer at step 48000:
train loss: 7.47e-04
test loss: 6.76e-04
test metric: []
'train' took 11.456536 s
Compiling trainer...
'compile' took 0.009981 s
Training trainer...
Step Train loss Test loss Test metric
48000 [0.00047711 * 10.0^0 * ((meter / second) / second) ** 2, [0.00040669 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8042014e-06 * meter / second}}, {'ibc0': {'y': 1.8042014e-06 * meter / second}},
{'ibc1': {'y': 0.00026785 * meter / second}}] {'ibc1': {'y': 0.00026785 * meter / second}}]
48100 [0.00047705 * 10.0^0 * ((meter / second) / second) ** 2, [0.00040699 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8382888e-06 * meter / second}}, {'ibc0': {'y': 1.8382888e-06 * meter / second}},
{'ibc1': {'y': 0.00026787 * meter / second}}] {'ibc1': {'y': 0.00026787 * meter / second}}]
48200 [0.00047711 * 10.0^0 * ((meter / second) / second) ** 2, [0.00040684 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.838244e-06 * meter / second}}, {'ibc0': {'y': 1.838244e-06 * meter / second}},
{'ibc1': {'y': 0.00026778 * meter / second}}] {'ibc1': {'y': 0.00026778 * meter / second}}]
48300 [0.00055811 * 10.0^0 * ((meter / second) / second) ** 2, [0.00051886 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.0354166e-06 * meter / second}}, {'ibc0': {'y': 2.0354166e-06 * meter / second}},
{'ibc1': {'y': 0.00027301 * meter / second}}] {'ibc1': {'y': 0.00027301 * meter / second}}]
48400 [0.00054285 * 10.0^0 * ((meter / second) / second) ** 2, [0.00050191 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.7836052e-06 * meter / second}}, {'ibc0': {'y': 1.7836052e-06 * meter / second}},
{'ibc1': {'y': 0.00027229 * meter / second}}] {'ibc1': {'y': 0.00027229 * meter / second}}]
48500 [0.00053009 * 10.0^0 * ((meter / second) / second) ** 2, [0.00048734 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.5927877e-06 * meter / second}}, {'ibc0': {'y': 1.5927877e-06 * meter / second}},
{'ibc1': {'y': 0.00027169 * meter / second}}] {'ibc1': {'y': 0.00027169 * meter / second}}]
48600 [0.00051951 * 10.0^0 * ((meter / second) / second) ** 2, [0.0004748 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.4500241e-06 * meter / second}}, {'ibc0': {'y': 1.4500241e-06 * meter / second}},
{'ibc1': {'y': 0.00027117 * meter / second}}] {'ibc1': {'y': 0.00027117 * meter / second}}]
48700 [0.00051096 * 10.0^0 * ((meter / second) / second) ** 2, [0.00046426 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.344583e-06 * meter / second}}, {'ibc0': {'y': 1.344583e-06 * meter / second}},
{'ibc1': {'y': 0.00027073 * meter / second}}] {'ibc1': {'y': 0.00027073 * meter / second}}]
48800 [0.0005042 * 10.0^0 * ((meter / second) / second) ** 2, [0.00045563 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.2793502e-06 * meter / second}}, {'ibc0': {'y': 1.2793502e-06 * meter / second}},
{'ibc1': {'y': 0.00027043 * meter / second}}] {'ibc1': {'y': 0.00027043 * meter / second}}]
48900 [0.00049869 * 10.0^0 * ((meter / second) / second) ** 2, [0.00044829 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.239052e-06 * meter / second}}, {'ibc0': {'y': 1.239052e-06 * meter / second}},
{'ibc1': {'y': 0.00027017 * meter / second}}] {'ibc1': {'y': 0.00027017 * meter / second}}]
49000 [0.00049421 * 10.0^0 * ((meter / second) / second) ** 2, [0.00044207 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.218723e-06 * meter / second}}, {'ibc0': {'y': 1.218723e-06 * meter / second}},
{'ibc1': {'y': 0.00026993 * meter / second}}] {'ibc1': {'y': 0.00026993 * meter / second}}]
Best trainer at step 48200:
train loss: 7.47e-04
test loss: 6.76e-04
test metric: []
'train' took 4.382472 s
Mean residual: 0.013 * (meter / second) / second
Adding new point: {'t': ArrayImpl([0.32790023], dtype=float32) * second, 'x': ArrayImpl([-0.00789118], dtype=float32) * meter}
Compiling trainer...
'compile' took 0.013897 s
Training trainer...
Step Train loss Test loss Test metric
49000 [0.00057817 * 10.0^0 * ((meter / second) / second) ** 2, [0.00044207 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.218723e-06 * meter / second}}, {'ibc0': {'y': 1.218723e-06 * meter / second}},
{'ibc1': {'y': 0.00026993 * meter / second}}] {'ibc1': {'y': 0.00026993 * meter / second}}]
50000 [0.00050032 * 10.0^0 * ((meter / second) / second) ** 2, [0.00041502 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.859967e-06 * meter / second}}, {'ibc0': {'y': 1.859967e-06 * meter / second}},
{'ibc1': {'y': 0.00028114 * meter / second}}] {'ibc1': {'y': 0.00028114 * meter / second}}]
51000 [0.00047413 * 10.0^0 * ((meter / second) / second) ** 2, [0.0004074 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8621943e-06 * meter / second}}, {'ibc0': {'y': 1.8621943e-06 * meter / second}},
{'ibc1': {'y': 0.00027061 * meter / second}}] {'ibc1': {'y': 0.00027061 * meter / second}}]
52000 [0.00043118 * 10.0^0 * ((meter / second) / second) ** 2, [0.00039883 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9477718e-06 * meter / second}}, {'ibc0': {'y': 1.9477718e-06 * meter / second}},
{'ibc1': {'y': 0.00025804 * meter / second}}] {'ibc1': {'y': 0.00025804 * meter / second}}]
53000 [0.00039573 * 10.0^0 * ((meter / second) / second) ** 2, [0.00037706 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8887133e-06 * meter / second}}, {'ibc0': {'y': 1.8887133e-06 * meter / second}},
{'ibc1': {'y': 0.00023655 * meter / second}}] {'ibc1': {'y': 0.00023655 * meter / second}}]
54000 [0.00036355 * 10.0^0 * ((meter / second) / second) ** 2, [0.00035133 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.6823096e-06 * meter / second}}, {'ibc0': {'y': 1.6823096e-06 * meter / second}},
{'ibc1': {'y': 0.00021243 * meter / second}}] {'ibc1': {'y': 0.00021243 * meter / second}}]
55000 [0.00035543 * 10.0^0 * ((meter / second) / second) ** 2, [0.0003454 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.3884645e-06 * meter / second}}, {'ibc0': {'y': 1.3884645e-06 * meter / second}},
{'ibc1': {'y': 0.00019187 * meter / second}}] {'ibc1': {'y': 0.00019187 * meter / second}}]
Epoch 55000: early stopping
Best trainer at step 55000:
train loss: 5.49e-04
test loss: 5.39e-04
test metric: []
'train' took 28.337766 s
Compiling trainer...
'compile' took 0.010395 s
Training trainer...
Step Train loss Test loss Test metric
55000 [0.00035543 * 10.0^0 * ((meter / second) / second) ** 2, [0.0003454 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.3884645e-06 * meter / second}}, {'ibc0': {'y': 1.3884645e-06 * meter / second}},
{'ibc1': {'y': 0.00019187 * meter / second}}] {'ibc1': {'y': 0.00019187 * meter / second}}]
55100 [0.00038491 * 10.0^0 * ((meter / second) / second) ** 2, [0.00036448 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.1007363e-06 * meter / second}}, {'ibc0': {'y': 2.1007363e-06 * meter / second}},
{'ibc1': {'y': 0.00019324 * meter / second}}] {'ibc1': {'y': 0.00019324 * meter / second}}]
55200 [0.00037617 * 10.0^0 * ((meter / second) / second) ** 2, [0.00035767 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 2.0267723e-06 * meter / second}}, {'ibc0': {'y': 2.0267723e-06 * meter / second}},
{'ibc1': {'y': 0.00019314 * meter / second}}] {'ibc1': {'y': 0.00019314 * meter / second}}]
55300 [0.00036902 * 10.0^0 * ((meter / second) / second) ** 2, [0.00035212 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9594597e-06 * meter / second}}, {'ibc0': {'y': 1.9594597e-06 * meter / second}},
{'ibc1': {'y': 0.00019307 * meter / second}}] {'ibc1': {'y': 0.00019307 * meter / second}}]
55400 [0.00036314 * 10.0^0 * ((meter / second) / second) ** 2, [0.00034759 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.9019135e-06 * meter / second}}, {'ibc0': {'y': 1.9019135e-06 * meter / second}},
{'ibc1': {'y': 0.00019301 * meter / second}}] {'ibc1': {'y': 0.00019301 * meter / second}}]
55500 [0.00035832 * 10.0^0 * ((meter / second) / second) ** 2, [0.00034388 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8527855e-06 * meter / second}}, {'ibc0': {'y': 1.8527855e-06 * meter / second}},
{'ibc1': {'y': 0.00019295 * meter / second}}] {'ibc1': {'y': 0.00019295 * meter / second}}]
55600 [0.00035437 * 10.0^0 * ((meter / second) / second) ** 2, [0.00034088 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.8089495e-06 * meter / second}}, {'ibc0': {'y': 1.8089495e-06 * meter / second}},
{'ibc1': {'y': 0.00019291 * meter / second}}] {'ibc1': {'y': 0.00019291 * meter / second}}]
55700 [0.00035103 * 10.0^0 * ((meter / second) / second) ** 2, [0.00033836 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.7687397e-06 * meter / second}}, {'ibc0': {'y': 1.7687397e-06 * meter / second}},
{'ibc1': {'y': 0.00019289 * meter / second}}] {'ibc1': {'y': 0.00019289 * meter / second}}]
55800 [0.00034844 * 10.0^0 * ((meter / second) / second) ** 2, [0.00033642 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.7341235e-06 * meter / second}}, {'ibc0': {'y': 1.7341235e-06 * meter / second}},
{'ibc1': {'y': 0.00019286 * meter / second}}] {'ibc1': {'y': 0.00019286 * meter / second}}]
55900 [0.00034628 * 10.0^0 * ((meter / second) / second) ** 2, [0.00033482 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.7029475e-06 * meter / second}}, {'ibc0': {'y': 1.7029475e-06 * meter / second}},
{'ibc1': {'y': 0.00019285 * meter / second}}] {'ibc1': {'y': 0.00019285 * meter / second}}]
56000 [0.00034438 * 10.0^0 * ((meter / second) / second) ** 2, [0.00033343 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.6735721e-06 * meter / second}}, {'ibc0': {'y': 1.6735721e-06 * meter / second}},
{'ibc1': {'y': 0.00019284 * meter / second}}] {'ibc1': {'y': 0.00019284 * meter / second}}]
Best trainer at step 56000:
train loss: 5.39e-04
test loss: 5.28e-04
test metric: []
'train' took 5.173902 s
Mean residual: 0.012 * (meter / second) / second
Adding new point: {'t': ArrayImpl([0.5695765], dtype=float32) * second, 'x': ArrayImpl([-0.00540644], dtype=float32) * meter}
Compiling trainer...
'compile' took 0.015050 s
Training trainer...
Step Train loss Test loss Test metric
56000 [0.00045088 * 10.0^0 * ((meter / second) / second) ** 2, [0.00033343 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.6735721e-06 * meter / second}}, {'ibc0': {'y': 1.6735721e-06 * meter / second}},
{'ibc1': {'y': 0.00019284 * meter / second}}] {'ibc1': {'y': 0.00019284 * meter / second}}]
57000 [0.0003596 * 10.0^0 * ((meter / second) / second) ** 2, [0.00033415 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.4792597e-06 * meter / second}}, {'ibc0': {'y': 1.4792597e-06 * meter / second}},
{'ibc1': {'y': 0.00019963 * meter / second}}] {'ibc1': {'y': 0.00019963 * meter / second}}]
58000 [0.00034447 * 10.0^0 * ((meter / second) / second) ** 2, [0.0003254 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.3338099e-06 * meter / second}}, {'ibc0': {'y': 1.3338099e-06 * meter / second}},
{'ibc1': {'y': 0.0001965 * meter / second}}] {'ibc1': {'y': 0.0001965 * meter / second}}]
59000 [0.00033271 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031697 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.3009029e-06 * meter / second}}, {'ibc0': {'y': 1.3009029e-06 * meter / second}},
{'ibc1': {'y': 0.00019046 * meter / second}}] {'ibc1': {'y': 0.00019046 * meter / second}}]
60000 [0.00031924 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030644 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.2355371e-06 * meter / second}}, {'ibc0': {'y': 1.2355371e-06 * meter / second}},
{'ibc1': {'y': 0.00018091 * meter / second}}] {'ibc1': {'y': 0.00018091 * meter / second}}]
Epoch 60000: early stopping
Best trainer at step 60000:
train loss: 5.01e-04
test loss: 4.89e-04
test metric: []
'train' took 16.605614 s
Compiling trainer...
'compile' took 0.009775 s
Training trainer...
Step Train loss Test loss Test metric
60000 [0.00031924 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030644 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.2355371e-06 * meter / second}}, {'ibc0': {'y': 1.2355371e-06 * meter / second}},
{'ibc1': {'y': 0.00018091 * meter / second}}] {'ibc1': {'y': 0.00018091 * meter / second}}]
60100 [0.00031926 * 10.0^0 * ((meter / second) / second) ** 2, [0.0003067 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.2158225e-06 * meter / second}}, {'ibc0': {'y': 1.2158225e-06 * meter / second}},
{'ibc1': {'y': 0.00018093 * meter / second}}] {'ibc1': {'y': 0.00018093 * meter / second}}]
60200 [0.0003193 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030668 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.2317463e-06 * meter / second}}, {'ibc0': {'y': 1.2317463e-06 * meter / second}},
{'ibc1': {'y': 0.00018085 * meter / second}}] {'ibc1': {'y': 0.00018085 * meter / second}}]
60300 [0.00032016 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030574 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 8.9220623e-07 * meter / second}}, {'ibc0': {'y': 8.9220623e-07 * meter / second}},
{'ibc1': {'y': 0.0001815 * meter / second}}] {'ibc1': {'y': 0.0001815 * meter / second}}]
60400 [0.00031992 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030578 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 9.2139237e-07 * meter / second}}, {'ibc0': {'y': 9.2139237e-07 * meter / second}},
{'ibc1': {'y': 0.00018143 * meter / second}}] {'ibc1': {'y': 0.00018143 * meter / second}}]
60500 [0.00031974 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030583 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 9.5220133e-07 * meter / second}}, {'ibc0': {'y': 9.5220133e-07 * meter / second}},
{'ibc1': {'y': 0.00018136 * meter / second}}] {'ibc1': {'y': 0.00018136 * meter / second}}]
60600 [0.00031961 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030594 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 9.865097e-07 * meter / second}}, {'ibc0': {'y': 9.865097e-07 * meter / second}},
{'ibc1': {'y': 0.00018126 * meter / second}}] {'ibc1': {'y': 0.00018126 * meter / second}}]
60700 [0.00031952 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030598 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.0199747e-06 * meter / second}}, {'ibc0': {'y': 1.0199747e-06 * meter / second}},
{'ibc1': {'y': 0.00018119 * meter / second}}] {'ibc1': {'y': 0.00018119 * meter / second}}]
60800 [0.00031941 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030598 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.0453716e-06 * meter / second}}, {'ibc0': {'y': 1.0453716e-06 * meter / second}},
{'ibc1': {'y': 0.00018118 * meter / second}}] {'ibc1': {'y': 0.00018118 * meter / second}}]
60900 [0.00031924 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030594 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.0795525e-06 * meter / second}}, {'ibc0': {'y': 1.0795525e-06 * meter / second}},
{'ibc1': {'y': 0.0001812 * meter / second}}] {'ibc1': {'y': 0.0001812 * meter / second}}]
61000 [0.00040084 * 10.0^0 * ((meter / second) / second) ** 2, [0.00037745 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.2552299e-05 * meter / second}}, {'ibc0': {'y': 1.2552299e-05 * meter / second}},
{'ibc1': {'y': 0.00017717 * meter / second}}] {'ibc1': {'y': 0.00017717 * meter / second}}]
Best trainer at step 60200:
train loss: 5.01e-04
test loss: 4.89e-04
test metric: []
'train' took 4.717136 s
Mean residual: 0.012 * (meter / second) / second
Adding new point: {'t': ArrayImpl([0.38778442], dtype=float32) * second, 'x': ArrayImpl([-0.0043211], dtype=float32) * meter}
Compiling trainer...
'compile' took 0.015250 s
Training trainer...
Step Train loss Test loss Test metric
61000 [0.00046435 * 10.0^0 * ((meter / second) / second) ** 2, [0.00037745 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.2552299e-05 * meter / second}}, {'ibc0': {'y': 1.2552299e-05 * meter / second}},
{'ibc1': {'y': 0.00017717 * meter / second}}] {'ibc1': {'y': 0.00017717 * meter / second}}]
62000 [0.00034305 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031215 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.2617899e-06 * meter / second}}, {'ibc0': {'y': 1.2617899e-06 * meter / second}},
{'ibc1': {'y': 0.00018198 * meter / second}}] {'ibc1': {'y': 0.00018198 * meter / second}}]
63000 [0.0003293 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030744 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1898037e-06 * meter / second}}, {'ibc0': {'y': 1.1898037e-06 * meter / second}},
{'ibc1': {'y': 0.00017979 * meter / second}}] {'ibc1': {'y': 0.00017979 * meter / second}}]
64000 [0.00032155 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030236 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1578732e-06 * meter / second}}, {'ibc0': {'y': 1.1578732e-06 * meter / second}},
{'ibc1': {'y': 0.00017604 * meter / second}}] {'ibc1': {'y': 0.00017604 * meter / second}}]
Epoch 64000: early stopping
Best trainer at step 64000:
train loss: 4.99e-04
test loss: 4.80e-04
test metric: []
'train' took 11.294281 s
Compiling trainer...
'compile' took 0.010299 s
Training trainer...
Step Train loss Test loss Test metric
64000 [0.00032155 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030236 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1578732e-06 * meter / second}}, {'ibc0': {'y': 1.1578732e-06 * meter / second}},
{'ibc1': {'y': 0.00017604 * meter / second}}] {'ibc1': {'y': 0.00017604 * meter / second}}]
64100 [0.00032129 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030189 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.2672714e-06 * meter / second}}, {'ibc0': {'y': 1.2672714e-06 * meter / second}},
{'ibc1': {'y': 0.00017607 * meter / second}}] {'ibc1': {'y': 0.00017607 * meter / second}}]
64200 [0.00032125 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030183 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.230208e-06 * meter / second}}, {'ibc0': {'y': 1.230208e-06 * meter / second}},
{'ibc1': {'y': 0.00017615 * meter / second}}] {'ibc1': {'y': 0.00017615 * meter / second}}]
64300 [0.00032105 * 10.0^0 * ((meter / second) / second) ** 2, [0.0003016 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1040507e-06 * meter / second}}, {'ibc0': {'y': 1.1040507e-06 * meter / second}},
{'ibc1': {'y': 0.0001765 * meter / second}}] {'ibc1': {'y': 0.0001765 * meter / second}}]
64400 [0.00032116 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030174 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1353521e-06 * meter / second}}, {'ibc0': {'y': 1.1353521e-06 * meter / second}},
{'ibc1': {'y': 0.00017633 * meter / second}}] {'ibc1': {'y': 0.00017633 * meter / second}}]
64500 [0.00032118 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030177 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1384761e-06 * meter / second}}, {'ibc0': {'y': 1.1384761e-06 * meter / second}},
{'ibc1': {'y': 0.0001763 * meter / second}}] {'ibc1': {'y': 0.0001763 * meter / second}}]
64600 [0.00032113 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030171 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1360961e-06 * meter / second}}, {'ibc0': {'y': 1.1360961e-06 * meter / second}},
{'ibc1': {'y': 0.00017638 * meter / second}}] {'ibc1': {'y': 0.00017638 * meter / second}}]
64700 [0.00032106 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030168 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1283665e-06 * meter / second}}, {'ibc0': {'y': 1.1283665e-06 * meter / second}},
{'ibc1': {'y': 0.00017646 * meter / second}}] {'ibc1': {'y': 0.00017646 * meter / second}}]
64800 [0.00032214 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030261 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1278934e-06 * meter / second}}, {'ibc0': {'y': 1.1278934e-06 * meter / second}},
{'ibc1': {'y': 0.00017566 * meter / second}}] {'ibc1': {'y': 0.00017566 * meter / second}}]
64900 [0.00032201 * 10.0^0 * ((meter / second) / second) ** 2, [0.0003025 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1321267e-06 * meter / second}}, {'ibc0': {'y': 1.1321267e-06 * meter / second}},
{'ibc1': {'y': 0.0001757 * meter / second}}] {'ibc1': {'y': 0.0001757 * meter / second}}]
65000 [0.00032184 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030237 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1423148e-06 * meter / second}}, {'ibc0': {'y': 1.1423148e-06 * meter / second}},
{'ibc1': {'y': 0.00017577 * meter / second}}] {'ibc1': {'y': 0.00017577 * meter / second}}]
Best trainer at step 64500:
train loss: 4.99e-04
test loss: 4.79e-04
test metric: []
'train' took 4.623570 s
Mean residual: 0.012 * (meter / second) / second
Adding new point: {'t': ArrayImpl([0.40250915], dtype=float32) * second, 'x': ArrayImpl([-0.010427], dtype=float32) * meter}
Compiling trainer...
'compile' took 0.014968 s
Training trainer...
Step Train loss Test loss Test metric
65000 [0.00039208 * 10.0^0 * ((meter / second) / second) ** 2, [0.00030237 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1423148e-06 * meter / second}}, {'ibc0': {'y': 1.1423148e-06 * meter / second}},
{'ibc1': {'y': 0.00017577 * meter / second}}] {'ibc1': {'y': 0.00017577 * meter / second}}]
66000 [0.00035875 * 10.0^0 * ((meter / second) / second) ** 2, [0.00032071 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.144454e-06 * meter / second}}, {'ibc0': {'y': 1.144454e-06 * meter / second}},
{'ibc1': {'y': 0.00018135 * meter / second}}] {'ibc1': {'y': 0.00018135 * meter / second}}]
67000 [0.00034588 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031595 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.0716824e-06 * meter / second}}, {'ibc0': {'y': 1.0716824e-06 * meter / second}},
{'ibc1': {'y': 0.00017891 * meter / second}}] {'ibc1': {'y': 0.00017891 * meter / second}}]
Epoch 67001: early stopping
Best trainer at step 67000:
train loss: 5.26e-04
test loss: 4.96e-04
test metric: []
'train' took 7.938136 s
Compiling trainer...
'compile' took 0.014745 s
Training trainer...
Step Train loss Test loss Test metric
67001 [0.00034587 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031594 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.0716063e-06 * meter / second}}, {'ibc0': {'y': 1.0716063e-06 * meter / second}},
{'ibc1': {'y': 0.00017891 * meter / second}}] {'ibc1': {'y': 0.00017891 * meter / second}}]
67100 [0.00034577 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031621 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.0872557e-06 * meter / second}}, {'ibc0': {'y': 1.0872557e-06 * meter / second}},
{'ibc1': {'y': 0.000179 * meter / second}}] {'ibc1': {'y': 0.000179 * meter / second}}]
67200 [0.00034568 * 10.0^0 * ((meter / second) / second) ** 2, [0.000316 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.0810584e-06 * meter / second}}, {'ibc0': {'y': 1.0810584e-06 * meter / second}},
{'ibc1': {'y': 0.00017908 * meter / second}}] {'ibc1': {'y': 0.00017908 * meter / second}}]
67300 [0.00034568 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031598 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.0880661e-06 * meter / second}}, {'ibc0': {'y': 1.0880661e-06 * meter / second}},
{'ibc1': {'y': 0.00017907 * meter / second}}] {'ibc1': {'y': 0.00017907 * meter / second}}]
67400 [0.00034624 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031566 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1337318e-06 * meter / second}}, {'ibc0': {'y': 1.1337318e-06 * meter / second}},
{'ibc1': {'y': 0.00017865 * meter / second}}] {'ibc1': {'y': 0.00017865 * meter / second}}]
67500 [0.00034618 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031566 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1352137e-06 * meter / second}}, {'ibc0': {'y': 1.1352137e-06 * meter / second}},
{'ibc1': {'y': 0.00017867 * meter / second}}] {'ibc1': {'y': 0.00017867 * meter / second}}]
67600 [0.00034612 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031567 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1311693e-06 * meter / second}}, {'ibc0': {'y': 1.1311693e-06 * meter / second}},
{'ibc1': {'y': 0.0001787 * meter / second}}] {'ibc1': {'y': 0.0001787 * meter / second}}]
67700 [0.00034608 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031568 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1283073e-06 * meter / second}}, {'ibc0': {'y': 1.1283073e-06 * meter / second}},
{'ibc1': {'y': 0.00017872 * meter / second}}] {'ibc1': {'y': 0.00017872 * meter / second}}]
67800 [0.00034614 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031567 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1323336e-06 * meter / second}}, {'ibc0': {'y': 1.1323336e-06 * meter / second}},
{'ibc1': {'y': 0.00017869 * meter / second}}] {'ibc1': {'y': 0.00017869 * meter / second}}]
67900 [0.00034607 * 10.0^0 * ((meter / second) / second) ** 2, [0.00031569 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1263944e-06 * meter / second}}, {'ibc0': {'y': 1.1263944e-06 * meter / second}},
{'ibc1': {'y': 0.00017873 * meter / second}}] {'ibc1': {'y': 0.00017873 * meter / second}}]
68000 [0.00034603 * 10.0^0 * ((meter / second) / second) ** 2, [0.0003157 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1240935e-06 * meter / second}}, {'ibc0': {'y': 1.1240935e-06 * meter / second}},
{'ibc1': {'y': 0.00017874 * meter / second}}] {'ibc1': {'y': 0.00017874 * meter / second}}]
68001 [0.00034604 * 10.0^0 * ((meter / second) / second) ** 2, [0.0003157 * 10.0^0 * ((meter / second) / second) ** 2, []
{'ibc0': {'y': 1.1240547e-06 * meter / second}}, {'ibc0': {'y': 1.1240547e-06 * meter / second}},
{'ibc1': {'y': 0.00017874 * meter / second}}] {'ibc1': {'y': 0.00017874 * meter / second}}]
Best trainer at step 67300:
train loss: 5.26e-04
test loss: 4.96e-04
test metric: []
'train' took 4.620428 s
Let’s visualize and save the data.
trainer.saveplot(issave=True, isplot=True)
Saving loss history to /Users/sichaohe/Documents/GitHub/pinnx/docs/examples-pinn-forward/loss.dat ...
Saving checkpoint into /Users/sichaohe/Documents/GitHub/pinnx/docs/examples-pinn-forward/loss.dat
Saving training data to /Users/sichaohe/Documents/GitHub/pinnx/docs/examples-pinn-forward/train.dat ...
Saving checkpoint into /Users/sichaohe/Documents/GitHub/pinnx/docs/examples-pinn-forward/train.dat
Saving test data to /Users/sichaohe/Documents/GitHub/pinnx/docs/examples-pinn-forward/test.dat ...
Saving checkpoint into /Users/sichaohe/Documents/GitHub/pinnx/docs/examples-pinn-forward/test.dat
We can also test the model with the data:
def gen_testdata():
data = np.load("../dataset/Burgers.npz")
t, x, exact = data["t"], data["x"], data["usol"].T
xx, tt = np.meshgrid(x, t)
X = {'x': np.ravel(xx) * u.meter, 't': np.ravel(tt) * u.second}
y = exact.flatten()[:, None]
return X, y * uy
X, y_true = gen_testdata()
y_pred = trainer.predict(X)
f = pde(X, y_pred)
print("Mean residual:", u.math.mean(u.math.absolute(f)))
print("L2 relative error:", pinnx.metrics.l2_relative_error(y_true, y_pred['y']))
Mean residual: 0.01163746 * (meter / second) / second
L2 relative error: 225.97165