This commit is contained in:
gc031298
2025-02-21 10:30:17 +01:00
committed by Nicola Demo
parent ff43a7492b
commit ed0a8bd5e7
15 changed files with 5 additions and 5 deletions

View File

@@ -0,0 +1,40 @@
import torch
from pina.model import KernelNeuralOperator, FeedForward
input_dim = 2
output_dim = 4
embedding_dim = 24
batch_size = 10
numb = 256
data = torch.rand(size=(batch_size, numb, input_dim), requires_grad=True)
output_shape = torch.Size([batch_size, numb, output_dim])
lifting_operator = FeedForward(input_dimensions=input_dim, output_dimensions=embedding_dim)
projection_operator = FeedForward(input_dimensions=embedding_dim, output_dimensions=output_dim)
integral_kernels = torch.nn.Sequential(FeedForward(input_dimensions=embedding_dim,
output_dimensions=embedding_dim),
FeedForward(input_dimensions=embedding_dim,
output_dimensions=embedding_dim),)
def test_constructor():
KernelNeuralOperator(lifting_operator=lifting_operator,
integral_kernels=integral_kernels,
projection_operator=projection_operator)
def test_forward():
operator = KernelNeuralOperator(lifting_operator=lifting_operator,
integral_kernels=integral_kernels,
projection_operator=projection_operator)
out = operator(data)
assert out.shape == output_shape
def test_backward():
operator = KernelNeuralOperator(lifting_operator=lifting_operator,
integral_kernels=integral_kernels,
projection_operator=projection_operator)
out = operator(data)
loss = torch.nn.functional.mse_loss(out, torch.zeros_like(out))
loss.backward()
grad = data.grad
assert grad.shape == data.shape