* solvers -> solver
* adaptive_functions -> adaptive_function
* callbacks -> callback
* operators -> operator
* pinns -> physics_informed_solver
* layers -> block
This commit is contained in:
Dario Coscia
2025-02-19 11:35:43 +01:00
committed by Nicola Demo
parent 810d215ca0
commit df673cad4e
90 changed files with 155 additions and 151 deletions

View File

@@ -1,19 +1,19 @@
import torch
import pytest
from pina.adaptive_functions import (AdaptiveReLU, AdaptiveSigmoid, AdaptiveTanh,
from pina.adaptive_function import (AdaptiveReLU, AdaptiveSigmoid, AdaptiveTanh,
AdaptiveSiLU, AdaptiveMish, AdaptiveELU,
AdaptiveCELU, AdaptiveGELU, AdaptiveSoftmin,
AdaptiveSoftmax, AdaptiveSIREN, AdaptiveExp)
adaptive_functions = (AdaptiveReLU, AdaptiveSigmoid, AdaptiveTanh,
adaptive_function = (AdaptiveReLU, AdaptiveSigmoid, AdaptiveTanh,
AdaptiveSiLU, AdaptiveMish, AdaptiveELU,
AdaptiveCELU, AdaptiveGELU, AdaptiveSoftmin,
AdaptiveSoftmax, AdaptiveSIREN, AdaptiveExp)
x = torch.rand(10, requires_grad=True)
@pytest.mark.parametrize("Func", adaptive_functions)
@pytest.mark.parametrize("Func", adaptive_function)
def test_constructor(Func):
if Func.__name__ == 'AdaptiveExp':
# simple
@@ -50,12 +50,12 @@ def test_constructor(Func):
Func(alpha='s')
Func(alpha=1)
@pytest.mark.parametrize("Func", adaptive_functions)
@pytest.mark.parametrize("Func", adaptive_function)
def test_forward(Func):
af = Func()
af(x)
@pytest.mark.parametrize("Func", adaptive_functions)
@pytest.mark.parametrize("Func", adaptive_function)
def test_backward(Func):
af = Func()
y = af(x)

View File

@@ -1,4 +1,4 @@
from pina.model.layers import ContinuousConvBlock
from pina.model.block import ContinuousConvBlock
import torch

View File

@@ -1,7 +1,7 @@
import torch
import pytest
from pina.model.layers import PeriodicBoundaryEmbedding, FourierFeatureEmbedding
from pina.model.block import PeriodicBoundaryEmbedding, FourierFeatureEmbedding
# test tolerance
tol = 1e-6

View File

@@ -1,4 +1,4 @@
from pina.model.layers import FourierBlock1D, FourierBlock2D, FourierBlock3D
from pina.model.block import FourierBlock1D, FourierBlock2D, FourierBlock3D
import torch
input_numb_fields = 3

View File

@@ -1,7 +1,7 @@
import torch
import pytest
from pina.model.layers import LowRankBlock
from pina.model.block import LowRankBlock
from pina import LabelTensor

View File

@@ -1,6 +1,6 @@
import torch
import pytest
from pina.model.layers import OrthogonalBlock
from pina.model.block import OrthogonalBlock
torch.manual_seed(111)

View File

@@ -1,7 +1,7 @@
import torch
import pytest
from pina.model.layers.pod import PODBlock
from pina.model.block.pod import PODBlock
x = torch.linspace(-1, 1, 100)
toy_snapshots = torch.vstack([torch.exp(-x**2)*c for c in torch.linspace(0, 1, 10)])

View File

@@ -2,7 +2,7 @@ import torch
import pytest
import math
from pina.model.layers.rbf_layer import RBFBlock
from pina.model.block.rbf_layer import RBFBlock
x = torch.linspace(-1, 1, 100)
toy_params = torch.linspace(0, 1, 10).unsqueeze(1)

View File

@@ -1,4 +1,4 @@
from pina.model.layers import ResidualBlock, EnhancedLinear
from pina.model.block import ResidualBlock, EnhancedLinear
import torch
import torch.nn as nn

View File

@@ -1,4 +1,4 @@
from pina.model.layers import SpectralConvBlock1D, SpectralConvBlock2D, SpectralConvBlock3D
from pina.model.block import SpectralConvBlock1D, SpectralConvBlock2D, SpectralConvBlock3D
import torch
input_numb_fields = 3

View File

@@ -1,8 +1,8 @@
from pina.solvers import PINN
from pina.solver import PINN
from pina.trainer import Trainer
from pina.model import FeedForward
from pina.problem.zoo import Poisson2DSquareProblem as Poisson
from pina.callbacks import R3Refinement
from pina.callback import R3Refinement
# make the problem
@@ -25,7 +25,7 @@ solver = PINN(problem=poisson_problem, model=model)
# def test_r3refinment_routine():
# # make the trainer
# trainer = Trainer(solver=solver,
# callbacks=[R3Refinement(sample_every=1)],
# callback=[R3Refinement(sample_every=1)],
# accelerator='cpu',
# max_epochs=5)
# trainer.train()
@@ -35,7 +35,7 @@ solver = PINN(problem=poisson_problem, model=model)
# len(poisson_problem.output_variables))
# solver = PINN(problem=poisson_problem, model=model)
# trainer = Trainer(solver=solver,
# callbacks=[R3Refinement(sample_every=1)],
# callback=[R3Refinement(sample_every=1)],
# accelerator='cpu',
# max_epochs=5)
# before_n_points = {loc : len(pts) for loc, pts in trainer.solver.problem.input_pts.items()}

View File

@@ -1,7 +1,7 @@
from pina.solvers import PINN
from pina.solver import PINN
from pina.trainer import Trainer
from pina.model import FeedForward
from pina.callbacks import MetricTracker
from pina.callback import MetricTracker
from pina.problem.zoo import Poisson2DSquareProblem as Poisson
@@ -24,14 +24,14 @@ def test_metric_tracker_constructor():
# def test_metric_tracker_routine(): #TODO revert
# # make the trainer
# trainer = Trainer(solver=solver,
# callbacks=[
# callback=[
# MetricTracker()
# ],
# accelerator='cpu',
# max_epochs=5)
# trainer.train()
# # get the tracked metrics
# metrics = trainer.callbacks[0].metrics
# metrics = trainer.callback[0].metrics
# # assert the logged metrics are correct
# logged_metrics = sorted(list(metrics.keys()))
# assert logged_metrics == ['train_loss_epoch', 'train_loss_step', 'val_loss']

View File

@@ -1,8 +1,8 @@
from pina.callbacks import SwitchOptimizer
from pina.callback import SwitchOptimizer
import torch
import pytest
from pina.solvers import PINN
from pina.solver import PINN
from pina.trainer import Trainer
from pina.model import FeedForward
from pina.problem.zoo import Poisson2DSquareProblem as Poisson
@@ -31,7 +31,7 @@ def test_switch_optimizer_constructor():
# # make the trainer
# switch_opt_callback = SwitchOptimizer(lbfgs_optimizer, epoch_switch=3)
# trainer = Trainer(solver=solver,
# callbacks=[switch_opt_callback],
# callback=[switch_opt_callback],
# accelerator='cpu',
# max_epochs=5)
# trainer.train()

View File

@@ -1,7 +1,7 @@
from pina.solvers import PINN
from pina.solver import PINN
from pina.trainer import Trainer
from pina.model import FeedForward
from pina.callbacks.processing_callbacks import PINAProgressBar
from pina.callback.processing_callback import PINAProgressBar
from pina.problem.zoo import Poisson2DSquareProblem as Poisson
@@ -24,7 +24,7 @@ from pina.problem.zoo import Poisson2DSquareProblem as Poisson
# def test_progress_bar_routine():
# # make the trainer
# trainer = Trainer(solver=solver,
# callbacks=[
# callback=[
# PINAProgressBar(['mean', 'laplace_D'])
# ],
# accelerator='cpu',

View File

@@ -7,7 +7,7 @@ from pina.problem import AbstractProblem, SpatialProblem
from pina.domain import CartesianDomain
from pina.equation.equation import Equation
from pina.equation.equation_factory import FixedValue
from pina.operators import laplacian
from pina.operator import laplacian
from pina.collector import Collector

View File

@@ -6,7 +6,7 @@ from pina.problem.zoo import SupervisedProblem
from pina.graph import RadiusGraph
from pina.data.data_module import DummyDataloader
from pina import Trainer
from pina.solvers import SupervisedSolver
from pina.solver import SupervisedSolver
from torch_geometric.data import Batch
from torch.utils.data import DataLoader

View File

@@ -1,5 +1,5 @@
from pina.equation import Equation
from pina.operators import grad, laplacian
from pina.operator import grad, laplacian
from pina import LabelTensor
import torch
import pytest

View File

@@ -1,5 +1,5 @@
from pina.equation import SystemEquation
from pina.operators import grad, laplacian
from pina.operator import grad, laplacian
from pina import LabelTensor
import torch
import pytest

View File

@@ -2,7 +2,7 @@ import torch
import pytest
from pina import LabelTensor
from pina.operators import grad, div, laplacian
from pina.operator import grad, div, laplacian
def func_vector(x):

View File

@@ -3,7 +3,7 @@ import pytest
from pina import LabelTensor, Condition
from pina.problem import SpatialProblem
from pina.solvers import CausalPINN
from pina.solver import CausalPINN
from pina.trainer import Trainer
from pina.model import FeedForward
from pina.problem.zoo import (
@@ -118,7 +118,7 @@ def test_solver_test(problem, batch_size, compile):
@pytest.mark.parametrize("problem", [problem, inverse_problem])
def test_train_load_restore(problem):
dir = "tests/test_solvers/tmp"
dir = "tests/test_solver/tmp"
problem = problem
solver = CausalPINN(model=model, problem=problem)
trainer = Trainer(solver=solver,
@@ -153,4 +153,4 @@ def test_train_load_restore(problem):
# rm directories
import shutil
shutil.rmtree('tests/test_solvers/tmp')
shutil.rmtree('tests/test_solver/tmp')

View File

@@ -2,7 +2,7 @@ import torch
import pytest
from pina import LabelTensor, Condition
from pina.solvers import CompetitivePINN as CompPINN
from pina.solver import CompetitivePINN as CompPINN
from pina.trainer import Trainer
from pina.model import FeedForward
from pina.problem.zoo import (
@@ -107,7 +107,7 @@ def test_solver_test(problem, batch_size, compile):
@pytest.mark.parametrize("problem", [problem, inverse_problem])
def test_train_load_restore(problem):
dir = "tests/test_solvers/tmp"
dir = "tests/test_solver/tmp"
problem = problem
solver = CompPINN(problem=problem, model=model)
trainer = Trainer(solver=solver,
@@ -142,4 +142,4 @@ def test_train_load_restore(problem):
# rm directories
import shutil
shutil.rmtree('tests/test_solvers/tmp')
shutil.rmtree('tests/test_solver/tmp')

View File

@@ -3,7 +3,7 @@ import torch.nn as nn
import pytest
from pina import Condition, LabelTensor
from pina.solvers import GAROM
from pina.solver import GAROM
from pina.condition import InputOutputPointsCondition
from pina.problem import AbstractProblem
from pina.model import FeedForward
@@ -141,7 +141,7 @@ def test_solver_test(batch_size, compile):
def test_train_load_restore():
dir = "tests/test_solvers/tmp/"
dir = "tests/test_solver/tmp/"
problem = TensorProblem()
solver = GAROM(problem=TensorProblem(),
generator=Generator(),
@@ -174,4 +174,4 @@ def test_train_load_restore():
# rm directories
import shutil
shutil.rmtree('tests/test_solvers/tmp')
shutil.rmtree('tests/test_solver/tmp')

View File

@@ -3,7 +3,7 @@ import torch
from pina import LabelTensor, Condition
from pina.problem import TimeDependentProblem
from pina.solvers import GradientPINN
from pina.solver import GradientPINN
from pina.model import FeedForward
from pina.trainer import Trainer
from pina.problem.zoo import (
@@ -117,7 +117,7 @@ def test_solver_test(problem, batch_size, compile):
@pytest.mark.parametrize("problem", [problem, inverse_problem])
def test_train_load_restore(problem):
dir = "tests/test_solvers/tmp"
dir = "tests/test_solver/tmp"
problem = problem
solver = GradientPINN(model=model, problem=problem)
trainer = Trainer(solver=solver,
@@ -152,4 +152,4 @@ def test_train_load_restore(problem):
# rm directories
import shutil
shutil.rmtree('tests/test_solvers/tmp')
shutil.rmtree('tests/test_solver/tmp')

View File

@@ -4,7 +4,7 @@ import torch
from pina import LabelTensor, Condition
from pina.model import FeedForward
from pina.trainer import Trainer
from pina.solvers import PINN
from pina.solver import PINN
from pina.condition import (
InputOutputPointsCondition,
InputPointsEquationCondition,
@@ -98,7 +98,7 @@ def test_solver_test(problem, batch_size, compile):
@pytest.mark.parametrize("problem", [problem, inverse_problem])
def test_train_load_restore(problem):
dir = "tests/test_solvers/tmp"
dir = "tests/test_solver/tmp"
problem = problem
solver = PINN(model=model, problem=problem)
trainer = Trainer(solver=solver,
@@ -131,4 +131,4 @@ def test_train_load_restore(problem):
# rm directories
import shutil
shutil.rmtree('tests/test_solvers/tmp')
shutil.rmtree('tests/test_solver/tmp')

View File

@@ -4,7 +4,7 @@ import torch
from pina import LabelTensor, Condition
from pina.model import FeedForward
from pina.trainer import Trainer
from pina.solvers import RBAPINN
from pina.solver import RBAPINN
from pina.condition import (
InputOutputPointsCondition,
InputPointsEquationCondition,
@@ -119,7 +119,7 @@ def test_solver_test(problem, compile):
@pytest.mark.parametrize("problem", [problem, inverse_problem])
def test_train_load_restore(problem):
dir = "tests/test_solvers/tmp"
dir = "tests/test_solver/tmp"
problem = problem
solver = RBAPINN(model=model, problem=problem)
trainer = Trainer(solver=solver,
@@ -154,4 +154,4 @@ def test_train_load_restore(problem):
# rm directories
import shutil
shutil.rmtree('tests/test_solvers/tmp')
shutil.rmtree('tests/test_solver/tmp')

View File

@@ -4,7 +4,7 @@ import pytest
from pina import Condition, LabelTensor
from pina.problem import AbstractProblem
from pina.condition import InputOutputPointsCondition
from pina.solvers import ReducedOrderModelSolver
from pina.solver import ReducedOrderModelSolver
from pina.trainer import Trainer
from pina.model import FeedForward
from pina.problem.zoo import Poisson2DSquareProblem
@@ -149,7 +149,7 @@ def test_solver_test(use_lt, compile):
def test_train_load_restore():
dir = "tests/test_solvers/tmp/"
dir = "tests/test_solver/tmp/"
problem = LabelTensorProblem()
solver = ReducedOrderModelSolver(problem=problem,
@@ -184,4 +184,4 @@ def test_train_load_restore():
solver.forward(test_pts))
# rm directories
import shutil
shutil.rmtree('tests/test_solvers/tmp')
shutil.rmtree('tests/test_solver/tmp')

View File

@@ -2,7 +2,7 @@ import torch
import pytest
from pina import LabelTensor, Condition
from pina.solvers import SelfAdaptivePINN as SAPINN
from pina.solver import SelfAdaptivePINN as SAPINN
from pina.trainer import Trainer
from pina.model import FeedForward
from pina.problem.zoo import (
@@ -122,7 +122,7 @@ def test_solver_test(problem, compile):
@pytest.mark.parametrize("problem", [problem, inverse_problem])
def test_train_load_restore(problem):
dir = "tests/test_solvers/tmp"
dir = "tests/test_solver/tmp"
problem = problem
solver = SAPINN(model=model, problem=problem)
trainer = Trainer(solver=solver,
@@ -156,4 +156,4 @@ def test_train_load_restore(problem):
# rm directories
import shutil
shutil.rmtree('tests/test_solvers/tmp')
shutil.rmtree('tests/test_solver/tmp')

View File

@@ -3,7 +3,7 @@ import pytest
from pina import Condition, LabelTensor
from pina.condition import InputOutputPointsCondition
from pina.problem import AbstractProblem
from pina.solvers import SupervisedSolver
from pina.solver import SupervisedSolver
from pina.model import FeedForward
from pina.trainer import Trainer
from torch._dynamo.eval_frame import OptimizedModule
@@ -97,7 +97,7 @@ def test_solver_test(use_lt, compile):
def test_train_load_restore():
dir = "tests/test_solvers/tmp/"
dir = "tests/test_solver/tmp/"
problem = LabelTensorProblem()
solver = SupervisedSolver(problem=problem, model=model)
trainer = Trainer(solver=solver,
@@ -130,4 +130,4 @@ def test_train_load_restore():
# rm directories
import shutil
shutil.rmtree('tests/test_solvers/tmp')
shutil.rmtree('tests/test_solver/tmp')

View File

@@ -2,7 +2,7 @@ import pytest
import torch
from pina import Trainer
from pina.solvers import PINN
from pina.solver import PINN
from pina.model import FeedForward
from pina.problem.zoo import Poisson2DSquareProblem
from pina.loss import ScalarWeighting