Skip to main content

TensorBlock

Struct TensorBlock 

Source
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

Source

pub unsafe fn from_raw(ptr: *mut mts_block_t) -> TensorBlock

Create a new TensorBlock from a raw pointer.

This function takes ownership of the pointer, and will call mts_block_free on it when the TensorBlock goes out of scope.

§Safety

The pointer must be non-null and point to a owned block, not a reference to a block from inside a TensorMap.

Source

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.

Source

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.

Source

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.

Source

pub fn as_ref(&self) -> TensorBlockRef<'_>

Get a non mutable reference to this block

Source

pub fn as_ref_mut(&mut self) -> TensorBlockRefMut<'_>

Get a non mutable reference to this block

Source

pub fn device(&self) -> Result<DLDevice, Error>

Get the device on which the values of this block are stored.

Source

pub fn dtype(&self) -> Result<DLDataType, Error>

Get the data type of the values of this block.

Source

pub fn values(&self) -> ArrayRef<'_>

Get the array for the values in this block

Source

pub fn samples(&self) -> Labels

Get the samples for this block

Source

pub fn components(&self) -> Vec<Labels>

Get the components for this block

Source

pub fn properties(&self) -> Labels

Get the properties for this block

Source

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.

Source

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.

Source

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

Source

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

Source

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

Source

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

Trait Implementations§

Source§

impl Debug for TensorBlock

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for TensorBlock

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Send for TensorBlock

Source§

impl Sync for TensorBlock

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.