In this section, we will break down the
Simple Example¶
# obtain values
a: Array = ...
u: Array = ...
# initialize params of transformation
params: Params = Params(w=..., b=...)
# initialize transformation
transform: Callable = lambda a, params: a * params.w + params.b
# apply transformation
u_hat: Array = transform(a, params)
# test to ensure it is equal
np.testing.assert_array_equal(u, u_hat)
Problems:
- What if the domains are different?
- What about spatiotemporal data?
Motivating Examples
- Forecasting Problem
- Interpolation Problem
- Multimodal Domain Transformation
Domain¶
# Domain 1
field_a: Field = Field(values_a, domain_a)
field_u: Field = Field(values_u, domain_u)
# initialize interpolator
a_to_u_f: Callable = FieldInterpolator(field_u.values, field_u.coords)
# apply interpolator
field_a_on_u: Field = a_to_u_f(field_a.values, field_a.coords)
Functional¶
Latent Space¶
Variable I —> Variable II
a = Transformer(u)
z_u = Encoder(u)
z_a = LatentTransformer(z_u)
a’ = DecoderD2(z_a)
Examples:
- Lift & Learn
- Koopman Theory
- Neural Operators