如何在pybrain中计算或监控神经网络的训练?

9 投票
2 回答
5667 浏览
提问于 2025-04-17 12:18

我在pybrain里有一个神经网络,它有两个输入,一个隐藏层和一个输出层。我用下面的代码来训练:

trainer = BackpropTrainer(net,ds)
trainer.trainUntilConvergence()

这里的net是指神经网络,而ds是训练数据。

我想问的是,是否可以计算完成训练所需的时间,或者我该如何监控训练的进度。谢谢。

2 个回答

2

我没有什么好补充的,只是想分享我用的代码:

maxepochs=20
results=[]
for i in range(len(maxepochs)):
    aux = trainer.train()
    results.extend(aux)
    plt.figure()
    plt.scatter(range(len(results[0])),results[0])
    plt.draw()

每次循环你都会得到一个新的图表。虽然看起来不是很好,但对我来说是有效的。

希望这能帮到你。

10

你可以创建一个新的类来继承 BackpropTrainer(源代码可以在这里找到),然后重写 trainUntilConvergence 方法。如果你使用 maxEpochs,可以通过计算已经进行的轮次和总轮次的比例来跟踪完成的百分比。

如果不使用 maxEpochs,你可以根据验证错误的平均变化率和 continueEpochs 的大小来大致估计剩余的轮次。或者,你也可以直接观察验证错误的变化速度。如果你想把轮次和时间对应起来,就需要记录每一轮所花的时间并保存下来。

撰写回答