pub struct EagerValue<Op: GraphOp> {
pub key: GlobalValKey<Op>,
pub node: Option<Arc<GradNode<Op>>>,
pub requires_grad: bool,
pub data: Arc<Op::Operand>,
}Expand description
Eager frontend input descriptor for generic AD recording.
Downstream frontends execute the primal operation themselves, then pass one
EagerValue per concrete input to record_eager_op.
§Examples
ⓘ
let input = tidu::EagerValue {
key: tensor.key.clone(),
node: tensor.grad_node.clone(),
requires_grad: tensor.requires_grad,
data: tensor.data.clone(),
};Fields§
§key: GlobalValKey<Op>User-visible eager value key used for cotangent accumulation.
node: Option<Arc<GradNode<Op>>>Grad node that produced this value, or None for leaves.
requires_grad: boolWhether this value participates in reverse-mode propagation.
data: Arc<Op::Operand>Concrete primal data for saved forward replay.
Auto Trait Implementations§
impl<Op> Freeze for EagerValue<Op>
impl<Op> RefUnwindSafe for EagerValue<Op>where
<Op as GraphOp>::InputKey: RefUnwindSafe,
Op: RefUnwindSafe,
<Op as GraphOp>::Operand: RefUnwindSafe,
impl<Op> Send for EagerValue<Op>
impl<Op> Sync for EagerValue<Op>
impl<Op> Unpin for EagerValue<Op>
impl<Op> UnsafeUnpin for EagerValue<Op>where
<Op as GraphOp>::InputKey: UnsafeUnpin,
Op: UnsafeUnpin,
impl<Op> UnwindSafe for EagerValue<Op>where
<Op as GraphOp>::InputKey: UnwindSafe + RefUnwindSafe,
<Op as GraphOp>::Operand: RefUnwindSafe,
Op: UnwindSafe + RefUnwindSafe,
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