我有一个神经网络n pybrain,具有两个输入,一个隐藏层和一个输出层。我使用以下代码进行训练:
trainer = BackpropTrainer(net,ds)
trainer.trainUntilConvergence()
net 是神经网络,ds 是训练数据。
我的问题是如何计算完成训练所需的时间或如何监测训练的进度。谢谢。
我有一个神经网络n pybrain,具有两个输入,一个隐藏层和一个输出层。我使用以下代码进行训练:
trainer = BackpropTrainer(net,ds)
trainer.trainUntilConvergence()
net 是神经网络,ds 是训练数据。
我的问题是如何计算完成训练所需的时间或如何监测训练的进度。谢谢。
如果您正在使用maxEpochs
,并且希望追踪完成的百分比,请通过继承BackpropTrainer
(源代码在这里)并覆盖trainUntilConvergence
来实现。通过计算epochs与maxEpochs之间的比率,可以跟踪完成的百分比。
如果不使用maxEpochs
,则可以根据验证误差的平均变化率和continueEpochs
的大小,做出剩余epoch数的预估。或者仅仅检查验证误差的变化速率。如果您想将epochs映射为时间,则需要对每个epoch的时间进行profiling并存储。
没有什么要补充的,除了我用于此的代码:
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()
每个周期你将得到一个新的情节。虽然不是很好,但对我来说还算有效。
希望我能帮助你。