TensorBlock#
- 
using metatensor_torch::TorchTensorBlock = torch::intrusive_ptr<TensorBlockHolder>#
- TorchScript will always manipulate - TensorBlockHolderthrough a- torch::intrusive_ptr
- 
class TensorBlockHolder : public CustomClassHolder#
- Wrapper around - metatensor::TensorBlockfor integration with TorchScript- Python/TorchScript code will typically manipulate - torch::intrusive_ptr<TensorBlockHolder>(i.e.- TorchTensorBlock) instead of instances of- TensorBlockHolder.- Public Functions - 
TensorBlockHolder(torch::Tensor data, TorchLabels samples, std::vector<TorchLabels> components, TorchLabels properties)#
- Create a new TensorBlockHolder with the given data and metadata. 
 - 
TensorBlockHolder(metatensor::TensorBlock block, torch::IValue parent)#
- Create a torch TensorBlockHolder from a pre-existing - metatensor::TensorBlock.- If the block is a view inside another - TorchTensorBlockor- TorchTensorMap, then- parentshould point to the corresponding object, making sure a reference to it is kept around.
 - 
TorchTensorBlock copy() const#
- Make a copy of this - TensorBlockHolder, including all the data contained inside
 - 
TorchTensorBlock to(torch::Device device)#
- Return a new TorchTensorBlock where all blocks and relative labels are on the requested - device.
 - 
torch::Tensor values()#
- Get a view in the values in this block. 
 - 
TorchLabels labels(uintptr_t axis) const#
- Get the labels in this block associated with either - "values"or one gradient (by setting- values_gradientsto the gradient parameter); in the given- axis.
 - 
inline TorchLabels samples() const#
- Access the sample - Labelsfor this block.- The entries in these labels describe the first dimension of the - values()array.
 - 
inline std::vector<TorchLabels> components() const#
- Access the component - Labelsfor this block.- The entries in these labels describe intermediate dimensions of the - values()array.
 - 
inline TorchLabels properties() const#
- Access the property - Labelsfor this block.- The entries in these labels describe the last dimension of the - values()array. The properties are guaranteed to be the same for values and gradients in the same block.
 - 
void add_gradient(const std::string ¶meter, TorchTensorBlock gradient)#
- Add a set of gradients with respect to - parametersin this block.- Parameters:
- parameter – add gradients with respect to this - parameter(e.g.- "positions",- "cell", …)
- gradient – a - TorchTensorBlockwhose values contain the gradients with respect to the- parameter. The labels of the gradient- TorchTensorBlockshould be organized as follows: its- samplesmust contain- "sample"as the first label, which establishes a correspondence with the- samplesof the original- TorchTensorBlock; its components must contain at least the same components as the original- TorchTensorBlock, with any additional component coming before those; its properties must match those of the original- TorchTensorBlock.
 
 
 - 
inline std::vector<std::string> gradients_list() const#
- Get a list of all gradients defined in this block. 
 - 
bool has_gradient(const std::string ¶meter) const#
- Check if a given gradient is defined in this TensorBlock. 
 - 
std::string repr() const#
- Implementation of repr/__str__ for Python. 
 - 
inline const metatensor::TensorBlock &as_metatensor() const#
- Get the underlying metatensor TensorBlock. 
 - Public Static Functions - 
static TorchTensorBlock gradient(TorchTensorBlock self, const std::string ¶meter)#
- Get a gradient from this TensorBlock. 
 - 
static std::vector<std::tuple<std::string, TorchTensorBlock>> gradients(TorchTensorBlock self)#
- Get a all gradients and associated parameters in this block. 
 
- 
TensorBlockHolder(torch::Tensor data, TorchLabels samples, std::vector<TorchLabels> components, TorchLabels properties)#