Trait dfdx::tensor::Trace

source ·
pub trait Trace<E, D: Storage<E>>: Clone {
    type Traced;

    // Required methods
    fn leaky_traced(self) -> Self::Traced;
    fn traced(self, gradients: Gradients<E, D>) -> Self::Traced;

    // Provided methods
    fn leaky_trace(&self) -> Self::Traced { ... }
    fn trace(&self, gradients: Gradients<E, D>) -> Self::Traced { ... }
}
Expand description

Something that can trace gradients

Required Associated Types§

Required Methods§

source

fn leaky_traced(self) -> Self::Traced

Start tracking gradients. The gradients will never free temporary gradients - See Gradients::leaky() for more info.

Prefer to use Tensor::traced() with gradients allocated with crate::nn::ZeroGrads::alloc_grads().

source

fn traced(self, gradients: Gradients<E, D>) -> Self::Traced

Accumulates gradients into gradients. Use crate::nn::ZeroGrads::alloc_grads() to create gradients.

Provided Methods§

source

fn leaky_trace(&self) -> Self::Traced

Start tracking gradients, clones self. The gradients will never free temporary gradients - See Gradients::leaky() for more info.

Prefer to use Tensor::trace() with gradients allocated with crate::nn::ZeroGrads::alloc_grads().

source

fn trace(&self, gradients: Gradients<E, D>) -> Self::Traced

Accumulates gradients into gradients, clones self. Use crate::nn::ZeroGrads::alloc_grads() to create gradients.

Implementors§

source§

impl<S: Shape, E: Unit, F: Unit, D: Storage<F> + Storage<E>> Trace<E, D> for Tensor<S, F, D, NoneTape>

§

type Traced = Tensor<S, F, D, OwnedTape<E, D>>