pub struct BinaryBackwardArgs<'a, T: Element, const N: usize> {
pub dy: TensorRef<'a, T, N>,
pub a: Option<TensorRef<'a, T, N>>,
pub b: Option<TensorRef<'a, T, N>>,
pub da: TensorMut<'a, T, N>,
pub db: TensorMut<'a, T, N>,
}Expand description
Args bundle for a binary backward launch.
a and b are SAVED forward inputs — required by Mul, Div,
Maximum, Minimum (gradient formula references them) but unused
by Add / Sub. The dispatcher checks that ops needing saves have
them supplied.
Fields§
§dy: TensorRef<'a, T, N>Upstream gradient (input to backward).
a: Option<TensorRef<'a, T, N>>Saved forward input a. Required by Mul / Div; ignored otherwise.
b: Option<TensorRef<'a, T, N>>Saved forward input b. Required by Mul / Div; ignored otherwise.
da: TensorMut<'a, T, N>Gradient w.r.t. a.
db: TensorMut<'a, T, N>Gradient w.r.t. b.
Auto Trait Implementations§
impl<'a, T, const N: usize> !UnwindSafe for BinaryBackwardArgs<'a, T, N>
impl<'a, T, const N: usize> Freeze for BinaryBackwardArgs<'a, T, N>
impl<'a, T, const N: usize> RefUnwindSafe for BinaryBackwardArgs<'a, T, N>where
T: RefUnwindSafe,
impl<'a, T, const N: usize> Send for BinaryBackwardArgs<'a, T, N>
impl<'a, T, const N: usize> Sync for BinaryBackwardArgs<'a, T, N>where
T: Sync,
impl<'a, T, const N: usize> Unpin for BinaryBackwardArgs<'a, T, N>
impl<'a, T, const N: usize> UnsafeUnpin for BinaryBackwardArgs<'a, T, N>
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