You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 28, 2024. It is now read-only.
Neural operator is a novel deep learning architecture. It learns a operator, which is a mapping
16
-
between infinite-dimensional function spaces. It can be used to resolve [partial differential equations (PDE)](https://en.wikipedia.org/wiki/Partial_differential_equation).
17
-
Instead of solving by finite element method, a PDE problem can be resolved by learning a neural network to learn an operator
18
-
mapping from infinite-dimensional space (u, t) to infinite-dimensional space f(u, t). Neural operator learns a continuous function
19
-
between two continuous function spaces. The kernel can be trained on different geometry, which is learned from a graph.
15
+
Neural operator is a novel deep learning architecture.
16
+
It learns a operator, which is a mapping between infinite-dimensional function spaces.
17
+
It can be used to resolve [partial differential equations (PDE)](https://en.wikipedia.org/wiki/Partial_differential_equation).
18
+
Instead of solving by finite element method, a PDE problem can be resolved by training a neural network to learn an operator mapping
19
+
from infinite-dimensional space (u, t) to infinite-dimensional space f(u, t).
20
+
Neural operator learns a continuous function between two continuous function spaces.
21
+
The kernel can be trained on different geometry, which is learned from a graph.
20
22
21
-
Fourier neural operator learns a neural operator with Dirichlet kernel to form a Fourier transformation. It performs Fourier transformation across infinite-dimensional function spaces and learns better than neural operator.
23
+
**Fourier neural operator** learns a neural operator with Dirichlet kernel to form a Fourier transformation.
24
+
It performs Fourier transformation across infinite-dimensional function spaces and learns better than neural operator.
25
+
26
+
**Markov neural operator** learns a neural operator with Fourier operators.
27
+
With only one time step information of learning, it can predict the following few steps with low loss
28
+
by linking the operators into a Markov chain.
22
29
23
30
Currently, the `FourierOperator` layer is provided in this work.
24
31
As for model, there are `FourierNeuralOperator` and `MarkovNeuralOperator` provided. Please take a glance at them [here](src/model.jl).
@@ -41,7 +48,7 @@ model = Chain(
41
48
)
42
49
```
43
50
44
-
Or you can just call:
51
+
Or one can just call:
45
52
46
53
```julia
47
54
model =FourierNeuralOperator(
@@ -106,3 +113,4 @@ julia> using FlowOverCircle; FlowOverCircle.train()
The demonstration showing above is Navier-Stokes equation learned by the `MarkovNeuralOperator` with only one time step information.
14
+
Example can be found in [`example/FlowOverCircle`](https://github.com/foldfelis/NeuralOperators.jl/tree/master/example/FlowOverCircle).
15
+
The result is also provided [here](assets/notebook/mno.jl.html)
13
16
14
-
### Spectral convolutional layer
17
+
##Abstract
15
18
16
-
```math
17
-
F(s) = \mathcal{F} \{ v(x) \} \\
18
-
F'(s) = g(F(s)) \\
19
-
v'(x) = \mathcal{F}^{-1} \{ F'(s) \}
20
-
```
19
+
Neural operator is a novel deep learning architecture.
20
+
It learns a operator, which is a mapping between infinite-dimensional function spaces.
21
+
It can be used to resolve [partial differential equations (PDE)](https://en.wikipedia.org/wiki/Partial_differential_equation).
22
+
Instead of solving by finite element method, a PDE problem can be resolved by training a neural network to learn an operator mapping
23
+
from infinite-dimensional space (u, t) to infinite-dimensional space f(u, t).
24
+
Neural operator learns a continuous function between two continuous function spaces.
25
+
The kernel can be trained on different geometry, which is learned from a graph.
21
26
22
-
where ``v(x)`` and ``v'(x)`` denotes input and output function, ``\mathcal{F} \{ \cdot \}``, ``\mathcal{F}^{-1} \{ \cdot \}`` are Fourier transform, inverse Fourier transform, respectively. Function ``g`` is a linear transform for lowering Fouier modes.
27
+
**Fourier neural operator** learns a neural operator with Dirichlet kernel to form a Fourier transformation.
28
+
It performs Fourier transformation across infinite-dimensional function spaces and learns better than neural operator.
23
29
24
-
```@docs
25
-
SpectralConv
26
-
```
30
+
**Markov neural operator** learns a neural operator with Fourier operators.
31
+
With only one time step information of learning, it can predict the following few steps with low loss
32
+
by linking the operators into a Markov chain.
33
+
34
+
Currently, the `FourierOperator` layer is provided in this work.
35
+
As for model, there are `FourierNeuralOperator` and `MarkovNeuralOperator` provided.
36
+
Please take a glance at them [here](apis.html#Models).
27
37
28
-
Reference: [Fourier Neural Operator for Parametric Partial Differential Equations](https://arxiv.org/abs/2010.08895)
38
+
## Quick start
29
39
30
-
---
40
+
The package can be installed with the Julia package manager. From the Julia REPL, type `]` to enter the Pkg REPL mode and run:
# project finite-dimensional data to infinite-dimensional space
51
+
Dense(2, 64),
52
+
# operator projects data between infinite-dimensional spaces
53
+
FourierOperator(64=>64, (16, ), gelu),
54
+
FourierOperator(64=>64, (16, ), gelu),
55
+
FourierOperator(64=>64, (16, ), gelu),
56
+
FourierOperator(64=>64, (16, )),
57
+
# project infinite-dimensional function to finite-dimensional space
58
+
Dense(64, 128, gelu),
59
+
Dense(128, 1),
60
+
flatten
61
+
)
36
62
```
37
63
38
-
where ``v_t(x)`` is the input function for ``t``-th layer and ``\mathcal{K} \{ \cdot \}`` denotes spectral convolutional layer. Activation function ``\sigma``can be arbitrary non-linear function.
64
+
Or one can just call:
39
65
40
-
```@docs
41
-
FourierOperator
66
+
```julia
67
+
model =FourierNeuralOperator(
68
+
ch=(2, 64, 64, 64, 64, 64, 128, 1),
69
+
modes=(16, ),
70
+
σ=gelu
71
+
)
42
72
```
43
73
44
-
Reference: [Fourier Neural Operator for Parametric Partial Differential Equations](https://arxiv.org/abs/2010.08895)
0 commit comments