gpt4 book ai didi

python - 神经网络错误率没有进步

转载 作者:太空宇宙 更新时间:2023-11-03 14:05:03 26 4
gpt4 key购买 nike

这里是神经网络菜鸟。
我正在使用 PyBrain 尝试创建一个学习音乐的网络。
我的数据集包含大约一百首歌曲,其中网络的输入是两个音符,目标是接下来的两个音符。
每个音符都由一个表示音符/和弦组合的整数、一个表示音符 Octave 的整数和一个表示音符持续时间的 float 表示。
我的网络如下所示:

    net = RecurrentNetwork()
net.addInputModule(LinearLayer(6, name='in'))
net.addModule(LSTMLayer(50, name='hidden1'))
net.addModule(LSTMLayer(50, name='hidden2'))
net.addOutputModule(LinearLayer(6, name='out'))
net.addConnection(FullConnection(net['in'], net['hidden1'], name='c1'))
net.addConnection(FullConnection(net['hidden1'], net['hidden2'], name='c3'))
net.addRecurrentConnection(FullConnection(net['hidden2'], net['hidden1'], name='c4'))
net.addConnection(FullConnection(net['hidden2'], net['out'], name='c5'))
net.sortModules()

使用这样的数据集和训练器:

ds = SupervisedDataSet(6, 6)
trainer = BackpropTrainer(net, ds, verbose = True, momentum = 0.01)

我的问题是,当我训练网络时,我得到一个巨大的错误(例如 24569847209.8),它似乎永远不会下降,它随着每个时期的变化而变化,但它总是徘徊在相同的数字附近。

网络经过训练后,它会通过将两个随机音符作为输入来创建一首歌曲,然后生成目标,然后将目标作为输入传回,并一遍又一遍地重复此操作,直到获得完整的歌曲。但我发现它所做的只是一遍又一遍地写入输出,就像它只是学习一个固定目标一样。

我真的不确定我的设备出了什么问题导致了这种情况。如果我应该包含一些信息,请告诉我。

最佳答案

我似乎已经解决了学习问题!随着我的训练,我的网络错误现在正在稳步减少!我用错了教练。由于我使用的是循环神经网络,因此我不应该使用反向传播训练器。我现在正在使用 RPropMinusTrainer。要修复,请使用以下行:

trainer = BackpropTrainer(net, ds, verbose = True, momentum = 0.01)

已更改为

trainer = RPropMinusTrainer(net, dataset=ds, verbose = True)

关于python - 神经网络错误率没有进步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48966371/

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