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

发布于 2025-01-15 22:38:19 字数 338 浏览 1 评论 0原文

我正在为我的人工智能助手开发唤醒词模型。我的模型架构包括一个用于处理音频数据的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘿看小鸭子会跑 2025-01-22 22:38:19

不完全是。您需要将数据重塑为 (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 with torch.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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文