NequIP is a code for building E(3)-equivariant interatomic potentials
Please note that this release includes a number of breaking changes from 0.5.6. It also corresponds to the develop
branch discussed in a number of recent Issues and Discussions.
GraphModel
top-level modulemodel_dtype
BATCH_PTR_KEY
in AtomicDataDict
AtomicInMemoryDataset.rdf()
and examples/rdf.py
type_to_chemical_symbol
nequip-evaluate --output-fields-from-original-dataset
dataset_*_absmax
statistics optionHDF5Dataset
(#227)include_file_as_baseline_config
for simple modifications of existing configsnequip-deploy --using-dataset
to support data-dependent deployment stepsstart_of_epoch_callbacks
nequip.train.callbacks.loss_schedule.SimpleLossSchedule
for changing the loss coefficients at specified epochsnequip-deploy build --checkpoint
and --override
to avoid many largely duplicated YAML filesNEQUIP_MATSCIPY_NL
environment variableseed
dataset_seed
to seed
if it is not explicitly providedsilu
(e
) and tanh
(o
)shuffle
option is unchanged)default_dtype
defaults to float64
(model_dtype
default float32
, allow_tf32: true
by default--- see https://arxiv.org/abs/2304.10061)nequip-benchmark
now only uses --n-data
frames to build the modelStressForceOutput
, not ForceOutput
edge_energy
to ALL_ENERGY_KEYS
subjecting it to global rescalewandb>=0.13.8
load_model_state
GPU -> CPUfixed_fields
machinery (npz_fixed_field_keys
is still supported, but through a more straightforward implementation)NequIP
, they must now always be provided explicitly_params
as an allowable subconfiguration suffix (i.e. instead of optimizer_params
now only optimizer_kwargs
is valid, not both)per_species_rescale_arguments_in_dataset_units
nequip-benchmark
and nequip-train
report number of weights and number of trainable weightsnequip-benchmark --no-compile
and --verbose
and --memory-summary
nequip-benchmark --pdb
for debugging model (builder) errorsnequip-deploy info
--equivariance-test
now prints much more information, especially when there is a failure.egg
(#264)EMTTestDataset
for quick synthetic fake PBC datanequip-benchmark
times dataset loading, model creation, and compilationvalidation_batch_size
functional
se3nn==0.5.0
--verbose
option to nequip-deploy
nequip-benchmark
normalized_sum
reduction in AtomwiseReduce
node_features
->h
in loss titlesNequIPCalculator
now stores all relevant properties computed by the model regardless of requested properties
, and does not try to access those not computed by the model, allowing models that only compute energy or forces but not bothreport_init_validation
now runs on validation set instead of training setos.sched_getaffinity
on some systemsnequip-benchmark
now picks data frames deterministicallymetrics_key: training_*
with report_init_validation: True
(#213)NequIPCalculator
now handles per-atom energiesinitial_model_state_strict
YAML optionload_model_state
buildercumulative_wall
for early stoppingnequip-deploy build
now requires --train-dir
option when specifying the training sessionDataset.statistics
when field is missingNequIPCalculator
now outputs energy as scalar rather than (1, 1)
arraydataset: ase
now treats automatically adds key_mapping
keys to include_keys
, which is consistant with the npz datasetper_species_rescale_scales/shifts
set to null
/None
-n 0
in nequip-benchmark
nequip-evaluate --repeat
optionreport_init_validation
is now True
all_*_*
metrics rename to -> psavg_*_*
avg_num_neighbors
default None
-> auto
l_max
, parity
, and num_features
wandb.watch
via wandb_watch
optionnequip-evaluate
now sets a default r_max
taken from the model for the dataset configAtomicData.to_ase
supports arbitrary fieldsnequip-evaluate
can now output arbitrary fields to an XYZ filenequip-evaluate
reports which frame in the original dataset was used as input for each output frameminimal.yaml
, minimal_eng.yaml
, and example.yaml
now use the simplified irreps options l_max
, parity
, and num_features
resnet
is now False
per_species_shifts
/scales
being null
when the other is a dataset statistcinclude_frames
now works with ASE datasetsnequip-evaluate
compile_model
NequIPCalculator
can now be built via a nequip_calculator()
function. This adds a minimal compatibility with vibes
avg_num_neighbors: auto
optionNEQUIP_ASYNC_IO=true
.dataset_seed
to separately control randomness used to select training data (and their order).chemical_symbols
option--equivariance-test n
tests equivariance on n
frames from the training datasetseed
and dataset_seed
in example YAMLsPerSpeciesScaleShift
now correctly outputs when scales, but not shifts, are enabled— previously it was broken and would only output updated values when both were enabled.nequip-evaluate
outputs correct species to the extxyz
file when a chemical symbol <-> type mapping exists for the test datasetTensorProduct
s; this change should not affect typical NequIP networksload_deployed_model
respects global JIT settingse3nn
's soft_one_hot_linspace
as radial basesdataloader_num_workers
nequip-benchmark
script for benchmarking and profiling modelsnpz_keys
to include_keys
graph_fields
, node_fields
, and edge_fields
via yamldataset_energy_std
/dataset_energy_mean
to dataset_total_energy_*
nequip.dynamics
-> nequip.ase
use_sc
defaults to True
register_fields
is now in nequip.data
trainable_global_rescale_scale
to global_rescale_scale_trainble
trainable_global_rescale_shift
to global_rescale_shift_trainble
PerSpeciesScaleShift_
to per_species_rescale
metrics_key
from loss
to validation_loss
. The old default loss
will no longer be accepted.per_species_rescale_trainable
to per_species_rescale_scales_trainable
and per_species_rescale_shifts_trainable
nequip-evaluate
allowed_species
--update-config
; start a new training and load old state insteadpytorch_geometric
nequip-train
no longer prints the full config, which can be found in the training dir as config.yaml
.nequip.datasets.AspirinDataset
& nequip.datasets.WaterDataset
pytorch_scatter
to_ase
method in AtomicData.py
to convert AtomicData
object to (list of) ase.Atoms
object(s)SequentialGraphNetwork
now has insertion methodsnn.SaveForOutput
nequip-evaluate
command for evaluating (metrics on) trained modelsAtomicData.from_ase
now catches energy
/energies
arrayse
and o
instead of 1
and -1
torch_geometric
1.7.1 and e3nn
0.3.3nonlinearity_scalars
now also affects the nonlinearity used in the radial net of InteractionBlock
Final
backport for <3.8 compatabilitynequip-*
commands when using pip install
atomic_save