Using PiNN

Below is a brief introduction of what is implemented in PiNN. In short, the two core components of PiNN are the networks - machine learning models that generates prediction from atomic structures; and models which interprets those predictions for different tasks.

Networks

Atomic neural networks (ANN) in PiNN are written in Keras. The "networks" are Keras Models which takes atomic structures as input and outputs atomic predictions. Layers are components of Models or networks.

pinn.layers contains reusable operations in bulding ANNs, e.g. calculation of neighboring lists, or radial basis functions. pinn.networks contains ANN implementations. Since PiNN networks are essentially Keras Models, they are ready for simple regression tasks, see an example here.

Models

In addition to layers and networks, PiNN implement several models. PiNN models interpret the output of ANNs as physical quantities, e.g. atomic energies. Those models enables the training of quantities derives from the atomic predictions, like forces (from energy) and dipole moments (from partial charges).

PiNN models are implemented as TensorFlow estimators. models are also responsible for interfacing with external libraries like ASE to run simulations. When training models it is recommended to use the CLI interface of PiNN.

What to read

Checkout quick start to get started. See the notebook examples for more examples. More details and available parameters can be found in tab Usage. To integrate PiNN with workflow, parameters of model and network can be set by using yaml format configuration file, and template can be found in their Usage page, respectly.

If you are interested in a specific application, e.g. fitting a machine-learned potential, read the available options of the potential model and network (likely PiNet2) you'd like to use.

« Previous
Next »