diff --git a/docs/operators/index.md b/docs/operators/index.md index 40e96e82..70180628 100644 --- a/docs/operators/index.md +++ b/docs/operators/index.md @@ -7,16 +7,23 @@ alias: # Introduction +Function operators are ubiquitous in mathematics and physics: They are used to +describe dynamics of physical systems, such as the Navier-Stokes equations in +fluid dynamics. As solutions of these systems are functions, it is natural to +transfer the concept of function mapping into machine learning. + ## Operators In mathematics, _operators_ are function mappings – they map functions to functions. -Let $u: \mathbb{R}^d \to \mathbb{R}^c$ be a function that maps a -$d$-dimensional input to $c$ *channels*. Then, an **operator** +Let $u: X \subset \mathbb{R}^d \to \mathbb{R}^c$ be a function that maps a +$d$-dimensional input to $c$ output *channels*. + +An **operator** $$ G: u \to v $$ -maps $u$ to a function $v: \mathbb{R}^{d'} \to \mathbb{R}^{c'}$. +maps $u$ to a function $v: Y \subset \mathbb{R}^{p} \to \mathbb{R}^{q}$. !!! example annotate The operator $G: u \to \partial_x u$ maps functions $u$ to their @@ -27,44 +34,55 @@ maps $u$ to a function $v: \mathbb{R}^{d'} \to \mathbb{R}^{c'}$. Learning operators is the task of learning the mapping $G$ from data. In the context of neural networks, we want to learn a neural network $G_\theta$ with parameters $\theta$ that, given a set of input-output pairs $(u_k, v_k)$, -maps $u_k$ to $v_k$. - -As neural networks take vectors as input, we need to vectorize the input -function $u$ somehow. There are two possibilities: - -1. We represent the function $u$ within a finite-dimensional function space - (e.g. the space of polynomials) and map the coefficients, or -2. We map evaluations of the function at a finite set of evaluation points. - -In **Continuity**, we use the second, more geneal approach of mapping function -evaluations, and use this also for the representation of the output function $v$. - -In the input domain, we evaluate the function $u$ at a set of points $x_i$ and -collect a set of *sensors* $(x_i, u(x_i))$ in an *observation* +maps $u_k$ to $v_k$. We refer to such a neural network as **neural operator**. + +In **Continuity**, we use the general approach of mapping function +evaluations to represent both input and output functions $u$ and $v$. + +!!! note annotate + As neural networks take vectors as input, we need to vectorize the + functions $u$ and $v$ in some sense. We could represent the functions within + finite-dimensional function spaces (e.g., the space of $n$-th order + polynomials) and map the coefficients. However, a more general approach is + to map evaluations of the functions at a finite set of evaluation points. + This was proposed in the original DeepONet paper and is also used in other + neural operator architectures. + +Let $x_i \in X,\ 1 \leq i \leq n,$ be a finite set of *collocation points* +(or *sensor positions*) in the domain $X$ of $u$. +We represent the function $u$ by its evaluations at these collocation +points and write $\mathbf{x} = (x_i)_i$ and $\mathbf{u} = (u(x_i))_i$. +This finite dimensional representation is fed into the neural operator. + +The mapped function $v = G(u)$, on the other hand, is also represented by +function evaluations only. Let $y_j \in Y,\ 1 \leq j \leq m,$ be a set of +*evaluation points* (or *query points*) in the domain $Y$ of $v$ and +$\mathbf{y} = (y_j)_j$. +Then, the output values $\mathbf{v} = (v(y_j))_j$ are approximated by the neural +operator $$ -\mathcal{O} = \\{ (x_i, u(x_i)) \mid i = 1, \dots N \\}. +v(\mathbf{y}) = G(u)(\mathbf{y}) +\approx G_\theta(\mathbf{x}, \mathbf{u}, \mathbf{y}) = \mathbf{v}. $$ -The mapped function can then be evaluated at query points $\mathbf{y}$ to obtain the output -$$ -v(\mathbf{y}) = G(u)(\mathbf{y}) \approx G_\theta(\mathbf{x}, \mathbf{u}; \mathbf{y}) = \mathbf{v} -$$ -where $\mathbf{x} = (x_i)_i$ and $\mathbf{y} = (y_j)_j$ are the evaluation points -of the input and output domain, respectively, and $\mathbf{u} = (u_i)_i$ is the -vector of function evaluations at $\mathbf{x}$. -The output $\mathbf{v} = (v_j)_j$ is the vector of function evaluations at $\mathbf{y}$. - - -In Python, this call can be written like +In Python, we write the operator call as ``` v = operator(x, u, y) ``` +with tensors `x`, `u`, `y`, `v` of shape `[b, n, d]`, `[b, n, c]`, `[b, m, p]`, +and `[b, m, q]`, respectively, and a batch size `b`. +This is to provide the most general case for implementing operators, as +some neural operators differ in the way they handle input and output values. + +For convenience, the call can be wrapped to mimic the mathematical syntax. +For instance, for a fixed set of collocation points `x`, we could define +``` +G = lambda y: lambda u: operator(x, u, y) +v = G(u)(y) +``` -## Applications to PDEs +Operators extend the concept of neural networks to function mappings, which +enables discretization-invariant and mesh-free mappings of data with +applications to physics-informed training, super-resolution, and more. -Operators are ubiquitous in mathematics and physics. They are used to describe -the dynamics of physical systems, such as the Navier-Stokes equations in fluid -dynamics. As solutions of PDEs are functions, it is natural to use the concept -of neural operators to learn solution operators of PDEs. One possibility to do -this is using an inductive bias, or _physics-informed_ training. -See our examples in [[operators]] for more details. +See our examples in [[operators]] for more details and further reading. diff --git a/mkdocs.yml b/mkdocs.yml index 8b85bbc2..8e4d3037 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -93,7 +93,6 @@ theme: - content.code.annotate - content.code.copy - navigation.footer - - navigation.instant - navigation.path - navigation.top - navigation.tracking diff --git a/notebooks/selfsupervised.ipynb b/notebooks/selfsupervised.ipynb index c765cb44..42738fd1 100644 --- a/notebooks/selfsupervised.ipynb +++ b/notebooks/selfsupervised.ipynb @@ -28,9 +28,10 @@ "import torch\n", "import matplotlib.pyplot as plt\n", "from continuity.data.datasets import Sine\n", + "from continuity.data import SelfSupervisedDataSet\n", "from continuity.operators import ContinuousConvolution\n", "from continuity.operators.common import NeuralNetworkKernel\n", - "from continuity.plotting import plot_evaluation, plot_observation" + "from continuity.plotting import plot_evaluation, plot" ] }, { @@ -43,7 +44,7 @@ }, "outputs": [], "source": [ - "torch.manual_seed(0)\n", + "torch.manual_seed(1)\n", "plt.rcParams[\"axes.facecolor\"] = (1, 1, 1, 0)\n", "plt.rcParams[\"figure.facecolor\"] = (1, 1, 1, 0)\n", "plt.rcParams[\"legend.framealpha\"] = 0.0\n" @@ -86,7 +87,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -99,10 +100,16 @@ ], "source": [ "size = 4\n", - "dataset = Sine(\n", + "sine = Sine(\n", " num_sensors=32,\n", " size=size,\n", + ")\n", + "# Create self-supervised dataset\n", + "dataset = SelfSupervisedDataSet(\n", + " sine.x,\n", + " sine.u,\n", " batch_size=4,\n", + " shuffle=True,\n", ")\n", "print(f\"Dataset contains {len(dataset)} batches.\")\n", "\n", @@ -154,7 +161,7 @@ "output_type": "stream", "text": [ "Model parameters: 165505\n", - "Epoch 100: loss = 3.9808e-03 (232.73 it/s)\n" + "Epoch 100: loss = 3.6071e-03 (230.95 it/s)\n" ] } ], @@ -184,7 +191,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -197,10 +204,10 @@ ], "source": [ "fig, axs = plt.subplots(1, 4, figsize=(16, 3))\n", + "x, u, y, v = dataset[0] # First batch\n", "for i in range(size):\n", - " obs = dataset.get_observation(i)\n", - " plot_evaluation(model, obs, ax=axs[i])\n", - " plot_observation(obs, ax=axs[i])\n", + " plot_evaluation(model, x[i], u[i], ax=axs[i])\n", + " plot(x[i], u[i], ax=axs[i])\n", " axs[i].set_title(f\"$k = {i}$\")" ] }, @@ -224,17 +231,7 @@ "outputs": [ { "data": { - "text/plain": [ - "Text(0.5, 1.0, '$k = 1.5$')" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -248,10 +245,12 @@ "source": [ "fig, ax = plt.subplots(1, 1, figsize=(4, 3))\n", "i_test = (size-1) / 2\n", - "obs = dataset.generate_observation(i_test)\n", - "plot_evaluation(model, obs, ax=ax)\n", - "plot_observation(obs, ax=ax)\n", - "ax.set_title(f\"$k = {i_test}$\")" + "\n", + "x, u = sine.generate_observation(i_test)\n", + "plot_evaluation(model, x, u, ax=ax)\n", + "plot(x, u, ax=ax)\n", + "ax.set_title(f\"$k = {i_test}$\")\n", + "plt.show()" ] } ], diff --git a/src/continuity/data/__init__.py b/src/continuity/data/__init__.py index 120c9d39..c87cc2f8 100644 --- a/src/continuity/data/__init__.py +++ b/src/continuity/data/__init__.py @@ -1,14 +1,12 @@ """ -In Continuity, data is given by *observations*. Every observation is a set of -function evaluations, so-called *sensors*. Every data set is a set of -observations, evaluation coordinates and labels. +This defines DataSets in Continuity. +Every data set is a list of (x, u, y, v) tuples. """ import math import torch from torch import Tensor -from numpy import ndarray -from typing import List, Tuple +from typing import Tuple def get_device() -> torch.device: @@ -36,79 +34,6 @@ def tensor(x): return torch.tensor(x, device=device, dtype=torch.float32) -class Sensor: - """ - A sensor is a function evaluation. - - Args: - x: spatial coordinate of shape (coordinate_dim) - u: function value of shape (num_channels) - """ - - def __init__(self, x: ndarray, u: ndarray): - self.x = x - self.u = u - - self.coordinate_dim = x.shape[0] - self.num_channels = u.shape[0] - - def __str__(self) -> str: - return f"Sensor(x={self.x}, u={self.u})" - - -class Observation: - """ - An observation is a set of sensors. - - Args: - sensors: List of sensors. Used to derive 'num_sensors', 'coordinate_dim' and 'num_channels'. - """ - - def __init__(self, sensors: List[Sensor]): - self.sensors = sensors - - self.num_sensors = len(sensors) - assert self.num_sensors > 0 - - self.coordinate_dim = self.sensors[0].coordinate_dim - self.num_channels = self.sensors[0].num_channels - - # Check consistency across sensors - for sensor in self.sensors: - assert ( - sensor.coordinate_dim == self.coordinate_dim - ), "Inconsistent coordinate dimension." - assert ( - sensor.num_channels == self.num_channels - ), "Inconsistent number of channels." - - def __str__(self) -> str: - s = "Observation(sensors=\n" - for sensor in self.sensors: - s += f" {sensor}, \n" - s += ")" - return s - - def to_tensors(self) -> Tuple[torch.Tensor, torch.Tensor]: - """Convert observation to tensors. - - Returns: - Two tensors: The first tensor contains sensor positions of shape (num_sensors, coordinate_dim), the second tensor contains the sensor values of shape (num_sensors, num_channels). - """ - x = torch.zeros((self.num_sensors, self.coordinate_dim)) - u = torch.zeros((self.num_sensors, self.num_channels)) - - for i, sensor in enumerate(self.sensors): - x[i] = tensor(sensor.x) - u[i] = tensor(sensor.u) - - # Move to device - x.to(device) - u.to(device) - - return x, u - - class DataSet: """Data set base class. @@ -192,3 +117,62 @@ def to(self, device: torch.device): self.u = self.u.to(device) self.y = self.y.to(device) self.v = self.v.to(device) + + +class SelfSupervisedDataSet(DataSet): + """ + A `SelfSupervisedDataSet` is a data set that exports batches of observations + and labels for self-supervised learning. + Every data point is created by taking one sensor as label. + + Every batch consists of tuples `(x, u, y, v)`, where `x` contains the sensor + positions, `u` the sensor values, and `y = x_i` and `v = u_i` are + the label's coordinate its value for all `i`. + + Args: + x: Sensor positions of shape (num_observations, num_sensors, coordinate_dim) + u: Sensor values of shape (num_observations, num_sensors, num_channels) + batch_size: Batch size. + shuffle: Shuffle dataset. + """ + + def __init__( + self, + x: Tensor, + u: Tensor, + batch_size: int, + shuffle: bool = True, + ): + self.num_observations = u.shape[0] + self.num_sensors = u.shape[1] + self.coordinate_dim = x.shape[-1] + self.num_channels = u.shape[-1] + + # Check consistency across observations + for i in range(self.num_observations): + assert ( + x[i].shape[-1] == self.coordinate_dim + ), "Inconsistent coordinate dimension." + assert ( + u[i].shape[-1] == self.num_channels + ), "Inconsistent number of channels." + + xs, us, ys, vs = [], [], [], [] + + for i in range(self.num_observations): + # Add one data point for every sensor + for j in range(self.num_sensors): + y = x[i][j].unsqueeze(0) + v = u[i][j].unsqueeze(0) + + xs.append(x[i]) + us.append(u[i]) + ys.append(y) + vs.append(v) + + xs = torch.stack(xs) + us = torch.stack(us) + ys = torch.stack(ys) + vs = torch.stack(vs) + + super().__init__(xs, us, ys, vs, batch_size, shuffle) diff --git a/src/continuity/data/datasets.py b/src/continuity/data/datasets.py index 45de0b35..5d062db4 100644 --- a/src/continuity/data/datasets.py +++ b/src/continuity/data/datasets.py @@ -2,89 +2,11 @@ import torch import numpy as np -from typing import List -from continuity.data import tensor, Sensor, Observation, DataSet +from typing import Tuple +from continuity.data import DataSet, tensor -class SelfSupervisedDataSet(DataSet): - """ - A `SelfSupervisedDataSet` is a data set constructed from a set of - observations that exports batches of observations and labels for - self-supervised learning. Every data point is created by taking one - sensor as label. - - Every batch consists of tuples `(x, u, y, v)`, where `x is the sensor positions, - `u` is the sensor values, `x` is the label's coordinate and `v` is the label. - - Args: - observations: List of observations. - batch_size: Batch size. - shuffle: Shuffle dataset. - """ - - def __init__( - self, - observations: List[Observation], - batch_size: int, - shuffle: bool = True, - ): - self.observations = observations - self.batch_size = batch_size - - self.num_sensors = observations[0].num_sensors - self.coordinate_dim = observations[0].sensors[0].coordinate_dim - self.num_channels = observations[0].sensors[0].num_channels - - # Check consistency across observations - for observation in self.observations: - assert ( - observation.num_sensors == self.num_sensors - ), "Inconsistent number of sensors." - assert ( - observation.coordinate_dim == self.coordinate_dim - ), "Inconsistent coordinate dimension." - assert ( - observation.num_channels == self.num_channels - ), "Inconsistent number of channels." - - self.x = [] - self.u = [] - self.y = [] - self.v = [] - - for observation in self.observations: - x, u = observation.to_tensors() - - for sensor in observation.sensors: - y = tensor(sensor.x).unsqueeze(0) - v = tensor(sensor.u).unsqueeze(0) - - # Add data point for every sensor - self.x.append(x) - self.u.append(u) - self.y.append(y) - self.v.append(v) - - self.x = torch.stack(self.x) - self.u = torch.stack(self.u) - self.y = torch.stack(self.y) - self.v = torch.stack(self.v) - - super().__init__(self.x, self.u, self.y, self.v, self.batch_size, shuffle) - - def get_observation(self, i: int) -> Observation: - """Return i-th original observation object. - - Args: - i: Index of observation. - - Returns: - Observation object. - """ - return self.observations[i] - - -class Sine(SelfSupervisedDataSet): +class Sine(DataSet): r"""Creates a data set of sine waves. The data set is generated by sampling sine waves at the given number of @@ -111,9 +33,12 @@ class Sine(SelfSupervisedDataSet): num_sensors: Number of sensors. size: Size of data set. batch_size: Batch size. Defaults to 32. + shuffle: Shuffle data set. Defaults to True. """ - def __init__(self, num_sensors: int, size: int, batch_size: int = 32): + def __init__( + self, num_sensors: int, size: int, batch_size: int = 32, shuffle: bool = True + ): self.num_sensors = num_sensors self.size = size @@ -123,15 +48,23 @@ def __init__(self, num_sensors: int, size: int, batch_size: int = 32): # Generate observations observations = [self.generate_observation(i) for i in range(self.size)] - super().__init__(observations, batch_size) + x = torch.stack([x for x, _ in observations]) + u = torch.stack([u for _, u in observations]) + + # Use observations as labels + y = x + v = u - def generate_observation(self, i: float) -> Observation: + super().__init__(x, u, y, v, batch_size, shuffle) + + def generate_observation(self, i: float) -> Tuple[np.array, np.array]: """Generate observation Args: i: Index of observation (0 <= i <= size). """ - x = np.linspace(-1, 1, self.num_sensors) + # Create x of shape (n, 1) + x = np.linspace(-1, 1, self.num_sensors).reshape(-1, 1) if self.size == 1: w = 1 @@ -140,6 +73,4 @@ def generate_observation(self, i: float) -> Observation: u = np.sin(w * np.pi * x) - sensors = [Sensor(np.array([x]), np.array([u])) for x, u in zip(x, u)] - - return Observation(sensors) + return tensor(x), tensor(u) diff --git a/src/continuity/operators/operator.py b/src/continuity/operators/operator.py index 1d63d876..224ba8ed 100644 --- a/src/continuity/operators/operator.py +++ b/src/continuity/operators/operator.py @@ -24,12 +24,12 @@ def forward(self, x: Tensor, u: Tensor, y: Tensor) -> Tensor: """Forward pass through the operator. Args: - x: Tensor of sensor positions of shape (batch_size, num_sensors, coordinate_dim) - u: Tensor of sensor values of shape (batch_size, num_sensors, num_channels) - y: Tensor of coordinates where the mapped function is evaluated of shape (batch_size, x_size, coordinate_dim) + x: Tensor of sensor positions of shape (batch_size, num_sensors, input_coordinate_dim) + u: Tensor of sensor values of shape (batch_size, num_sensors, input_channels) + y: Tensor of coordinates where the mapped function is evaluated of shape (batch_size, y_size, output_coordinate_dim) Returns: - Tensor of evaluations of the mapped function of shape (batch_size, x_size, num_channels) + Tensor of evaluations of the mapped function of shape (batch_size, y_size, output_channels) """ def compile(self, optimizer: torch.optim.Optimizer, loss_fn: Optional[Loss] = None): diff --git a/src/continuity/plotting/__init__.py b/src/continuity/plotting/__init__.py index c4304ae4..b70533be 100644 --- a/src/continuity/plotting/__init__.py +++ b/src/continuity/plotting/__init__.py @@ -2,14 +2,15 @@ import torch import numpy as np +from torch import Tensor from typing import Optional from matplotlib.axis import Axis import matplotlib.pyplot as plt -from continuity.data import device, Observation +from continuity.data import device from continuity.operators import Operator -def plot(x: torch.Tensor, u: torch.Tensor, ax: Optional[Axis] = None): +def plot(x: Tensor, u: Tensor, ax: Optional[Axis] = None): """Plots a function $u(x)$. Currently only supports coordinate dimensions of $d = 1,2$. @@ -35,22 +36,8 @@ def plot(x: torch.Tensor, u: torch.Tensor, ax: Optional[Axis] = None): ax.set_aspect("equal") -def plot_observation(observation: Observation, ax: Optional[Axis] = None): - """Plots an observation. - - Currently only supports coordinate dimensions of $d = 1,2$. - - Args: - observation: Observation object - ax: Axis object. If None, `plt.gca()` is used. - """ - x = np.stack([s.x for s in observation.sensors]) - u = np.stack([s.u for s in observation.sensors]) - plot(x, u, ax) - - def plot_evaluation( - operator: Operator, observation: Observation, ax: Optional[Axis] = None + operator: Operator, x: Tensor, u: Tensor, ax: Optional[Axis] = None ): """Plots the mapped function `operator(observation)` evaluated on a $[-1, 1]^d$ grid. @@ -58,29 +45,27 @@ def plot_evaluation( Args: operator: Operator object - observation: Observation object + x: Collocation points of shape (n, d) + u: Function values of shape (n, c) ax: Axis object. If None, `plt.gca()` is used. """ if ax is None: ax = plt.gca() - dim = observation.coordinate_dim + dim = x.shape[-1] assert dim in [1, 2], "Only supports `d = 1,2`" if dim == 1: n = 200 y = torch.linspace(-1, 1, n, device=device).unsqueeze(-1) - x, u = observation.to_tensors() v = operator(x, u, y).detach() ax.plot(y.cpu().flatten(), v.cpu().flatten(), "k-") if dim == 2: n = 128 - x = np.linspace(-1, 1, n) - y = np.linspace(-1, 1, n) - xx, yy = np.meshgrid(x, y) - u = observation.to_tensor().unsqueeze(0).to(device) - x = ( + a = np.linspace(-1, 1, n) + xx, yy = np.meshgrid(a, a) + y = ( torch.tensor( np.array( [np.array([xx[i, j], yy[i, j]]) for i in range(n) for j in range(n)] @@ -90,7 +75,7 @@ def plot_evaluation( .unsqueeze(0) .to(device) ) - u = operator(u, x).detach().cpu() + u = operator(x, u, y).detach().cpu() u = np.reshape(u, (n, n)) ax.contourf(xx, yy, u, cmap="jet", levels=100) ax.set_aspect("equal") diff --git a/tests/test_convolution.py b/tests/test_convolution.py index 6f03ca11..dedc001d 100644 --- a/tests/test_convolution.py +++ b/tests/test_convolution.py @@ -2,7 +2,7 @@ import matplotlib.pyplot as plt from continuity.data.datasets import Sine from continuity.operators import ContinuousConvolution -from continuity.plotting import plot_observation +from continuity.plotting import plot # Set random seed torch.manual_seed(0) @@ -13,9 +13,9 @@ def test_convolution(): num_sensors = 16 num_evals = num_sensors - # Observation + # Data set dataset = Sine(num_sensors, size=1) - observation = dataset.get_observation(0) + x, u = dataset.x[0], dataset.u[0] # Kernel def dirac(x, y): @@ -30,7 +30,6 @@ def dirac(x, y): ) # Create tensors - x, u = observation.to_tensors() y = torch.linspace(-1, 1, num_evals).unsqueeze(-1) # Apply operator @@ -41,7 +40,7 @@ def dirac(x, y): # Plotting fig, ax = plt.subplots(1, 1) - plot_observation(observation, ax=ax) + plot(x, u, ax=ax) plt.plot(x, v, "o") fig.savefig(f"test_convolution.png") diff --git a/tests/test_dataset.py b/tests/test_dataset.py index aa65e289..41b2e5ef 100644 --- a/tests/test_dataset.py +++ b/tests/test_dataset.py @@ -1,9 +1,7 @@ import torch -import numpy as np import matplotlib.pyplot as plt -from continuity.data import Sensor, Observation -from continuity.data.datasets import SelfSupervisedDataSet -from continuity.plotting import plot_observation +from continuity.data import SelfSupervisedDataSet, tensor +from continuity.plotting import plot # Set random seed torch.manual_seed(0) @@ -16,27 +14,21 @@ def test_dataset(): num_channels = 1 coordinate_dim = 1 - sensors = [] - for i in range(num_sensors): - x = np.array([i]) - u = f(x) - sensor = Sensor(x, u) - sensors.append(sensor) - - # Observation - observation = Observation(sensors) - print(observation) + x = tensor(range(num_sensors)).reshape(-1, 1) + u = f(x) # Test plotting fig, ax = plt.subplots(1, 1) - plot_observation(observation, ax=ax) + plot(x, u, ax=ax) fig.savefig(f"test_dataset.png") # Dataset dataset = SelfSupervisedDataSet( - [observation], + x.unsqueeze(0), + u.unsqueeze(0), batch_size=3, ) + x_target, u_target = x, u # Test for i in range(len(dataset)): @@ -47,7 +39,6 @@ def test_dataset(): assert u.shape[1] == num_sensors assert x.shape[2] == coordinate_dim assert u.shape[2] == num_channels - x_target, u_target = observation.to_tensors() assert (x == x_target).all() assert (u == u_target).all() diff --git a/tests/test_deeponet.py b/tests/test_deeponet.py index fefadd3a..47f26664 100644 --- a/tests/test_deeponet.py +++ b/tests/test_deeponet.py @@ -2,7 +2,7 @@ import matplotlib.pyplot as plt from continuity.data.datasets import Sine from continuity.operators import DeepONet -from continuity.plotting import plot_observation, plot_evaluation +from continuity.plotting import plot, plot_evaluation # Set random seed torch.manual_seed(0) @@ -12,7 +12,7 @@ def test_deeponet(): # Parameters num_sensors = 16 - # Observation + # Data set dataset = Sine(num_sensors, size=1) # Operator @@ -34,14 +34,14 @@ def test_deeponet(): # Plotting fig, ax = plt.subplots(1, 1) - observation = dataset.get_observation(0) - plot_observation(observation, ax=ax) - plot_evaluation(operator, observation, ax=ax) + x, u, _, _ = dataset[0] # first batch + x0, u0 = x[0], u[0] # first sample + plot(x0, u0, ax=ax) + plot_evaluation(operator, x0, u0, ax=ax) fig.savefig(f"test_deeponet.png") # Check solution - x, u = observation.to_tensors() - assert operator.loss(x, u, x, u) < 1e-5 + assert operator.loss(x, u, x, u) < 3e-5 if __name__ == "__main__": diff --git a/tests/test_neuraloperator.py b/tests/test_neuraloperator.py index 9047732b..41aba43c 100644 --- a/tests/test_neuraloperator.py +++ b/tests/test_neuraloperator.py @@ -2,7 +2,7 @@ import matplotlib.pyplot as plt from continuity.data.datasets import Sine from continuity.operators import NeuralOperator -from continuity.plotting import plot_observation, plot_evaluation +from continuity.plotting import plot, plot_evaluation # Set random seed torch.manual_seed(0) @@ -12,7 +12,7 @@ def test_neuraloperator(): # Parameters num_sensors = 16 - # Observation + # Data set dataset = Sine(num_sensors, size=1) # Operator @@ -31,13 +31,13 @@ def test_neuraloperator(): # Plotting fig, ax = plt.subplots(1, 1) - observation = dataset.get_observation(0) - plot_observation(observation, ax=ax) - plot_evaluation(operator, observation, ax=ax) + x, u, _, _ = dataset[0] # first batch + x0, u0 = x[0], u[0] # first sample + plot(x0, u0, ax=ax) + plot_evaluation(operator, x0, u0, ax=ax) fig.savefig(f"test_neuraloperator.png") # Check solution - x, u = observation.to_tensors() assert operator.loss(x, u, x, u) < 1e-5