deepxde.nn.tensorflow

deepxde.nn.tensorflow.deeponet module

class deepxde.nn.tensorflow.deeponet.DeepONet(layer_sizes_branch, layer_sizes_trunk, activation, kernel_initializer)[source]

Bases: deepxde.nn.tensorflow.nn.NN

Deep operator network.

Parameters:
  • layer_sizes_branch – A list of integers as the width of a fully connected network, or (dim, f) where dim is the input dimension and f is a network function. The width of the last layer in the branch and trunk net should be equal.
  • layer_sizes_trunk (list) – A list of integers as the width of a fully connected network.
  • activation – If activation is a string, then the same activation is used in both trunk and branch nets. If activation is a dict, then the trunk net uses the activation activation[“trunk”], and the branch net uses activation[“branch”].
call(inputs, training=False)[source]

Calls the model on new inputs and returns the outputs as tensors.

In this case call() just reapplies all ops in the graph to the new inputs (e.g. build a new computational graph from the provided inputs).

Note: This method should not be called directly. It is only meant to be overridden when subclassing tf.keras.Model. To call a model on an input, always use the __call__() method, i.e. model(inputs), which relies on the underlying call() method.

Parameters:
  • inputs – Input tensor, or dict/list/tuple of input tensors.
  • training – Boolean or boolean scalar tensor, indicating whether to run the Network in training mode or inference mode.
  • mask

    A mask or list of masks. A mask can be either a boolean tensor or None (no mask). For more details, check the guide

Returns:

A tensor if there is a single output, or a list of tensors if there are more than one outputs.

class deepxde.nn.tensorflow.deeponet.DeepONetCartesianProd(layer_sizes_branch, layer_sizes_trunk, activation, kernel_initializer, regularization=None)[source]

Bases: deepxde.nn.tensorflow.nn.NN

Deep operator network for dataset in the format of Cartesian product.

Parameters:
  • layer_sizes_branch – A list of integers as the width of a fully connected network, or (dim, f) where dim is the input dimension and f is a network function. The width of the last layer in the branch and trunk net should be equal.
  • layer_sizes_trunk (list) – A list of integers as the width of a fully connected network.
  • activation – If activation is a string, then the same activation is used in both trunk and branch nets. If activation is a dict, then the trunk net uses the activation activation[“trunk”], and the branch net uses activation[“branch”].
call(inputs, training=False)[source]

Calls the model on new inputs and returns the outputs as tensors.

In this case call() just reapplies all ops in the graph to the new inputs (e.g. build a new computational graph from the provided inputs).

Note: This method should not be called directly. It is only meant to be overridden when subclassing tf.keras.Model. To call a model on an input, always use the __call__() method, i.e. model(inputs), which relies on the underlying call() method.

Parameters:
  • inputs – Input tensor, or dict/list/tuple of input tensors.
  • training – Boolean or boolean scalar tensor, indicating whether to run the Network in training mode or inference mode.
  • mask

    A mask or list of masks. A mask can be either a boolean tensor or None (no mask). For more details, check the guide

Returns:

A tensor if there is a single output, or a list of tensors if there are more than one outputs.

class deepxde.nn.tensorflow.deeponet.PODDeepONet(pod_basis, layer_sizes_branch, activation, kernel_initializer, layer_sizes_trunk=None, regularization=None)[source]

Bases: deepxde.nn.tensorflow.nn.NN

Deep operator network with proper orthogonal decomposition (POD) for dataset in the format of Cartesian product.

Parameters:
  • pod_basis – POD basis used in the trunk net.
  • layer_sizes_branch – A list of integers as the width of a fully connected network, or (dim, f) where dim is the input dimension and f is a network function. The width of the last layer in the branch and trunk net should be equal.
  • activation – If activation is a string, then the same activation is used in both trunk and branch nets. If activation is a dict, then the trunk net uses the activation activation[“trunk”], and the branch net uses activation[“branch”].
  • layer_sizes_trunk (list) – A list of integers as the width of a fully connected network. If None, then only use POD basis as the trunk net.

References

L. Lu, X. Meng, S. Cai, Z. Mao, S. Goswami, Z. Zhang, & G. E. Karniadakis. A comprehensive and fair comparison of two neural operators (with practical extensions) based on FAIR data. arXiv preprint arXiv:2111.05512, 2021.

call(inputs, training=False)[source]

Calls the model on new inputs and returns the outputs as tensors.

In this case call() just reapplies all ops in the graph to the new inputs (e.g. build a new computational graph from the provided inputs).

Note: This method should not be called directly. It is only meant to be overridden when subclassing tf.keras.Model. To call a model on an input, always use the __call__() method, i.e. model(inputs), which relies on the underlying call() method.

Parameters:
  • inputs – Input tensor, or dict/list/tuple of input tensors.
  • training – Boolean or boolean scalar tensor, indicating whether to run the Network in training mode or inference mode.
  • mask

    A mask or list of masks. A mask can be either a boolean tensor or None (no mask). For more details, check the guide

Returns:

A tensor if there is a single output, or a list of tensors if there are more than one outputs.

deepxde.nn.tensorflow.fnn module

class deepxde.nn.tensorflow.fnn.FNN(layer_sizes, activation, kernel_initializer, regularization=None, dropout_rate=0)[source]

Bases: deepxde.nn.tensorflow.nn.NN

Fully-connected neural network.

call(inputs, training=False)[source]

Calls the model on new inputs and returns the outputs as tensors.

In this case call() just reapplies all ops in the graph to the new inputs (e.g. build a new computational graph from the provided inputs).

Note: This method should not be called directly. It is only meant to be overridden when subclassing tf.keras.Model. To call a model on an input, always use the __call__() method, i.e. model(inputs), which relies on the underlying call() method.

Parameters:
  • inputs – Input tensor, or dict/list/tuple of input tensors.
  • training – Boolean or boolean scalar tensor, indicating whether to run the Network in training mode or inference mode.
  • mask

    A mask or list of masks. A mask can be either a boolean tensor or None (no mask). For more details, check the guide

Returns:

A tensor if there is a single output, or a list of tensors if there are more than one outputs.

class deepxde.nn.tensorflow.fnn.PFNN(layer_sizes, activation, kernel_initializer, regularization=None)[source]

Bases: deepxde.nn.tensorflow.nn.NN

Parallel fully-connected neural network that uses independent sub-networks for each network output.

Parameters:layer_sizes – A nested list to define the architecture of the neural network (how the layers are connected). If layer_sizes[i] is int, it represent one layer shared by all the outputs; if layer_sizes[i] is list, it represent len(layer_sizes[i]) sub-layers, each of which exclusively used by one output. Note that len(layer_sizes[i]) should equal to the number of outputs. Every number specify the number of neurons of that layer.
call(inputs, training=False)[source]

Calls the model on new inputs and returns the outputs as tensors.

In this case call() just reapplies all ops in the graph to the new inputs (e.g. build a new computational graph from the provided inputs).

Note: This method should not be called directly. It is only meant to be overridden when subclassing tf.keras.Model. To call a model on an input, always use the __call__() method, i.e. model(inputs), which relies on the underlying call() method.

Parameters:
  • inputs – Input tensor, or dict/list/tuple of input tensors.
  • training – Boolean or boolean scalar tensor, indicating whether to run the Network in training mode or inference mode.
  • mask

    A mask or list of masks. A mask can be either a boolean tensor or None (no mask). For more details, check the guide

Returns:

A tensor if there is a single output, or a list of tensors if there are more than one outputs.

deepxde.nn.tensorflow.nn module

class deepxde.nn.tensorflow.nn.NN[source]

Bases: keras.engine.training.Model

Base class for all neural network modules.

apply_feature_transform(transform)[source]

Compute the features by appling a transform to the network inputs, i.e., features = transform(inputs). Then, outputs = network(features).

apply_output_transform(transform)[source]

Apply a transform to the network outputs, i.e., outputs = transform(inputs, outputs).

auxiliary_vars

Any additional variables needed.

Type:Tensors
num_trainable_parameters()[source]

Evaluate the number of trainable parameters for the NN.