Skip to main content

The hippynn python package - a modular library for atomistic machine learning with pytorch

Project description

We aim to provide a powerful library for the training of atomistic (or physical point-cloud) machine learning. We want entry-level users to be able to efficiently train models to millions of datapoints, and a modular structure for extensions and contribution.

While hippynn’s development so-far has centered around the HIP-NN architecture, don’t let that discourage you if you are performing research with another model. Get in touch, and let’s work together to provide a high-quality implementation of your work, either as a contribution or an interface extension to your own package.

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.

Plot level API for tracking your training.

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

Training & Experiment API

  • Integrated with graph level API

  • Pretty-printing loss metrics, generating plots periodically

  • Callbacks and checkpointing

Custom Kernels for fast execution

  • Certain operations are not efficiently written in pure pytorch, we provide alternative implementations with numba and cupy

  • 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

Interfaces to other codes

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

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

  • LAMMPS: Use models from hippynn in LAMMPS via the MLIAP Unified interface.

Installation Instructions

We recommend installation from source, although you can also get hippynn from conda and pypi, see below. A base installation of hippynn only requires pytorch (installation instructions) and numpy (installation instructions). We recommend you install these first using your package manager of choice, then proceed to install hippynn.

Install hippynn from source:

For detailed instructions, see the documentation section on installation.

Clone the hippynn repository and navigate into it, e.g.:

$ git clone https://github.com/lanl/hippynn.git
$ cd hippynn
$ pip install -e .

The -e specifies an editable install, that is, python will import hippynn from the current directory, which will allow you to tinker with hippynn if you so choose.

If numpy and pytorch are not currently installed, this command will install them using pip.

Once hippynn is installed, you can proceed to add optional packages as needed for various extended functionality.

Documentation

Please see https://lanl.github.io/hippynn/ for the latest documentation. You can also build the documentation locally, see /docs/README.txt

Other things

We are currently under development. At the moment you should be prepared for breaking changes – keep track of what version you are using if you need to maintain consistency.

As we clean up the rough edges, we are preparing a manuscript. If, in the mean time, you are using hippynn in your work, please cite this repository and the HIP-NN paper:

Lubbers, N., Smith, J. S., & Barros, K. (2018). Hierarchical modeling of molecular energies using a deep neural network. The Journal of chemical physics, 148(24), 241715.

See AUTHORS.txt for information on authors.

See LICENSE.txt for licensing information. hippynn is licensed under the BSD-3 license. See COPYRIGHT.txt for copyright information.

Triad National Security, LLC (Triad) owns the copyright to hippynn, which it identifies as project number LA-CC-19-093.

Copyright 2019. Triad National Security, LLC. All rights reserved. This program was produced under U.S. Government contract 89233218CNA000001 for Los Alamos National Laboratory (LANL), which is operated by Triad National Security, LLC for the U.S. Department of Energy/National Nuclear Security Administration. All rights in the program are reserved by Triad National Security, LLC, and the U.S. Department of Energy/National Nuclear Security Administration. The Government is granted for itself and others acting on its behalf a nonexclusive, paid-up, irrevocable worldwide license in this material to reproduce, prepare derivative works, distribute copies to the public, perform publicly and display publicly, and to permit others to do so.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hippynn-0.1.3.tar.gz (225.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hippynn-0.1.3-py3-none-any.whl (256.0 kB view details)

Uploaded Python 3

File details

Details for the file hippynn-0.1.3.tar.gz.

File metadata

  • Download URL: hippynn-0.1.3.tar.gz
  • Upload date:
  • Size: 225.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hippynn-0.1.3.tar.gz
Algorithm Hash digest
SHA256 87e10de2e0db01280ac9001720e5c2e4feeed6f3487f98763af2c2126e1bcd4a
MD5 47ef39d2a5e596fc92c4ebc007c7725e
BLAKE2b-256 a58013840fe366599d1f0f0f561233216e08a122be0ae916bd8f25ea128c3e54

See more details on using hashes here.

Provenance

The following attestation bundles were made for hippynn-0.1.3.tar.gz:

Publisher: deploy.yml on lanl/hippynn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hippynn-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: hippynn-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 256.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hippynn-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d3b277ae1fd685bde2fc4ea514e6fc90de71267980c8f269f447444d8db7b654
MD5 a8d3563362645290c31a6ad862d7c276
BLAKE2b-256 22bbc06f47ddb4f1dbd1ecd2d2b7a7a8bf31713c618472ba5e7473faf7dcd136

See more details on using hashes here.

Provenance

The following attestation bundles were made for hippynn-0.1.3-py3-none-any.whl:

Publisher: deploy.yml on lanl/hippynn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page