speechbrain.lobes.models.CRDNN 模块
卷积、循环和全连接网络的组合。
- Authors
Mirco Ravanelli 2020
彼得·普兰廷加 2020
周珏洁 2020
Titouan Parcollet 2020
阿卜杜勒 2020
摘要
类:
CNN 块,基于 VGG 块。 |
|
该模型是CNNs、RNNs和DNNs的组合。 |
|
线性层的块。 |
参考
- 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。 在这种情况下,时间维度将被下采样。- Parameters:
input_size (int) – 预期输入在第三维度的长度。
input_shape (tuple) – 虽然 input_size 已经足够,但这个选项可以允许将 CRDNN 放入与其他类的序列中。
activation (torch class) – 用于构建CNN和DNN激活层的类。
dropout (float) – 应用于CNN、RNN和DNN的神经元丢弃率。
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层之间添加一个线性投影层。
Example
>>> 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]
基础类:
SequentialCNN 块,基于 VGG 块。
- Parameters:
Example
>>> 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线性层的块。
- Parameters:
Example
>>> 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])