speechbrain.lobes.models.CRDNN 模块
卷积、循环和全连接网络的组合。
- 作者
Mirco Ravanelli 2020
Peter Plantinga 2020
Ju-Chieh Chou 2020
Titouan Parcollet 2020
Abdel 2020
概述
类
CNN 块,基于 VGG 块。 |
|
该模型是 CNN、RNN 和 DNN 的组合。 |
|
线性层块。 |
参考
- class speechbrain.lobes.models.CRDNN.CRDNN(input_size=None, input_shape=None, activation=<class 'torch.nn.modules.activation.LeakyReLU'>, dropout=0.15, cnn_blocks=2, cnn_channels=[128, 256], cnn_kernelsize=(3, 3), time_pooling=False, time_pooling_size=2, freq_pooling_size=2, rnn_class=<class 'speechbrain.nnet.RNN.LiGRU'>, inter_layer_pooling_size=[2, 2], using_2d_pooling=False, rnn_layers=4, rnn_neurons=512, rnn_bidirectional=True, rnn_re_init=False, dnn_blocks=2, dnn_neurons=512, projection_dim=-1, use_rnnp=False)[source]
基础:
Sequential
该模型是 CNN、RNN 和 DNN 的组合。
该模型期望 3 维输入 [batch, time, feats],默认输出大小为 [batch, time, dnn_neurons]。
唯一的例外是如果
using_2d_pooling
或time_pooling
为 True。在这种情况下,时间维度将被下采样。- 参数:
input_size (int) – 期望输入在第三维度的长度。
input_shape (tuple) – 尽管 input_size 就足够了,但此选项允许将 CRDNN 与其他类一起放入 sequential 中。
activation (torch class) – 用于构建 CNN 和 DNN 激活层的类。
dropout (float) – 应用于 CNN、RNN 和 DNN 的神经元 dropout 率。
cnn_blocks (int) – 要包含的卷积神经网络块的数量。
cnn_channels (list of ints) – 每个 CNN 块的输出通道数列表。
cnn_kernelsize (tuple of ints) – 卷积核的大小。
time_pooling (bool) – 是否在 RNN 之前在时间轴上对语音进行池化。
time_pooling_size (int) – 在时间轴上进行池化的元素数量。
freq_pooling_size (int) – 在频率轴上进行池化的元素数量。
rnn_class (torch class) – 在 CRDNN 网络中使用的 RNN 类型 (LiGRU, LSTM, GRU, RNN)
inter_layer_pooling_size (list of ints) – 每个 CNN 块的池化大小列表。
using_2d_pooling (bool) – 在每个 CNN 块之后是使用 2D 还是 1D 池化。
rnn_layers (int) – 要包含的循环 RNN 层的数量。
rnn_neurons (int) – RNN 每层神经元的数量。
rnn_bidirectional (bool) – 该模型是仅向前处理还是双向处理。
rnn_re_init (bool,) – 如果为 True,则将对循环权重应用正交初始化。
dnn_blocks (int) – 要包含的线性神经网络块的数量。
dnn_neurons (int) – 线性层中的神经元数量。
projection_dim (int) – 投影层中的神经元数量。该层用于减小 CNN 块后获得的展平表示的大小。
use_rnnp (bool) – 如果为 True,则在 RNN 层之间添加一个线性投影层。
示例
>>> inputs = torch.rand([10, 15, 60]) >>> model = CRDNN(input_shape=inputs.shape) >>> outputs = model(inputs) >>> outputs.shape torch.Size([10, 15, 512])
- class speechbrain.lobes.models.CRDNN.CNN_Block(input_shape, channels, kernel_size=[3, 3], activation=<class 'torch.nn.modules.activation.LeakyReLU'>, using_2d_pool=False, pooling_size=2, dropout=0.15)[source]
基础:
Sequential
CNN 块,基于 VGG 块。
- 参数:
示例
>>> inputs = torch.rand(10, 15, 60) >>> block = CNN_Block(input_shape=inputs.shape, channels=32) >>> outputs = block(inputs) >>> outputs.shape torch.Size([10, 15, 30, 32])
- class speechbrain.lobes.models.CRDNN.DNN_Block(input_shape, neurons, activation=<class 'torch.nn.modules.activation.LeakyReLU'>, dropout=0.15)[source]
基础:
Sequential
线性层块。
- 参数:
示例
>>> inputs = torch.rand(10, 15, 128) >>> block = DNN_Block(input_shape=inputs.shape, neurons=64) >>> outputs = block(inputs) >>> outputs.shape torch.Size([10, 15, 64])