PODDeepONet

Contents

PODDeepONet#

class pinnx.nn.PODDeepONet(pod_basis, layer_sizes_branch, activation, kernel_initializer=KaimingUniform(mode=fan_in, nonlinearity=relu, unit=1), layer_sizes_trunk=None, regularization=None, input_transform=None, output_transform=None)[source]#

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 (Sequence[int]) – 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 (Union[str, Callable, Dict[str, str], Dict[str, Callable]]) – 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 (Sequence[int]) – 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.