hippynn Features

Modular set of pytorch layers for atomistic operations

  • Atomistic operations can be tricky to write in native pytorch. Most operations provided here support linear-scaling models.

  • Model energy, force charge & charge moments, bond orders, and more!

  • nn.Modules are written with minimal reference to the rest of the library; if you want to use them in your scripts without using the rest of the features provided here – no problem!

API documentation for layers and networks

Graph level API for simple and flexible construction of models from pytorch components.

  • Build models based on the abstract physics/mathematics of the problem, without having to think about implementation details.

  • Graph nodes support native python syntax, for example different forms of loss can be directly added.

  • Link predicted values in the model with a database entry to compare predicted and true values

  • IndexType logic records metadata about tensor structure, and provides automatic conversion to compatible structures when possible.

  • Graph API is independent of module implementation.

API documentation for graphs

For more information on nodes and graphs, see the graph exploration ipython notebook which can also be found in the example files.

Plot level API for tracking your training.

  • Using the graph API, define quantities to evaluate before, during, or after training as figures using matplotlib.

API documentation for plotting

Training & Experiment API

  • Integrated with graph level API

  • Pretty-printing loss metrics, generating plots periodically

  • Callbacks and checkpointing

API documentation for experiment

Custom Kernels for fast execution

  • Certain operations are not efficiently written in pure pytorch, we provide alternative implementations.

  • These are directly linked in with pytorch Autograd – use them like native pytorch functions.

  • These provide advantages in memory footprint and speed

  • Includes CPU and GPU execution for custom kernels

More information at this page

Interfaces

  • ASE: Define ase calculators based on the graph-level API.

  • PYSEQM: Use pyseqm calculations as nodes in a graph.

  • LAMMPS: Create a file for use as a pair style mliap object.

API documentation for interfaces