Changelog¶
All notable changes to metatensor-torch are documented here, following the keep a changelog format. This project follows Semantic Versioning.
Unreleased¶
Changed¶
Custom data stored in
System
is now stored asTensorMap
instead ofTensorBlock
. This allow for more kinds of data to be stored.System
can now be serialized and saved to a file usingmetatensor.torch.atomistic.save
andmetatensor.torch.atomistic.load_system
. For the initial implementation, these functions are only accessible from Python.
Version 0.6.3 - 2024-12-11¶
Fixed¶
Fixed an issue with Python wheels building, where the underlying C++ library would get a different version from the Python library and fail to load.
Version 0.6.2 - 2024-12-11¶
Fixed¶
Selecting from empty
Labels
no longer fails (#792)Models are exported with
requires_grad=False
for all parameters, which should make them faster when using autograd to compute forces and stress (#802)
Version 0.6.1 - 2024-11-7¶
Fixed¶
Added missing data to
NeighborListOptions
serialization (#784)
Changed¶
load_atomistic_model
now returns aMetatensorAtomisticMode
instead of a raw TorchScript model. This allows to reload, modify and re-export a model (#783).
Version 0.6.0 - 2024-10-29¶
Added¶
a
is_atomistic_model
(Python only) function to check if an loaded module is an metatensor atomistic model (#697, #766)
Changed¶
the
System
class now supports boundary conditions along some axes but not others. This is implemented via a newpbc
attribute. Any non-periodic dimension in aSystem
must have the corresponding cell vector set to zero.NeighborListOptions
can now requeststrict
or non-strict neighbor lists (#770)
Version 0.5.5 - 2024-09-03¶
Added¶
a
"features"
standard output for atomistic models (#718)
Fixed¶
the Python wheels request the right versions of torch in their metadata (#724)
Version 0.5.4 - 2024-08-28¶
Added¶
read_model_metadata
to load only theModelMetadata
from an exported atomistic model without having to load the whole model.Users can now store arbitrary additional metadata in
ModelMetadata.extra
Added
Labels.select
function to sub-select entries in labelsAdded support for serialization of TensorBlock with
TensorBlock::load
,TensorBlock::load_buffer
,TensorBlock::save
,TensorBlock::save_buffer
and the corresponding functions inmetatensor.torch
.
Version 0.5.3 - 2024-07-15¶
Changed¶
MetatensorAtomisticModel.save()
always saves models on the CPU.We now require Python >= 3.9
Fixed¶
Fixed a memory leak in
register_autograd_neighbors
(#684)
Version 0.5.2 - 2024-06-21¶
Added¶
MetatensorAtomisticModel.save()
to save a wrapped model to a file.TensorBlock.__len__
andTensorBlock.shape
, which return the length and shape of the values in the block respectively (#640)metatensor.torch.atomistic.ase_calculator.MetatensorCalculator
can now usevesin
for faster neighbor list calculations (#659)When running atomistic models in the PyTorch profiler, different sections of the code now have meaningful names
Deprecated¶
MetatensorAtomisticModel.export()
is deprecated in favor ofMetatensorAtomisticModel.save()
Fixed¶
metatensor.torch.atomistic.ase_calculator.MetatensorCalculator
uses the right device when computing stress/virial (#660)
Version 0.5.1 - 2024-05-14¶
Added¶
preprocessor macros containing the version number of metatensor-torch:
METATENSOR_TORCH_VERSION
,METATENSOR_TORCH_VERSION_MAJOR
,METATENSOR_TORCH_VERSION_MINOR
, andMETATENSOR_TORCH_VERSION_PATCH
.
Version 0.5.0 - 2024-05-02¶
Changed¶
We renamed
neighbors_list
toneighbor_list
in all functions (#587)
metatensor-torch Python¶
Changed¶
The neighbor lists calculation in
MetatensorCalculator
(ASE calculator based on metatensor models) is now a lot faster (#586)Multiple small improvements related to custom TorchScript extensions (#584)
There are reference output for neighbor list calculations, which should help writing interfaces to metatensor models in new simulation engines (#588)
The wheels for
metatensor-torch
on PyPI now declare which versions of torch they are compatible with (#592)
Version 0.4.0 - 2024-04-11¶
metatensor-torch C++¶
Added¶
ModelCapabilities::dtype
, used by the model to communicate the dtype it wants to use for inputs and outputs.The
load_model_extensions()
function to facilitate loading a model using TorchScript extensions.
Changed¶
System::add_data
now has anoverride
parameter to replace custom data with a new value.
metatensor-torch Python¶
Changed¶
We now release wheels compatible with multiple torch versions on PyPI, removing the need to compile C++ code when installing this package.
Added¶
ModelCapabilities.dtype
, used by the model to communicate the dtype it wants to use for inputs and outputs.The
device
that should be used by a model inside the ASE’sMetatensorCalculator
can now be specified by the user.The
load_model_extensions()
andload_atomistic_model
functions to facilitate loading a model using TorchScript extensions
Version 0.3.0 - 2024-03-01¶
metatensor-torch C++¶
Added¶
ModelMetadata
to record metadata about a specific model such as it’s name, authors, etc.Added
interaction_range
andsupported_devices
toModelCapabilities
Changed¶
System::species
has been renamed toSystem::types
.
metatensor-torch Python¶
Added¶
ModelMetadata
to record metadata about a specific model such as it’s name, authors, etc.Added
interaction_range
andsupported_devices
toModelCapabilities
Changed¶
System.species
has been renamed toSystem.types
.
Version 0.2.1 - 2024-01-26¶
metatensor-torch C++¶
Added¶
Offer serialization functionality as member functions (i.e.
TensorMap::load
) in addition to the existing free standing functions (i.e.metatensor_torch::load
) (#453)In-memory serialization with
TensorMap::save_buffer
,TensorMap::load_buffer
, and the respective free standing functions (#455)Serialization of Labels, with the same API as
TensorMap
(#455)
metatensor-torch Python¶
Added¶
Offer serialization functionality as member functions (i.e.
TensorMap.load
) in addition to the existing free standing functions (i.e.metatensor.torch.load
) (#453)In-memory serialization with
TensorMap.save_buffer
,TensorMap.load_buffer
, and the respective free standing functions (#455)Serialization of Labels, with the same API as
TensorMap
(#455)
Version 0.2.0 - 2024-01-08¶
metatensor-torch C++¶
Added¶
New classes specifically tailored for atomistic models (#405):
System
defines the input of a model;NeighborsListOptions
allow a model to request a specific neighbors list;ModelRunOptions
,ModelOutput
andModelCapabilities
allow to statically describe capabilities of a model, and request specific outputs from it.
TensorBlock::to
,TensorMap::to
, andSystem::to
to change the device or dtype of torch Tensor stored by metatensorLabels::device
,TensorBlock::device
andTensorMap::device
; as well asTensorMap::scalar_type
, andTensorBlock::scalar_type
to query the current device and scalar type/dtype used by the data.metatensor_torch::version
function, returning the version of the code as a string.
Fixed¶
We now check that all tensors in a
TensorBlock
/TensorMap
have the same dtype and device (#414)keys_to_properties
,keys_to_samples
andcomponents_to_properties
now keep the different Labels on the same device (#411)
metatensor-torch Python¶
Added¶
New classes specifically tailored for atomistic models (#405):
same classes as the C++ interfaces, in
metatensor.torch.atomistic
MetatensorAtomisticModel
as a way to wrap user-definedtorch.nn.Module
and export them in a unified way, handling unit conversions and metadata checks.
ASE calculator based on
MetatensorAtomisticModel
inmetatensor.torch.atomistic.ase_calculator
. This allow using arbitrary user-defined models to run simulations with ASE.TensorBlock.to
,TensorMap.to
andSystem.to
to change the device or dtype of torch Tensor stored by metatensorLabels.device
,TensorBlock.device
andTensorMap.device
; as well asTensorMap.dtype
, andTensorBlock.dtype
to query the current device and dtype used by the data.
Version 0.1.0 - 2023-10-11¶
metatensor-torch C++¶
Added¶
TorchScript bindings to all metatensor-core class:
Labels
,LabelsEntry
,TensorBlock
, andTensorMap
;Implementation of
mts_array_t
/metatensor::DataArrayBase
fortorch::Tensor
;
metatensor-torch Python¶
Added¶
Expose TorchScript classes to Python;
Expose all functions from
metatensor-operations
as TorchScript compatible code;