pub struct BiLstm<B>where
B: Backend,{
pub forward: Lstm<B>,
pub reverse: Lstm<B>,
pub d_hidden: usize,
}
Expand description
The BiLstm module. This implementation is for Bidirectional LSTM.
Introduced in the paper: Framewise phoneme classification with bidirectional LSTM and other neural network architectures.
Should be created with BiLstmConfig.
Fields§
§forward: Lstm<B>
LSTM for the forward direction.
reverse: Lstm<B>
LSTM for the reverse direction.
The size of the hidden state.
Implementations§
§impl<B> BiLstm<B>where
B: Backend,
impl<B> BiLstm<B>where
B: Backend,
pub fn forward(
&self,
batched_input: Tensor<B, 3>,
state: Option<LstmState<B, 3>>,
) -> (Tensor<B, 3>, LstmState<B, 3>)
pub fn forward( &self, batched_input: Tensor<B, 3>, state: Option<LstmState<B, 3>>, ) -> (Tensor<B, 3>, LstmState<B, 3>)
Applies the forward pass on the input tensor. This Bidirectional LSTM implementation returns the state for each element in a sequence (i.e., across seq_length) and a final state.
§Parameters:
- batched_input: The input tensor of shape
[batch_size, sequence_length, input_size]
. - state: An optional
LstmState
representing the initial cell state and hidden state. Each state tensor has shape[2, batch_size, hidden_size]
. If no initial state is provided, these tensors are initialized to zeros.
§Returns:
- output: A tensor represents the output features of LSTM. Shape:
[batch_size, sequence_length, hidden_size * 2]
- state: A
LstmState
represents the final forward and reverse states. Bothstate.cell
andstate.hidden
have the shape[2, batch_size, hidden_size]
.
Trait Implementations§
§impl<B> AutodiffModule<B> for BiLstm<B>
impl<B> AutodiffModule<B> for BiLstm<B>
§type InnerModule = BiLstm<<B as AutodiffBackend>::InnerBackend>
type InnerModule = BiLstm<<B as AutodiffBackend>::InnerBackend>
Inner module without auto-differentiation.
§fn valid(&self) -> <BiLstm<B> as AutodiffModule<B>>::InnerModule
fn valid(&self) -> <BiLstm<B> as AutodiffModule<B>>::InnerModule
Get the same module, but on the inner backend without auto-differentiation.
§impl<B> Module<B> for BiLstm<B>where
B: Backend,
impl<B> Module<B> for BiLstm<B>where
B: Backend,
§type Record = BiLstmRecord<B>
type Record = BiLstmRecord<B>
Type to save and load the module.
§fn load_record(self, record: <BiLstm<B> as Module<B>>::Record) -> BiLstm<B>
fn load_record(self, record: <BiLstm<B> as Module<B>>::Record) -> BiLstm<B>
Load the module state from a record.
§fn into_record(self) -> <BiLstm<B> as Module<B>>::Record
fn into_record(self) -> <BiLstm<B> as Module<B>>::Record
Convert the module into a record containing the state.
§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 visit<Visitor>(&self, visitor: &mut Visitor)where
Visitor: ModuleVisitor<B>,
fn visit<Visitor>(&self, visitor: &mut Visitor)where
Visitor: ModuleVisitor<B>,
Visit each tensor parameter in the module with a visitor.
§fn map<Mapper>(self, mapper: &mut Mapper) -> BiLstm<B>where
Mapper: ModuleMapper<B>,
fn map<Mapper>(self, mapper: &mut Mapper) -> BiLstm<B>where
Mapper: ModuleMapper<B>,
Map each tensor parameter in the module with a mapper.
§fn collect_devices(
&self,
devices: Vec<<B as Backend>::Device>,
) -> Vec<<B as Backend>::Device>
fn collect_devices( &self, devices: Vec<<B as Backend>::Device>, ) -> Vec<<B as Backend>::Device>
Return all the devices found in the underneath module tree added to the given vector
without duplicates.
§fn to_device(self, device: &<B as Backend>::Device) -> BiLstm<B>
fn to_device(self, device: &<B as Backend>::Device) -> BiLstm<B>
Move the module and all of its sub-modules to the given device. Read more
§fn fork(self, device: &<B as Backend>::Device) -> BiLstm<B>
fn fork(self, device: &<B as Backend>::Device) -> BiLstm<B>
Fork the module and all of its sub-modules to the given device. Read more
§fn devices(&self) -> Vec<<B as Backend>::Device>
fn devices(&self) -> Vec<<B as Backend>::Device>
Return all the devices found in the underneath module tree without duplicates.
§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 Backend>::Device,
) -> Result<Self, RecorderError>
fn load_file<FR, PB>( self, file_path: PB, recorder: &FR, device: &<B as Backend>::Device, ) -> Result<Self, RecorderError>
Load the module from a file using the provided file recorder. Read more
§fn quantize_weights<C>(self, quantizer: &mut Quantizer<C>) -> Selfwhere
C: Calibration,
fn quantize_weights<C>(self, quantizer: &mut Quantizer<C>) -> Selfwhere
C: Calibration,
Quantize the weights of the module.
§impl<B> ModuleDisplay for BiLstm<B>where
B: Backend,
impl<B> ModuleDisplay for BiLstm<B>where
B: Backend,
§fn custom_settings(&self) -> Option<DisplaySettings>
fn custom_settings(&self) -> Option<DisplaySettings>
Custom display settings for the module. Read more
§fn custom_content(&self, content: Content) -> Option<Content>
fn custom_content(&self, content: Content) -> Option<Content>
Custom attributes for the module. Read more
§fn format(&self, passed_settings: DisplaySettings) -> String
fn format(&self, passed_settings: DisplaySettings) -> String
Formats the module with provided display settings. Read more
Auto Trait Implementations§
impl<B> !Freeze for BiLstm<B>
impl<B> !RefUnwindSafe for BiLstm<B>
impl<B> Send for BiLstm<B>
impl<B> !Sync for BiLstm<B>
impl<B> Unpin for BiLstm<B>where
<B as Backend>::FloatTensorPrimitive: Unpin,
<B as Backend>::QuantizedTensorPrimitive: Unpin,
<B as Backend>::Device: Unpin,
impl<B> UnwindSafe for BiLstm<B>where
<B as Backend>::FloatTensorPrimitive: UnwindSafe,
<B as Backend>::QuantizedTensorPrimitive: UnwindSafe,
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§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