Struct AutodiffDevice
pub struct AutodiffDevice { /* private fields */ }Expand description
A wrapper that enables automatic differentiation for a DispatchDevice.
Use DispatchDevice::autodiff to construct this type.
Implementations§
§impl AutodiffDevice
impl AutodiffDevice
pub fn inner(self) -> DispatchDevice
pub fn inner(self) -> DispatchDevice
Returns the underlying device, removing the autodiff capability.
pub fn gradient_checkpointing_strategy(&self) -> GradientCheckpointingStrategy
pub fn gradient_checkpointing_strategy(&self) -> GradientCheckpointingStrategy
Returns the gradient checkpointing strategy.
Trait Implementations§
§impl Clone for AutodiffDevice
impl Clone for AutodiffDevice
§fn clone(&self) -> AutodiffDevice
fn clone(&self) -> AutodiffDevice
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl Debug for AutodiffDevice
impl Debug for AutodiffDevice
§impl Deref for AutodiffDevice
Available on crate feature autodiff only.
impl Deref for AutodiffDevice
Available on crate feature
autodiff only.§type Target = DispatchDevice
type Target = DispatchDevice
The resulting type after dereferencing.
§fn deref(&self) -> &<AutodiffDevice as Deref>::Target
fn deref(&self) -> &<AutodiffDevice as Deref>::Target
Dereferences the value.
impl Eq for AutodiffDevice
Available on crate feature
autodiff only.§impl PartialEq for AutodiffDevice
Available on crate feature autodiff only.Compares on hardware identity only, ignoring the checkpointing strategy, so that this agrees
with DispatchDevice’s own PartialEq — which has to ignore it, since comparing an
Autodiff device against a raw one has no strategy to compare against. A derived impl would
make Autodiff(a) == Autodiff(b) disagree with DispatchDevice::Autodiff(a) == DispatchDevice::Autodiff(b).
impl PartialEq for AutodiffDevice
Available on crate feature
autodiff only.Compares on hardware identity only, ignoring the checkpointing strategy, so that this agrees
with DispatchDevice’s own PartialEq — which has to ignore it, since comparing an
Autodiff device against a raw one has no strategy to compare against. A derived impl would
make Autodiff(a) == Autodiff(b) disagree with DispatchDevice::Autodiff(a) == DispatchDevice::Autodiff(b).
Use gradient_checkpointing_strategy when the
strategy is what you actually need to compare.
Auto Trait Implementations§
impl Freeze for AutodiffDevice
impl RefUnwindSafe for AutodiffDevice
impl Send for AutodiffDevice
impl Sync for AutodiffDevice
impl Unpin for AutodiffDevice
impl UnsafeUnpin for AutodiffDevice
impl UnwindSafe for AutodiffDevice
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<K, Q> Comparable<Q> for K
impl<K, Q> Comparable<Q> for K
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
Compare self to
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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