2014-02-08 38 views
7

我想绘制一条学习曲线来查看训练过程中神经网络的进度。横轴表示迭代总数,纵轴表示错误率。随着网络培训的进展,我希望看到测试和训练集错误率。R中的神经网络包 - 如何在训练收敛之前获得权重?

nn <- neuralnet(f, 
      data = train, 
      hidden = 2, 
      linear.output = F, 
      threshold = 0.01, 
      stepmax = 10, 
      lifesign = "full", 
      learningrate = .1, 
      algorithm='backprop') 

通过设置stepmax = 10(或50或?)我希望能够检查网络之前收敛,看看有什么错误率都在测试和训练集,然后继续训练再进行10个步骤。 (部分)训练的神经网络是NN命名,我正打算设置startweights在中断训练得到的权重如下:

# Try to further train alerady trained net 
nn <- neuralnet(f, 
      data = train, 
      hidden = 2, 
      linear.output = F, 
      threshold = 0.01, 
      lifesign = "full", 
      learningrate = .1, 
      startweights = nn$weights, 
      algorithm='backprop') 

然而,培训给予了警告,“算法没有收敛在stepmax中1次重复中的1次“。我并不期望它会聚,但这10个完成的训练步骤应该已经修改了最初的随机权重。唉,$重量是NULL。

有谁知道一种方法来完成这个使用神经网络?

回答

6

我直接写信给neuralnet包,Frauke冈瑟的作者之一,并获得了明确的答案:

“不幸的是,在当下,训练的权重只存储如果网络融合是尚未实现,您可以在训练过程中访问权重,或者网络不会收敛。“