如何正确配置带有线性层的 LSTM 以进行唤醒词检测

问题描述 投票:0回答:1

我正在为我的人工智能助手开发唤醒词模型。我的模型架构包括一个用于处理音频数据的 LSTM 层,后面是一个线性层。但是,我遇到了线性层的意外输出形状,这导致了混乱。

将 LSTM 输出(形状:4, 32, 32)传递到线性层后,我期望输出形状为 (4, 32, 1)。然而,实际的输出形状是 (4, 32, 1)。

在我的二元分类任务中,我的目标是区分两个类别:0 表示“不要醒来”,1 表示“唤醒 AI”。我的批量大小为 32,我预计输出的形状为 (32, 1),以表示每个音频 MFCC 输入的一个预测。

有人可以建议线性层的正确配置或实现所需输出形状 (32, 1) 所需的任何处理步骤吗?任何见解或代码示例将不胜感激。

python pytorch lstm recurrent-neural-network
1个回答
1
投票

不完全是。您需要将数据重塑为 (32, 1) 或 (1, 32) 才能使线性层正常工作。您可以通过使用

torch.unsqueeze()
添加尺寸甚至直接使用
torch.view()
来实现此目的。如果使用 unsqueeze 函数,新形状应为 (32, 1)。如果使用视图函数,新形状应为 (1, 32)。

© www.soinside.com 2019 - 2024. All rights reserved.