speechbrain.lobes.models.Cnn14 模块

该文件实现了来自https://arxiv.org/abs/1912.10211的CNN14模型

作者 * Cem Subakan 2022 * Francesco Paissan 2022

摘要

类:

CNN14PSI

该类估计一个梅尔域显著性掩码

CNN14PSI_stft

该类在给定分类器表示的情况下,估计STFT域上的显著性图。

Cnn14

该类实现了来自https://arxiv.org/abs/1912.10211的Cnn14模型

ConvBlock

该类实现了CNN14中使用的卷积块

函数:

init_bn

初始化一个批归一化层。

init_layer

初始化一个线性或卷积层。

参考

speechbrain.lobes.models.Cnn14.init_layer(layer)[source]

初始化线性或卷积层。

speechbrain.lobes.models.Cnn14.init_bn(bn)[source]

初始化一个批量归一化层。

class speechbrain.lobes.models.Cnn14.ConvBlock(in_channels, out_channels, norm_type)[source]

基础:Module

该类实现了CNN14中使用的卷积块

Parameters:
  • in_channels (int) – 输入通道数

  • out_channels (int) – 输出通道的数量

  • norm_type (str in ['bn', 'in', 'ln']) – 归一化的类型

Example

>>> convblock = ConvBlock(10, 20, 'ln')
>>> x = torch.rand(5, 10, 20, 30)
>>> y = convblock(x)
>>> print(y.shape)
torch.Size([5, 20, 10, 15])
init_weight()[source]

初始化模型的卷积层和批归一化层

forward(x, pool_size=(2, 2), pool_type='avg')[source]

CNN14中卷积块的前向传播

Parameters:
  • x (torch.Tensor) –

    输入张量,形状为 B x C_in x D1 x D2 其中 B = 批量大小

    C_in = 输入通道数 D1 = 第一个空间维度的维度 D2 = 第二个空间维度的维度

  • pool_size (包含整数值的元组) – 每层的池化量

  • pool_type (str in ['max', 'avg', 'avg+max']) – 池化类型

Return type:

一个卷积块的输出

class speechbrain.lobes.models.Cnn14.Cnn14(mel_bins, emb_dim, norm_type='bn', return_reps=False, l2i=False)[source]

基础:Module

该类实现了来自https://arxiv.org/abs/1912.10211的Cnn14模型

Parameters:
  • mel_bins (int) – 输入中的梅尔频率箱数量

  • emb_dim (int) – 输出嵌入的维度

  • norm_type (str in ['bn', 'in', 'ln']) – 归一化的类型

  • return_reps (bool (默认=False)) – 如果为True,模型还会返回中间表示以便进行解释

  • l2i (bool) – 如果为True,则移除其中一个输出。

Example

>>> cnn14 = Cnn14(120, 256)
>>> x = torch.rand(3, 400, 120)
>>> h = cnn14.forward(x)
>>> print(h.shape)
torch.Size([3, 1, 256])
init_weight()[source]

初始化模型的批量归一化层

forward(x)[source]

CNN14编码器的前向传播

Parameters:

x (torch.Tensor) –

输入张量,形状为 B x C_in x D1 x D2 其中 B = 批量大小

C_in = 输入通道数 D1 = 第一个空间维度的维度 D2 = 第二个空间维度的维度

Return type:

CNN14编码器的输出

class speechbrain.lobes.models.Cnn14.CNN14PSI(dim=128)[source]

基础:Module

这个类估计了一个梅尔域显著性掩码

Parameters:

dim (int) – 嵌入的维度

Return type:

估计的显著性图(在sigmoid之前)

Example

>>> from speechbrain.lobes.models.Cnn14 import Cnn14
>>> classifier_embedder = Cnn14(mel_bins=80, emb_dim=2048, return_reps=True)
>>> x = torch.randn(2, 201, 80)
>>> _, hs = classifier_embedder(x)
>>> psimodel = CNN14PSI(2048)
>>> xhat = psimodel.forward(hs)
>>> print(xhat.shape)
torch.Size([2, 1, 201, 80])
forward(hs, labels=None)[source]

前向步骤。给定分类器表示,估计一个显著性图。

Parameters:
  • hs (torch.Tensor) – 分类器的表示。

  • labels (None) – 未使用

Returns:

xhat – 估计的显著性图(在sigmoid之前)

Return type:

torch.Tensor

class speechbrain.lobes.models.Cnn14.CNN14PSI_stft(dim=128, outdim=1)[source]

基础:Module

该类在给定分类器表示的情况下,估计STFT域上的显著性图。

Parameters:
  • dim (int) – 输入表示的维度。

  • outdim (int) – 定义显著性图中的输出通道数。

Example

>>> from speechbrain.lobes.models.Cnn14 import Cnn14
>>> classifier_embedder = Cnn14(mel_bins=80, emb_dim=2048, return_reps=True)
>>> x = torch.randn(2, 201, 80)
>>> _, hs = classifier_embedder(x)
>>> psimodel = CNN14PSI_stft(2048, 1)
>>> xhat = psimodel.forward(hs)
>>> print(xhat.shape)
torch.Size([2, 1, 201, 513])
forward(hs)[source]

前向步骤以估计显著性图

Parameters:

hs (torch.Tensor) – 分类器的表示。

Returns:

xhat – 显著性图的估计

Return type:

torch.Tensor