我正在为我的人工智能助手开发唤醒词模型。我的模型架构包括一个用于处理音频数据的 LSTM 层,后面是一个线性层。但是,我遇到了线性层的意外输出形状,这导致了混乱。
将 LSTM 输出(形状:4, 32, 32)传递到线性层后,我期望输出形状为 (4, 32, 1)。然而,实际的输出形状是 (4, 32, 1)。
在我的二元分类任务中,我的目标是区分两个类别:0 表示“不要醒来”,1 表示“唤醒 AI”。我的批量大小为 32,我预计输出的形状为 (32, 1),以表示每个音频 MFCC 输入的一个预测。
有人可以建议线性层的正确配置或实现所需输出形状 (32, 1) 所需的任何处理步骤吗?任何见解或代码示例将不胜感激。
不完全是。您需要将数据重塑为 (32, 1) 或 (1, 32) 才能使线性层正常工作。您可以通过使用
torch.unsqueeze()
添加尺寸甚至直接使用 torch.view()
来实现此目的。如果使用 unsqueeze 函数,新形状应为 (32, 1)。如果使用视图函数,新形状应为 (1, 32)。