pymor.models.neural_network
¶
Remark on the documentation:
Due to an issue in autoapi, the classes NeuralNetworkStatefreeOutputModel
,
NeuralNetworkInstationaryModel
, NeuralNetworkInstationaryStatefreeOutputModel
and FullyConnectedNN
do not appear in the documentation,
see https://github.com/pymor/pymor/issues/1343.
Module Contents¶
Classes¶
Class for models of stationary problems that use artificial neural networks. 

Class for models of the output of stationary problems that use ANNs. 

Class for models of instationary problems that use artificial neural networks. 

Class for models of the output of instationary problems that use ANNs. 

Class for neural networks with fully connected layers. 
 class pymor.models.neural_network.NeuralNetworkModel(neural_network, parameters={}, output_functional=None, products=None, error_estimator=None, visualizer=None, name=None)[source]¶
Bases:
pymor.models.interface.Model
Class for models of stationary problems that use artificial neural networks.
This class implements a
Model
that uses a neural network for solving.Parameters
 neural_network
The neural network that approximates the mapping from parameter space to solution space. Should be an instance of
FullyConnectedNN
with input size that matches the (total) number of parameters and output size equal to the dimension of the reduced space. parameters
Parameters
of the reduced order model (the same as used in the fullorder model). output_functional
Operator
mapping a given solution to the model output. In many applications, this will be aFunctional
, i.e. anOperator
mapping to scalars. This is not required, however. products
A dict of inner product
Operators
defined on the discrete space the problem is posed on. For each product with key'x'
a corresponding attributex_product
, as well as a norm methodx_norm
is added to the model. error_estimator
An error estimator for the problem. This can be any object with an
estimate_error(U, mu, m)
method. Iferror_estimator
is notNone
, anestimate_error(U, mu)
method is added to the model which will callerror_estimator.estimate_error(U, mu, self)
. visualizer
A visualizer for the problem. This can be any object with a
visualize(U, m, ...)
method. Ifvisualizer
is notNone
, avisualize(U, *args, **kwargs)
method is added to the model which forwards its arguments to the visualizer’svisualize
method. name
Name of the model.
 _compute_solution(self, mu=None, **kwargs)[source]¶
Compute the model’s solution for
parameter values
mu
.This method is called by the default implementation of
compute
inpymor.models.interface.Model
.Parameters
 mu
Parameter values
for which to compute the solution. kwargs
Additional keyword arguments to customize how the solution is computed or to select additional data to be returned.
Returns
VectorArray
with the computed solution or a dict which at least must contain the key'solution'
.
 class pymor.models.neural_network.NeuralNetworkStatefreeOutputModel(neural_network, parameters={}, error_estimator=None, name=None)[source]¶
Bases:
pymor.models.interface.Model
Class for models of the output of stationary problems that use ANNs.
This class implements a
Model
that uses a neural network for solving for the output quantity.Parameters
 neural_network
The neural network that approximates the mapping from parameter space to output space. Should be an instance of
FullyConnectedNN
with input size that matches the (total) number of parameters and output size equal to the dimension of the output space. parameters
Parameters
of the reduced order model (the same as used in the fullorder model). error_estimator
An error estimator for the problem. This can be any object with an
estimate_error(U, mu, m)
method. Iferror_estimator
is notNone
, anestimate_error(U, mu)
method is added to the model which will callerror_estimator.estimate_error(U, mu, self)
. name
Name of the model.
 class pymor.models.neural_network.NeuralNetworkInstationaryModel(T, nt, neural_network, parameters={}, output_functional=None, products=None, error_estimator=None, visualizer=None, name=None)[source]¶
Bases:
pymor.models.interface.Model
Class for models of instationary problems that use artificial neural networks.
This class implements a
Model
that uses a neural network for solving.Parameters
 T
The final time T.
 nt
The number of time steps.
 neural_network
The neural network that approximates the mapping from parameter space to solution space. Should be an instance of
FullyConnectedNN
with input size that matches the (total) number of parameters and output size equal to the dimension of the reduced space. parameters
Parameters
of the reduced order model (the same as used in the fullorder model). output_functional
Operator
mapping a given solution to the model output. In many applications, this will be aFunctional
, i.e. anOperator
mapping to scalars. This is not required, however. products
A dict of inner product
Operators
defined on the discrete space the problem is posed on. For each product with key'x'
a corresponding attributex_product
, as well as a norm methodx_norm
is added to the model. error_estimator
An error estimator for the problem. This can be any object with an
estimate_error(U, mu, m)
method. Iferror_estimator
is notNone
, anestimate_error(U, mu)
method is added to the model which will callerror_estimator.estimate_error(U, mu, self)
. visualizer
A visualizer for the problem. This can be any object with a
visualize(U, m, ...)
method. Ifvisualizer
is notNone
, avisualize(U, *args, **kwargs)
method is added to the model which forwards its arguments to the visualizer’svisualize
method. name
Name of the model.
 _compute_solution(self, mu=None, **kwargs)[source]¶
Compute the model’s solution for
parameter values
mu
.This method is called by the default implementation of
compute
inpymor.models.interface.Model
.Parameters
 mu
Parameter values
for which to compute the solution. kwargs
Additional keyword arguments to customize how the solution is computed or to select additional data to be returned.
Returns
VectorArray
with the computed solution or a dict which at least must contain the key'solution'
.
 class pymor.models.neural_network.NeuralNetworkInstationaryStatefreeOutputModel(T, nt, neural_network, parameters={}, error_estimator=None, name=None)[source]¶
Bases:
pymor.models.interface.Model
Class for models of the output of instationary problems that use ANNs.
This class implements a
Model
that uses a neural network for solving for the output quantity in the instationary case.Parameters
 T
The final time T.
 nt
The number of time steps.
 neural_network
The neural network that approximates the mapping from parameter space to output space. Should be an instance of
FullyConnectedNN
with input size that matches the (total) number of parameters and output size equal to the dimension of the output space. parameters
Parameters
of the reduced order model (the same as used in the fullorder model). error_estimator
An error estimator for the problem. This can be any object with an
estimate_error(U, mu, m)
method. Iferror_estimator
is notNone
, anestimate_error(U, mu)
method is added to the model which will callerror_estimator.estimate_error(U, mu, self)
. name
Name of the model.
 class pymor.models.neural_network.FullyConnectedNN(layer_sizes, activation_function=torch.tanh)[source]¶
Bases:
torch.nn.Module
,pymor.core.base.BasicObject
Class for neural networks with fully connected layers.
This class implements neural networks consisting of linear and fully connected layers. Furthermore, the same activation function is used between each layer, except for the last one where no activation function is applied.
Parameters
 layer_sizes
List of sizes (i.e. number of neurons) for the layers of the neural network.
 activation_function
Function to use as activation function between the single layers.