pub struct SequentialDecisionTraversal<'a, B, S, D, C, E>{ /* private fields */ }Expand description
Adapter that drives sequential decisions from shared layered traversal hooks.
Implementations§
Source§impl<'a, B, S, D, C, E> SequentialDecisionTraversal<'a, B, S, D, C, E>
impl<'a, B, S, D, C, E> SequentialDecisionTraversal<'a, B, S, D, C, E>
Sourcepub fn new(
driver: &'a mut SequentialDecisionDriver<B, S>,
boundary: &'a mut D,
) -> Self
pub fn new( driver: &'a mut SequentialDecisionDriver<B, S>, boundary: &'a mut D, ) -> Self
Couples a decision driver to one architecture-owned boundary mapping.
Trait Implementations§
Source§impl<NB, B, S, D, C, E> LayeredTraversalHook<NB, C, E> for SequentialDecisionTraversal<'_, B, S, D, C, E>where
NB: NeuralBackend,
B: SamplingBackend<Logits = NB::Tensor, Context = <NB::Tensor as Tensor>::Context>,
S: Sampler<B>,
D: SequentialDecisionBoundary<B, C, E>,
impl<NB, B, S, D, C, E> LayeredTraversalHook<NB, C, E> for SequentialDecisionTraversal<'_, B, S, D, C, E>where
NB: NeuralBackend,
B: SamplingBackend<Logits = NB::Tensor, Context = <NB::Tensor as Tensor>::Context>,
S: Sampler<B>,
D: SequentialDecisionBoundary<B, C, E>,
Source§fn before_unit(
&mut self,
group: usize,
index: usize,
remaining_units: usize,
_value: &mut NB::Tensor,
forward: &mut C,
context: &<NB::Tensor as Tensor>::Context,
) -> Result<LayeredUnitAction, E>
fn before_unit( &mut self, group: usize, index: usize, remaining_units: usize, _value: &mut NB::Tensor, forward: &mut C, context: &<NB::Tensor as Tensor>::Context, ) -> Result<LayeredUnitAction, E>
Chooses whether to execute the next unit.
Source§fn after_unit(
&mut self,
group: usize,
index: usize,
value: &mut NB::Tensor,
forward: &mut C,
context: &<NB::Tensor as Tensor>::Context,
) -> Result<(), E>
fn after_unit( &mut self, group: usize, index: usize, value: &mut NB::Tensor, forward: &mut C, context: &<NB::Tensor as Tensor>::Context, ) -> Result<(), E>
Observes one executed unit output.
Auto Trait Implementations§
impl<'a, B, S, D, C, E> !UnwindSafe for SequentialDecisionTraversal<'a, B, S, D, C, E>
impl<'a, B, S, D, C, E> Freeze for SequentialDecisionTraversal<'a, B, S, D, C, E>where
&'a mut SequentialDecisionDriver<B, S>: Freeze,
&'a mut D: Freeze,
PhantomData<fn(C) -> E>: Freeze,
impl<'a, B, S, D, C, E> RefUnwindSafe for SequentialDecisionTraversal<'a, B, S, D, C, E>where
&'a mut SequentialDecisionDriver<B, S>: RefUnwindSafe,
&'a mut D: RefUnwindSafe,
PhantomData<fn(C) -> E>: RefUnwindSafe,
impl<'a, B, S, D, C, E> Send for SequentialDecisionTraversal<'a, B, S, D, C, E>
impl<'a, B, S, D, C, E> Sync for SequentialDecisionTraversal<'a, B, S, D, C, E>
impl<'a, B, S, D, C, E> Unpin for SequentialDecisionTraversal<'a, B, S, D, C, E>where
&'a mut SequentialDecisionDriver<B, S>: Unpin,
&'a mut D: Unpin,
PhantomData<fn(C) -> E>: Unpin,
impl<'a, B, S, D, C, E> UnsafeUnpin for SequentialDecisionTraversal<'a, B, S, D, C, E>where
&'a mut SequentialDecisionDriver<B, S>: UnsafeUnpin,
&'a mut D: UnsafeUnpin,
PhantomData<fn(C) -> E>: UnsafeUnpin,
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