【发布时间】:2018-12-23 04:21:06
【问题描述】:
我正在尝试使用 LSTM 分类器根据我拥有的一些 midi 生成音乐。
LSTM 使用两个特征,音符的音高和音符的持续时间。
为了说明,假设我们有:
音高:[“A”、“B”、“C”]
持续时间:["0.5", "1", "1.5"]
您可以想象,生成的音符必须同时具有音高和持续时间。
我尝试使用 MultiLabelBinarizer 来做到这一点。
from sklearn.preprocessing import MultiLabelBinarizer
labels = [[x,y] for x in all_pitches for y in all_durations]
mlb = MultiLabelBinarizer()
mlb_value = mlb.fit_transform(labels)
这按预期划分了类,但我遇到的问题是在预测时出现的。
prediction = model.predict_proba(prediction_input)
indexes = np.argsort(prediction, axis=None)[::-1]
index1 = indexes[0]
index2 = indexes[1]
result1 = mlb.classes_[index1]
result2 = mlb.classes_[index2]
我需要音符同时具有音高和持续时间,所以这种方法似乎对我不起作用(我只能得到相同的两个音高)。
另一件事我认为是使用MultiOutputClassifier,但我似乎无法理解它们的区别,或者如何正确使用MultiOutputClassifier。
感谢您的耐心等待,对于这个可能很愚蠢的问题,我们深表歉意。
【问题讨论】:
标签: python python-3.x scikit-learn keras lstm