Struct RNNTLoss
pub struct RNNTLoss { /* private fields */ }Expand description
RNN Transducer (RNNT) loss, as described in Sequence Transduction with Recurrent Neural Networks.
Computes the negative log-likelihood over a 2D lattice of encoder time steps (T) and output labels (U), marginalizing over all valid alignments.
§Example
ⓘ
let rnnt = RNNTLossConfig::new().init();
// logits: [B, T, U+1, V] from the joiner network
let loss = rnnt.forward(logits, targets, logit_lengths, target_lengths);Implementations§
§impl RNNTLoss
impl RNNTLoss
pub fn forward<B>(
&self,
logits: Tensor<B, 4>,
targets: Tensor<B, 2, Int>,
logit_lengths: Tensor<B, 1, Int>,
target_lengths: Tensor<B, 1, Int>,
) -> Tensor<B, 1>where
B: Backend,
pub fn forward<B>(
&self,
logits: Tensor<B, 4>,
targets: Tensor<B, 2, Int>,
logit_lengths: Tensor<B, 1, Int>,
target_lengths: Tensor<B, 1, Int>,
) -> Tensor<B, 1>where
B: Backend,
Computes per-sample RNNT loss (no reduction). Returns shape [B].
logits:[B, T, U+1, V]— joiner output (raw logits or log-probs)targets:[B, U]— target label indices (must not contain blank)logit_lengths:[B]— actual encoder lengths per sampletarget_lengths:[B]— actual target lengths per sample
Trait Implementations§
§impl<B> AutodiffModule<B> for RNNTLosswhere
B: AutodiffBackend,
impl<B> AutodiffModule<B> for RNNTLosswhere
B: AutodiffBackend,
§type InnerModule = RNNTLoss
type InnerModule = RNNTLoss
Inner module without auto-differentiation.
§fn valid(&self) -> <RNNTLoss as AutodiffModule<B>>::InnerModule
fn valid(&self) -> <RNNTLoss as AutodiffModule<B>>::InnerModule
Returns the same module, but on the inner backend without auto-differentiation.
§fn from_inner(module: <RNNTLoss as AutodiffModule<B>>::InnerModule) -> RNNTLoss
fn from_inner(module: <RNNTLoss as AutodiffModule<B>>::InnerModule) -> RNNTLoss
Wraps an inner module back into an auto-diff module.
§impl<B> Module<B> for RNNTLosswhere
B: Backend,
impl<B> Module<B> for RNNTLosswhere
B: Backend,
§type Record = EmptyRecord
type Record = EmptyRecord
Type to save and load the module.
§fn visit<V>(&self, _visitor: &mut V)where
V: ModuleVisitor<B>,
fn visit<V>(&self, _visitor: &mut V)where
V: ModuleVisitor<B>,
Visit each tensor parameter in the module with a visitor.
§fn map<M>(self, _mapper: &mut M) -> RNNTLosswhere
M: ModuleMapper<B>,
fn map<M>(self, _mapper: &mut M) -> RNNTLosswhere
M: ModuleMapper<B>,
Map each tensor parameter in the module with a mapper.
§fn load_record(self, _record: <RNNTLoss as Module<B>>::Record) -> RNNTLoss
fn load_record(self, _record: <RNNTLoss as Module<B>>::Record) -> RNNTLoss
Load the module state from a record.
§fn into_record(self) -> <RNNTLoss as Module<B>>::Record
fn into_record(self) -> <RNNTLoss as Module<B>>::Record
Convert the module into a record containing the state.
§fn to_device(self, _: &<B as BackendTypes>::Device) -> RNNTLoss
fn to_device(self, _: &<B as BackendTypes>::Device) -> RNNTLoss
Move the module and all of its sub-modules to the given device. Read more
§fn fork(self, _: &<B as BackendTypes>::Device) -> RNNTLoss
fn fork(self, _: &<B as BackendTypes>::Device) -> RNNTLoss
Fork the module and all of its sub-modules to the given device. Read more
§fn collect_devices(
&self,
devices: Vec<<B as BackendTypes>::Device>,
) -> Vec<<B as BackendTypes>::Device>
fn collect_devices( &self, devices: Vec<<B as BackendTypes>::Device>, ) -> Vec<<B as BackendTypes>::Device>
Return all the devices found in the underneath module tree added to the given vector
without duplicates.
§fn devices(&self) -> Vec<<B as BackendTypes>::Device>
fn devices(&self) -> Vec<<B as BackendTypes>::Device>
Return all the devices found in the underneath module tree without duplicates.
§fn train<AB>(self) -> Self::TrainModulewhere
AB: AutodiffBackend<InnerBackend = B>,
Self: HasAutodiffModule<AB>,
fn train<AB>(self) -> Self::TrainModulewhere
AB: AutodiffBackend<InnerBackend = B>,
Self: HasAutodiffModule<AB>,
Move the module and all of its sub-modules to the autodiff backend. Read more
§fn num_params(&self) -> usize
fn num_params(&self) -> usize
Get the number of parameters the module has, including all of its sub-modules.
§fn save_file<FR, PB>(
self,
file_path: PB,
recorder: &FR,
) -> Result<(), RecorderError>
fn save_file<FR, PB>( self, file_path: PB, recorder: &FR, ) -> Result<(), RecorderError>
Save the module to a file using the provided file recorder. Read more
§fn load_file<FR, PB>(
self,
file_path: PB,
recorder: &FR,
device: &<B as BackendTypes>::Device,
) -> Result<Self, RecorderError>
fn load_file<FR, PB>( self, file_path: PB, recorder: &FR, device: &<B as BackendTypes>::Device, ) -> Result<Self, RecorderError>
Load the module from a file using the provided file recorder. Read more
§fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
Quantize the weights of the module.
§impl ModuleDisplay for RNNTLoss
impl ModuleDisplay for RNNTLoss
§fn format(&self, passed_settings: DisplaySettings) -> String
fn format(&self, passed_settings: DisplaySettings) -> String
Formats the module with provided display settings. Read more
§fn custom_settings(&self) -> Option<DisplaySettings>
fn custom_settings(&self) -> Option<DisplaySettings>
Custom display settings for the module. Read more
Auto Trait Implementations§
impl Freeze for RNNTLoss
impl RefUnwindSafe for RNNTLoss
impl Send for RNNTLoss
impl Sync for RNNTLoss
impl Unpin for RNNTLoss
impl UnwindSafe for RNNTLoss
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<C> CloneExpand for Cwhere
C: Clone,
impl<C> CloneExpand for Cwhere
C: Clone,
fn __expand_clone_method(&self, _scope: &mut Scope) -> C
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
Fallible version of [
ToCompactString::to_compact_string()] Read more§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a [
CompactString]. Read more