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!
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