Skip to main content

GradStore

Struct GradStore 

Source
pub struct GradStore(/* private fields */);
Expand description

A store for gradients, associating a tensor id to the corresponding gradient tensor, used for back propagation.

Implementations§

Source§

impl GradStore

Source

pub fn get_id(&self, id: TensorId) -> Option<&Tensor>

Get the gradient tensor corresponding to the given tensor id

Source

pub fn get(&self, tensor: &Tensor) -> Option<&Tensor>

Get the gradient tensor associated with the given tensor

Source

pub fn remove(&mut self, tensor: &Tensor) -> Option<Tensor>

Remove the gradient tensor associated with the given tensor, returning it if it exists

Source

pub fn insert(&mut self, tensor: &Tensor, grad: Tensor) -> Option<Tensor>

Insert a gradient tensor associated with the given tensor, returning the previous gradient tensor if it existed

Source

pub fn insert_id(&mut self, id: TensorId, grad: Tensor) -> Option<Tensor>

Insert a gradient tensor associated with the given tensor id, returning the previous gradient tensor if it existed

Source

pub fn extend(&mut self, other: Self) -> Result<()>

Extend this gradient store with the contents of another. If an entry is already occupied, updates and ensures new tensor follows correct detach semantics. Otherwise simply inserts.

Source

pub fn get_ids(&self) -> impl Iterator<Item = &TensorId>

Get the tensor ids of the stored gradient tensors

Trait Implementations§

Source§

impl Debug for GradStore

Source§

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

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

impl Default for GradStore

Source§

fn default() -> GradStore

Returns the “default value” for a type. Read more

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,