【问题标题】:How can I calculate or monitor the training of a neural network in pybrain?如何计算或监控 pybrain 中神经网络的训练?
【发布时间】:2015-05-18 21:37:18
【问题描述】:

我有一个神经网络 n pybrain,有两个输入,一个隐藏层和一个输出层。我使用以下内容进行训练:

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

net 是神经网络,ds 是训练数据。

我的问题是我是否以及如何计算完成培训所需的时间,或者我如何监控培训的进度。谢谢。

【问题讨论】:

    标签: python neural-network pybrain


    【解决方案1】:

    你总是可以继承BackpropTrainer(源代码here) 并覆盖 trainUntilConvergence 如果使用 maxEpochs ,使用 epochs 和 epochs 之间的比率跟踪完整性百分比。

    如果不使用maxEpochs,您始终可以根据验证错误的平均变化率和continueEpochs 的大小对剩余的时期数进行有根据的猜测。或者只是检查验证错误的变化率。如果您想将纪元映射到时间,则必须分析每个纪元的时间并存储它们。

    【讨论】:

    • 理想情况下,您应该使用 trainEpochs() 而不是修改 trainUntilConvergence()。训练 X 个时期,检查结果,训练 x 个时期。重复直到收敛或最大时期。
    【解决方案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()
    

    你会在每个周期获得一个新的情节。不是很好,但对我有用。

    希望能帮到你

    【讨论】:

    • maxepochs 是一个整数。没有 len 属性。你是说 results.append(aux) 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 2013-03-23
    • 2011-04-07
    • 1970-01-01
    • 2012-08-16
    • 2013-02-01
    • 2017-05-18
    相关资源
    最近更新 更多