Skip to content
This repository was archived by the owner on Sep 28, 2024. It is now read-only.

Commit 9dfc134

Browse files
committed
update docs
1 parent a0c5c07 commit 9dfc134

File tree

4 files changed

+40
-35
lines changed

4 files changed

+40
-35
lines changed

docs/make.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ makedocs(;
1515
),
1616
pages=[
1717
"Home" => "index.md",
18+
"Introduction" => "introduction.md",
1819
"APIs" => "apis.md"
1920
],
2021
)

docs/src/apis.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
## Index
2-
3-
```@index
4-
```
1+
# APIs
52

63
## Layers
74

@@ -40,6 +37,8 @@ OperatorKernel
4037

4138
Reference: [Fourier Neural Operator for Parametric Partial Differential Equations](https://arxiv.org/abs/2010.08895)
4239

40+
---
41+
4342
### Graph kernel layer
4443

4544
```math
@@ -55,6 +54,8 @@ GraphKernel
5554

5655
Reference: [Neural Operator: Graph Kernel Network for Partial Differential Equations](https://arxiv.org/abs/2003.03485)
5756

57+
---
58+
5859
## Models
5960

6061
### Fourier neural operator

docs/src/index.md

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,13 @@ CurrentModule = NeuralOperators
44

55
# NeuralOperators
66

7-
Documentation for [NeuralOperators](https://github.com/foldfelis/NeuralOperators.jl).
8-
9-
| **Ground Truth** | **Inferenced** |
10-
|:----------------:|:--------------:|
117
| ![](https://github.com/foldfelis/NeuralOperators.jl/blob/master/example/FlowOverCircle/gallery/ans.gif?raw=true) | ![](https://github.com/foldfelis/NeuralOperators.jl/blob/master/example/FlowOverCircle/gallery/inferenced.gif?raw=true) |
8+
|:----------------:|:--------------:|
9+
| **Ground Truth** | **Inferenced** |
1210

1311
The demonstration shown above is Navier-Stokes equation learned by the `MarkovNeuralOperator` with only one time step information.
1412
Example can be found in [`example/FlowOverCircle`](https://github.com/foldfelis/NeuralOperators.jl/tree/master/example/FlowOverCircle).
1513

16-
## Abstract
17-
18-
Neural operator is a novel deep learning architecture.
19-
It learns a operator, which is a mapping between infinite-dimensional function spaces.
20-
It can be used to resolve [partial differential equations (PDE)](https://en.wikipedia.org/wiki/Partial_differential_equation).
21-
Instead of solving by finite element method, a PDE problem can be resolved by training a neural network to learn an operator mapping
22-
from infinite-dimensional space (u, t) to infinite-dimensional space f(u, t).
23-
Neural operator learns a continuous function between two continuous function spaces.
24-
The kernel can be trained on different geometry, which is learned from a graph.
25-
26-
**Fourier neural operator** learns a neural operator with Dirichlet kernel to form a Fourier transformation.
27-
It performs Fourier transformation across infinite-dimensional function spaces and learns better than neural operator.
28-
29-
**Markov neural operator** learns a neural operator with Fourier operators.
30-
With only one time step information of learning, it can predict the following few steps with low loss
31-
by linking the operators into a Markov chain.
32-
33-
**DeepONet operator** (Deep Operator Network) learns a neural operator with the help of two sub-neural net structures described as the branch and the trunk network.
34-
The branch network is fed the initial conditions data, whereas the trunk is fed with the locations where the target(output) is evaluated from the corresponding initial conditions.
35-
It is important that the output size of the branch and trunk subnets is same so that a dot product can be performed between them.
36-
37-
Currently, the `OperatorKernel` layer is provided in this work.
38-
As for model, there are `FourierNeuralOperator` and `MarkovNeuralOperator` provided.
39-
Please take a glance at them [here](apis.html#Models).
40-
4114
## Quick start
4215

4316
The package can be installed with the Julia package manager. From the Julia REPL, type `]` to enter the Pkg REPL mode and run:
@@ -80,7 +53,7 @@ model = FourierNeuralOperator(
8053
And then train as a Flux model.
8154

8255
```julia
83-
loss(𝐱, 𝐲) = sum(abs2, 𝐲 .- model(𝐱)) / size(𝐱)[end]
56+
loss(𝐱, 𝐲) = Flux.Losses.mse(model(𝐱), 𝐲)
8457
opt = Flux.Optimiser(WeightDecay(1f-4), Flux.ADAM(1f-3))
8558
Flux.@epochs 50 Flux.train!(loss, params(model), data, opt)
8659
```
@@ -112,4 +85,4 @@ opt = ADAM(learning_rate)
11285
parameters = params(model)
11386
Flux.@epochs 400 Flux.train!(loss, parameters, [(xtrain, ytrain, grid)], opt, cb=evalcb)
11487
```
115-
A more complete example using DeepONet architecture to solve Burgers' equation can be found in the [examples](../../example/Burgers/src/Burgers_deeponet.jl)
88+
A more complete example using DeepONet architecture to solve Burgers' equation can be found in the [examples](https://github.com/foldfelis/NeuralOperators.jl/tree/master/example/Burgers/src/Burgers_deeponet.jl).

docs/src/introduction.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Introduction
2+
3+
Neural operator is a novel deep learning architecture.
4+
It learns a operator, which is a mapping between infinite-dimensional function spaces.
5+
It can be used to resolve [partial differential equations (PDE)](https://en.wikipedia.org/wiki/Partial_differential_equation).
6+
Instead of solving by time-consuming finite element method, a PDE problem can be resolved by training a neural network to learn
7+
an operator mapping from infinite-dimensional space ``(u, t)`` to infinite-dimensional space ``f(u, t)``.
8+
Neural operator learns a continuous function between two continuous function spaces.
9+
The kernel can be trained on different geometry, including regular Euclidean space or a graph topology.
10+
11+
## Fourier Neural Operators
12+
13+
Fourier neural operator (FNO) learns a neural operator with Dirichlet kernel to form a Fourier transformation.
14+
It performs Fourier transformation across infinite-dimensional function spaces and learns better than neural operator.
15+
16+
## Markov Neural Operators
17+
18+
Markov neural operator (MNO) learns a neural operator with Fourier operators.
19+
With only one time step information of learning, it can predict the following few steps with low loss
20+
by linking the operators into a Markov chain.
21+
22+
## Deep Operator Network
23+
24+
Deep operator network (DeepONet) learns a neural operator with the help of two sub-neural network structures described as the branch and the trunk network.
25+
The branch network is fed the initial conditions data, whereas the trunk is fed with the locations where the target(output) is evaluated from the corresponding initial conditions.
26+
It is important that the output size of the branch and trunk subnets is same so that a dot product can be performed between them.
27+
28+
Currently, the `OperatorKernel` layer is provided in this work.
29+
As for model, there are `FourierNeuralOperator` and `MarkovNeuralOperator` provided.
30+
Please take a glance at [them](apis.html#Models).

0 commit comments

Comments
 (0)