espnet2.asr_transducer.encoder.building.build_branchformer_block
Less than 1 minute
espnet2.asr_transducer.encoder.building.build_branchformer_block
espnet2.asr_transducer.encoder.building.build_branchformer_block(configuration: List[Dict[str, Any]], main_params: Dict[str, Any]) → Branchformer
Build Branchformer block.
This function constructs a Branchformer block, which is a component of the encoder architecture in the Transducer model. The Branchformer block leverages attention mechanisms and convolutional layers to process input data efficiently.
- Parameters:
configuration –
A list of dictionaries containing the configuration for the Branchformer block. Each dictionary must include the keys:
- hidden_size: Size of the hidden layer.
- linear_size: Size of the linear layer.
- conv_mod_kernel_size: Kernel size for the convolutional
module.
- dropout_rate: Dropout rate for the block.
- heads: Number of attention heads (optional, default is 4).
- att_dropout_rate: Dropout rate for attention (optional).
- norm_eps: Epsilon value for normalization (optional).
- norm_partial: Partial value for normalization (optional).
main_params –
A dictionary containing the main parameters for the encoder, including:
- conv_mod_norm_type: Type of normalization for the
convolution module.
- simplified_att_score: Boolean indicating if simplified attention scoring is used.
- Returns: A callable function that returns a Branchformer block : when invoked.
- Return type:Branchformer
Examples
>>> config = [
... {
... "hidden_size": 256,
... "linear_size": 128,
... "conv_mod_kernel_size": 3,
... "dropout_rate": 0.1,
... "heads": 4
... }
... ]
>>> main_params = {
... "conv_mod_norm_type": "layer_norm",
... "simplified_att_score": False
... }
>>> branchformer_block = build_branchformer_block(config, main_params)
>>> block = branchformer_block() # Instantiate the block