使用音乐数据运行 LSTM

数据挖掘 机器学习 神经网络 lstm
2022-02-10 01:38:57

我正在为一个课程做一个项目,我正在尝试创建一个学习音乐并创建自己的音乐的算法。

我在如何设置数据以将其输入 LSTM 时遇到问题。

单个训练示例由一个和弦组成,该和弦是一个二进制值的向量,该向量基于以 MIDI 形式按下的键(索引 0-127),一个表示音符持续时间、节拍强度、拍号分子的值,以及拍号的分母,以及由单位数表示的调号

所以一个例子可能看起来像

[01011043442]

结果是一个 132x1 的向量

我在概念化如何将这种数据类型输入 LSTM 时遇到了麻烦。做一个线性输出没有多大意义,但我认为我也不能直接单热这个向量。

2个回答

你应该问问自己——你是在教一种算法来演奏和弦还是演奏音乐另外,你想在这里预测什么?

在我看来,您需要创建一系列和弦的输入数据,并且您的标签是曲调中的下一个和弦。所以你应该设计一个神经网络,接收一系列和弦,并告诉你序列中的下一个和弦,将其添加回输入序列并选择下一个和弦,将其添加回输入序列等等。接下来你知道,你有一个可以播放音乐的神经网络。

如果您使用的是 Tensorflow,则创建维度的输入张量,如下所示:

input_data = tf.placeholder(tf.float32, [batch_size, timesteps, input_size], name='inputs')