Neural Network training with PyBrain won't converge

前端 未结 4 1675
迷失自我
迷失自我 2020-12-08 04:36

I have the following code, from the PyBrain tutorial:

from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
         


        
4条回答
  •  天涯浪人
    2020-12-08 05:01

    The following seems to consistently give the right results:

    from pybrain.tools.shortcuts import buildNetwork
    from pybrain.structure import TanhLayer
    from pybrain.datasets import SupervisedDataSet
    from pybrain.supervised.trainers import BackpropTrainer
    
    #net = buildNetwork(2, 3, 1, bias=True, hiddenclass=TanhLayer)
    net = buildNetwork(2, 3, 1, bias=True)
    
    ds = SupervisedDataSet(2, 1)
    ds.addSample((0, 0), (0,))
    ds.addSample((0, 1), (1,))
    ds.addSample((1, 0), (1,))
    ds.addSample((1, 1), (0,))
    ds.addSample((0, 0), (0,))
    ds.addSample((0, 1), (1,))
    ds.addSample((1, 0), (1,))
    ds.addSample((1, 1), (0,))
    ds.addSample((0, 0), (0,))
    ds.addSample((0, 1), (1,))
    ds.addSample((1, 0), (1,))
    ds.addSample((1, 1), (0,))
    ds.addSample((0, 0), (0,))
    ds.addSample((0, 1), (1,))
    ds.addSample((1, 0), (1,))
    ds.addSample((1, 1), (0,))
    ds.addSample((0, 0), (0,))
    ds.addSample((0, 1), (1,))
    ds.addSample((1, 0), (1,))
    ds.addSample((1, 1), (0,))
    ds.addSample((0, 0), (0,))
    ds.addSample((0, 1), (1,))
    ds.addSample((1, 0), (1,))
    ds.addSample((1, 1), (0,))
    
    trainer = BackpropTrainer(net, ds, learningrate=0.001, momentum=0.99)
    
    trainer.trainUntilConvergence(verbose=True)
    
    print net.activate([0,0])
    print net.activate([0,1])
    print net.activate([1,0])
    print net.activate([1,1])
    

提交回复
热议问题