如何正确配置带有线性层的 LSTM 以进行唤醒词检测
我正在为我的人工智能助手开发唤醒词模型。我的模型架构包括一个用于处理音频数据的 LSTM 层,后面是一个线性层。但是,我遇到了线性层的意外输出形状,这导致了混乱。
将 LSTM 输出(形状:4, 32, 32)传递到线性层后,我期望输出形状为 (4, 32, 1)。然而,实际的输出形状是(4, 32, 1)。
在我的二元分类任务中,我的目标是区分两个类别:0 表示“不唤醒”,1 表示“唤醒 AI”。我的批量大小为 32,我预计输出的形状为 (32, 1),以表示每个音频 MFCC 输入的一个预测。
有人可以建议线性层的正确配置或实现所需输出形状 (32, 1) 所需的任何处理步骤吗?任何见解或代码示例将不胜感激。
I'm working on developing a wake word model for my AI assistant. My model architecture includes an LSTM layer to process audio data, followed by a Linear Layer. However, I'm encountering an unexpected output shape from the Linear Layer, which is causing confusion.
After passing the LSTM output (shape: 4, 32, 32) to the Linear Layer, I expected an output shape of (4, 32, 1). However, the actual output shape is (4, 32, 1).
In my binary classification task, I aim to distinguish between two classes: 0 for "do not wake up" and 1 for "wake up the AI." My batch size is 32, and I anticipated the output to be in the shape (32, 1) to represent one prediction for each audio MFCC input.
Could someone advise on the correct configuration of the Linear Layer or any processing steps needed to achieve the desired output shape of (32, 1)? Any insights or code examples would be greatly appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不完全是。您需要将数据重塑为 (32, 1) 或 (1, 32) 才能使线性层正常工作。您可以通过使用
torch.unsqueeze()
添加维度,甚至直接使用torch.view()
添加维度来实现此目的。如果使用 unsqueeze 函数,新形状应为 (32, 1)。如果使用视图函数,新形状应为 (1, 32)。Not quite. You need to reshape your data to (32, 1) or (1, 32) in order for your linear layer to work. You can achieve this by adding a dimension with
torch.unsqueeze()
or even directly withtorch.view()
. If you use the unsqueeze function, the new shape should be (32, 1). If you use the view function, the new shape should be (1, 32).