pub struct TensorBlock { /* private fields */ }Expand description
A single block, containing both values & optionally gradients of these values w.r.t. any relevant quantity.
Implementations§
Source§impl TensorBlock
impl TensorBlock
Sourcepub unsafe fn from_raw(ptr: *mut mts_block_t) -> TensorBlock
pub unsafe fn from_raw(ptr: *mut mts_block_t) -> TensorBlock
Sourcepub fn into_raw(block: TensorBlock) -> *mut mts_block_t
pub fn into_raw(block: TensorBlock) -> *mut mts_block_t
Extract the underlying raw pointer.
The pointer should be passed back to TensorBlock::from_raw or
[crate::c_api::mts_block_free] to release the memory corresponding
to this TensorBlock.
Sourcepub fn as_ptr(&self) -> *const mts_block_t
pub fn as_ptr(&self) -> *const mts_block_t
Get the underlying raw pointer.
After a call, this TensorBlock is still managing the corresponding
memory. To fully release the pointer, use TensorBlock::into_raw.
Sourcepub fn as_mut_ptr(&mut self) -> *mut mts_block_t
pub fn as_mut_ptr(&mut self) -> *mut mts_block_t
Get the underlying (mutable) raw pointer
After a call, this TensorBlock is still managing the corresponding
memory. To fully release the pointer, use TensorBlock::into_raw.
Sourcepub fn as_ref(&self) -> TensorBlockRef<'_>
pub fn as_ref(&self) -> TensorBlockRef<'_>
Get a non mutable reference to this block
Sourcepub fn as_ref_mut(&mut self) -> TensorBlockRefMut<'_>
pub fn as_ref_mut(&mut self) -> TensorBlockRefMut<'_>
Get a non mutable reference to this block
Sourcepub fn device(&self) -> Result<DLDevice, Error>
pub fn device(&self) -> Result<DLDevice, Error>
Get the device on which the values of this block are stored.
Sourcepub fn dtype(&self) -> Result<DLDataType, Error>
pub fn dtype(&self) -> Result<DLDataType, Error>
Get the data type of the values of this block.
Sourcepub fn components(&self) -> Vec<Labels>
pub fn components(&self) -> Vec<Labels>
Get the components for this block
Sourcepub fn properties(&self) -> Labels
pub fn properties(&self) -> Labels
Get the properties for this block
Sourcepub fn new(
values: impl Into<MtsArray>,
samples: &Labels,
components: &[Labels],
properties: &Labels,
) -> Result<TensorBlock, Error>
pub fn new( values: impl Into<MtsArray>, samples: &Labels, components: &[Labels], properties: &Labels, ) -> Result<TensorBlock, Error>
Create a new TensorBlock containing the given data, described by the
samples, components, and properties labels. The block is
initialized without any gradients.
Sourcepub fn add_gradient(
&mut self,
parameter: &str,
gradient: TensorBlock,
) -> Result<(), Error>
pub fn add_gradient( &mut self, parameter: &str, gradient: TensorBlock, ) -> Result<(), Error>
Add a gradient with respect to parameter to this block.
The property of the gradient should match the ones of this block. The components of the gradients must contain at least the same entries as the value components, and can prepend other components.
Sourcepub fn load(path: impl AsRef<Path>) -> Result<TensorBlock, Error>
pub fn load(path: impl AsRef<Path>) -> Result<TensorBlock, Error>
Load a TensorBlock from the file at path
This is a convenience function calling crate::io::load_block
Sourcepub fn load_buffer(buffer: &[u8]) -> Result<TensorBlock, Error>
pub fn load_buffer(buffer: &[u8]) -> Result<TensorBlock, Error>
Load a TensorBlock from an in-memory buffer
This is a convenience function calling crate::io::load_block_buffer
Sourcepub fn save(&self, path: impl AsRef<Path>) -> Result<(), Error>
pub fn save(&self, path: impl AsRef<Path>) -> Result<(), Error>
Save the given block to the file at path
This is a convenience function calling crate::io::save_block
Sourcepub fn save_buffer(&self, buffer: &mut Vec<u8>) -> Result<(), Error>
pub fn save_buffer(&self, buffer: &mut Vec<u8>) -> Result<(), Error>
Save the given block to an in-memory buffer
This is a convenience function calling crate::io::save_block_buffer