gpt4 book ai didi

machine-learning - 用于音乐的 LSTM 自动编码器 - Keras [序列到序列]

转载 作者:行者123 更新时间:2023-11-30 09:20:42 26 4
gpt4 key购买 nike

因此,我正在尝试学习大约 200 首歌曲的片段(每首歌曲大约 3-5 分钟)的固定向量表示,并希望使用基于 LSTM 的序列到序列自动编码器。

我正在对音频进行预处理(使用 librosa),如下所示:

  1. 我首先获得每首歌曲形状约为 (1500000,) - (2500000,) 的原始音频信号时间序列。
  2. 然后,我将每个原始时间序列分割成多个片段,并获得每首歌曲的形状为 (512, 3000) - (512, 6000) 的较低级别梅尔频谱图矩阵。这些 (512,) 向量中的每一个都可以称为“迷你歌曲”,因为它们代表歌曲的一部分。
  3. 我将所有歌曲的所有迷你歌曲垂直堆叠在一起以创建训练数据(我们称之为X)。 X 的大小为 (512, 600000),其中第一维 (512) 是窗口大小,第二维 (600000) 是数据集中“迷你歌曲”的总数。
  4. 也就是说,X 中大约有 600000 首迷你歌曲 - X 中的每一列代表一首长度为 (512,) 的迷你歌曲。
  5. 每个 (512,) 个迷你歌曲向量都应编码为每首迷你歌曲的 (50,) 个向量,即在处理结束时我们将拥有 600000 (50,) 个向量。
  6. 用更标准的术语来说,我有 600000 个训练样本,每个样本长度为 512。[将此视为类似于图像数据集 - 600000 个图像,每个长度为 784,其中图像的分辨率为 32x32。除了我的情况外,我想将 512 长度的样本视为具有时间属性的序列。]

我读了这个例子here并希望将其扩展到我的用例中。我想知道 Input 层的 timestepsinput_dim 参数应该设置为什么。

我正在设置 timesteps = X.shape[0] (即本例中的 512)和 input_dim = X.shape[1] (即 600000)。这是正确的方法吗?

编辑:在上面添加了说明。

最佳答案

您的输入实际上是一维序列而不是二维图像。输入张量将为 (600000, 512, 1),您需要将 input_dim 设置为 1,将时间步长设置为 512。形状输入不采用张量的第一个维度(即您的情况下为 600000)。

关于machine-learning - 用于音乐的 LSTM 自动编码器 - Keras [序列到序列],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40842146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com