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§
sourcefn leaky_traced(self) -> Self::Traced
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().
sourcefn traced(self, gradients: Gradients<E, D>) -> Self::Traced
fn traced(self, gradients: Gradients<E, D>) -> Self::Traced
Accumulates gradients into gradients
. Use crate::nn::ZeroGrads::alloc_grads()
to create gradients.
Provided Methods§
sourcefn leaky_trace(&self) -> Self::Traced
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().
sourcefn trace(&self, gradients: Gradients<E, D>) -> Self::Traced
fn trace(&self, gradients: Gradients<E, D>) -> Self::Traced
Accumulates gradients into gradients
, clones self. Use crate::nn::ZeroGrads::alloc_grads()
to create gradients.