speechbrain.nnet.complex_networks.c_RNN 模块
实现复数值循环神经网络的库。
- 作者
Titouan Parcollet 2020
摘要
类
此函数实现了一个复数值 LSTM。 |
|
此函数实现了一个复数值 LSTM 层。 |
|
此函数实现了一个复数值 Light GRU (liGRU)。 |
|
此函数实现了一个复数值 Light-Gated Recurrent Unit 层。 |
|
此函数实现了一个 vanilla 复数值 RNN。 |
|
此函数实现了一个复数值循环层。 |
参考
- class speechbrain.nnet.complex_networks.c_RNN.CLSTM(hidden_size, input_shape, num_layers=1, bias=True, dropout=0.0, bidirectional=False, return_hidden=False, init_criterion='glorot', weight_init='complex')[source]
基类:
Module
此函数实现了一个复数值 LSTM。
输入格式为 (batch, time, fea) 或 (batch, time, fea, channel)。对于后一种形状,最后两个维度将被合并为 (batch, time, fea * channel)。
- 参数:
hidden_size (int) – 输出神经元的数量(即输出的维度)。指定的值是以复数值神经元计算的。因此,输出维度为 2*hidden_size。
input_shape (tuple) – 输入的期望形状。
num_layers (int, optional) – RNN 架构中使用的层数(默认为 1)。
bias (bool, optional) – 如果为 True,则采用加性偏置 b(默认为 True)。
dropout (float, optional) – Dropout 系数(必须介于 0 和 1 之间)(默认为 0.0)。
bidirectional (bool, optional) – 如果为 True,则使用双向模型,该模型会从右到左和从左到右扫描序列(默认为 False)。
return_hidden (bool, optional) – 如果为 True,则函数返回最后一个隐藏层。
init_criterion (str , optional) – (glorot, he)。此参数控制权重的初始化准则。它与 weights_init 结合使用,构建复数值权重的初始化方法(默认为“glorot”)。
weight_init (str, optional) – (complex, unitary)。此参数定义了复数值权重的初始化过程(默认为“complex”)。“complex”将根据 init_criterion 和复极坐标形式生成随机复数值权重。“unitary”将权重归一化到单位圆上。更多详细信息请参阅:“Deep Complex Networks”,Trabelsi C. 等。
示例
>>> inp_tensor = torch.rand([10, 16, 40]) >>> rnn = CLSTM(hidden_size=16, input_shape=inp_tensor.shape) >>> out_tensor = rnn(inp_tensor) >>> torch.Size([10, 16, 32])
- class speechbrain.nnet.complex_networks.c_RNN.CLSTM_Layer(input_size, hidden_size, num_layers, batch_size, dropout=0.0, bidirectional=False, init_criterion='glorot', weight_init='complex')[source]
基类:
Module
此函数实现了一个复数值 LSTM 层。
- 参数:
input_size (int) – 输入张量的特征维度(以实数值计算)。
hidden_size (int) – 输出值的数量(以实数值计算)。
num_layers (int, optional) – RNN 架构中使用的层数(默认为 1)。
batch_size (int) – 输入张量的批量大小。
dropout (float, optional) – Dropout 系数(必须介于 0 和 1 之间)(默认为 0.0)。
bidirectional (bool, optional) – 如果为 True,则使用双向模型,该模型会从右到左和从左到右扫描序列(默认为 False)。
init_criterion (str, optional) – (glorot, he)。此参数控制权重的初始化准则。它与 weights_init 结合使用,构建复数值权重的初始化方法(默认为“glorot”)。
weight_init (str, optional) – (complex, unitary)。此参数定义了复数值权重的初始化过程(默认为“complex”)。“complex”将根据 init_criterion 和复极坐标形式生成随机复数值权重。“unitary”将权重归一化到单位圆上。更多详细信息请参阅:“Deep Complex Networks”,Trabelsi C. 等。
- class speechbrain.nnet.complex_networks.c_RNN.CRNN(hidden_size, input_shape, nonlinearity='tanh', num_layers=1, bias=True, dropout=0.0, bidirectional=False, return_hidden=False, init_criterion='glorot', weight_init='complex')[source]
基类:
Module
此函数实现了一个 vanilla 复数值 RNN。
输入格式为 (batch, time, fea) 或 (batch, time, fea, channel)。对于后一种形状,最后两个维度将被合并为 (batch, time, fea * channel)。
- 参数:
hidden_size (int) – 输出神经元的数量(即输出的维度)。指定的值是以复数值神经元计算的。因此,输出维度为 2*hidden_size。
input_shape (tuple) – 输入的期望形状。
nonlinearity (str, optional) – 非线性类型 (tanh, relu)(默认为“tanh”)。
num_layers (int, optional) – RNN 架构中使用的层数(默认为 1)。
bias (bool, optional) – 如果为 True,则采用加性偏置 b(默认为 True)。
dropout (float, optional) – Dropout 系数(必须介于 0 和 1 之间)(默认为 0.0)。
bidirectional (bool, optional) – 如果为 True,则使用双向模型,该模型会从右到左和从左到右扫描序列(默认为 False)。
return_hidden (bool, optional) – 如果为 True,则函数返回最后一个隐藏层(默认为 False)。
init_criterion (str , optional) – (glorot, he)。此参数控制权重的初始化准则。它与 weights_init 结合使用,构建复数值权重的初始化方法(默认为“glorot”)。
weight_init (str, optional) – (complex, unitary)。此参数定义了复数值权重的初始化过程(默认为“complex”)。“complex”将根据 init_criterion 和复极坐标形式生成随机复数值权重。“unitary”将权重归一化到单位圆上。更多详细信息请参阅:“Deep Complex Networks”,Trabelsi C. 等。
示例
>>> inp_tensor = torch.rand([10, 16, 30]) >>> rnn = CRNN(hidden_size=16, input_shape=inp_tensor.shape) >>> out_tensor = rnn(inp_tensor) >>> torch.Size([10, 16, 32])
- class speechbrain.nnet.complex_networks.c_RNN.CRNN_Layer(input_size, hidden_size, num_layers, batch_size, dropout=0.0, nonlinearity='tanh', bidirectional=False, init_criterion='glorot', weight_init='complex')[source]
基类:
Module
此函数实现了一个复数值循环层。
- 参数:
input_size (int) – 输入张量的特征维度(以实数值计算)。
hidden_size (int) – 输出值的数量(以实数值计算)。
num_layers (int, optional) – RNN 架构中使用的层数(默认为 1)。
batch_size (int) – 输入张量的批量大小。
dropout (float, optional) – Dropout 系数(必须介于 0 和 1 之间)(默认为 0.0)。
nonlinearity (str, optional) – 非线性类型 (tanh, relu)(默认为“tanh”)。
bidirectional (bool, optional) – 如果为 True,则使用双向模型,该模型会从右到左和从左到右扫描序列(默认为 False)。
init_criterion (str , optional) – (glorot, he)。此参数控制权重的初始化准则。它与 weights_init 结合使用,构建复数值权重的初始化方法(默认为“glorot”)。
weight_init (str, optional) – (complex, unitary)。此参数定义了复数值权重的初始化过程(默认为“complex”)。“complex”将根据 init_criterion 和复极坐标形式生成随机复数值权重。“unitary”将权重归一化到单位圆上。更多详细信息请参阅:“Deep Complex Networks”,Trabelsi C. 等。
- class speechbrain.nnet.complex_networks.c_RNN.CLiGRU(hidden_size, input_shape, nonlinearity='relu', normalization='batchnorm', num_layers=1, bias=True, dropout=0.0, bidirectional=False, return_hidden=False, init_criterion='glorot', weight_init='complex')[source]
基类:
Module
此函数实现了一个复数值 Light GRU (liGRU)。
LiGRU 是一个基于 batch-norm + relu 激活 + 循环 dropout 的单门控 GRU 模型。更多信息请参阅
“M. Ravanelli, P. Brakel, M. Omologo, Y. Bengio, Light Gated Recurrent Units for Speech Recognition, in IEEE Transactions on Emerging Topics in Computational Intelligence, 2018” (https://arxiv.org/abs/1803.10225)
为了加速,在使用它之前,它会通过 torch 即时 (jit) 编译器进行编译。
它接受格式为 (batch, time, fea) 的输入张量。对于 (batch, time, fea, channel) 这样的 4d 输入,张量将被展平为 (batch, time, fea*channel)。
- 参数:
hidden_size (int) – 输出神经元的数量(即输出的维度)。指定的值是以复数值神经元计算的。因此,输出维度为 2*hidden_size。
input_shape (tuple) – 输入的期望大小。
nonlinearity (str) – 非线性类型 (tanh, relu)。
normalization (str) – liGRU 模型的归一化类型 (batchnorm, layernorm)。除了 batchnorm 和 layernorm 之外的任何字符串都将导致不进行归一化。
num_layers (int) – RNN 架构中使用的层数。
bias (bool) – 如果为 True,则采用加性偏置 b。
dropout (float) – Dropout 系数(必须介于 0 和 1 之间)。
bidirectional (bool) – 如果为 True,则使用双向模型,该模型会从右到左和从左到右扫描序列。
return_hidden (bool) – 如果为 True,则函数返回最后一个隐藏层。
init_criterion (str , optional) – (glorot, he)。此参数控制权重的初始化准则。它与 weights_init 结合使用,构建复数值权重的初始化方法(默认为“glorot”)。
weight_init (str, optional) – (complex, unitary)。此参数定义了复数值权重的初始化过程(默认为“complex”)。“complex”将根据 init_criterion 和复极坐标形式生成随机复数值权重。“unitary”将权重归一化到单位圆上。更多详细信息请参阅:“Deep Complex Networks”,Trabelsi C. 等。
示例
>>> inp_tensor = torch.rand([10, 16, 30]) >>> rnn = CLiGRU(input_shape=inp_tensor.shape, hidden_size=16) >>> out_tensor = rnn(inp_tensor) >>> torch.Size([4, 10, 5])
- class speechbrain.nnet.complex_networks.c_RNN.CLiGRU_Layer(input_size, hidden_size, num_layers, batch_size, dropout=0.0, nonlinearity='relu', normalization='batchnorm', bidirectional=False, init_criterion='glorot', weight_init='complex')[source]
基类:
Module
此函数实现了一个复数值 Light-Gated Recurrent Unit 层。
- 参数:
input_size (int) – 输入张量的特征维度。
hidden_size (int) – 输出值的数量。
num_layers (int) – RNN 架构中使用的层数。
batch_size (int) – 输入张量的批量大小。
dropout (float) – Dropout 系数(必须介于 0 和 1 之间)。
nonlinearity (str) – 非线性类型 (tanh, relu)。
normalization (str) – 归一化类型 (batchnorm, layernorm)。除了 batchnorm 和 layernorm 之外的任何字符串都将导致不进行归一化。
bidirectional (bool) – 如果为 True,则使用双向模型,该模型会从右到左和从左到右扫描序列。
init_criterion (str , optional) – (glorot, he)。此参数控制权重的初始化准则。它与 weights_init 结合使用,构建复数值权重的初始化方法(默认为“glorot”)。
weight_init (str, optional) – (complex, unitary)。此参数定义了复数值权重的初始化过程(默认为“complex”)。“complex”将根据 init_criterion 和复极坐标形式生成随机复数值权重。“unitary”将权重归一化到单位圆上。更多详细信息请参阅:“Deep Complex Networks”,Trabelsi C. 等。