How to save and recover PyBrain training?

后端 未结 3 1203
心在旅途
心在旅途 2020-12-07 16:04

Is there a way to save and recover a trained Neural Network in PyBrain, so that I don\'t have to retrain it each time I run the script?

相关标签:
3条回答
  • 2020-12-07 16:15

    NetworkWriter is the way to go. Using Pickle you can't retrain network as Jorg tells.

    You need something like this:

    from pybrain.tools.shortcuts import buildNetwork
    from pybrain.tools.customxml import NetworkWriter
    from pybrain.tools.customxml import NetworkReader
    
    net = buildNetwork(4,6,1)
    
    NetworkWriter.writeToFile(net, 'filename.xml')
    net = NetworkReader.readFrom('filename.xml')
    
    0 讨论(0)
  • 2020-12-07 16:30

    The NetworkWriter and NetworkReader work great. I noticed that upon saving and loading via pickle, that the network is no longer changeable via training-functions. Thus, I would recommend using the NetworkWriter-method.

    0 讨论(0)
  • 2020-12-07 16:34

    PyBrain's Neural Networks can be saved and loaded using either python's built in pickle/cPickle module, or by using PyBrain's XML NetworkWriter.

    # Using pickle
    
    from pybrain.tools.shortcuts import buildNetwork
    import pickle
    
    net = buildNetwork(2,4,1)
    
    fileObject = open('filename', 'w')
    
    pickle.dump(net, fileObject)
    
    fileObject.close()
    
    fileObject = open('filename','r')
    net = pickle.load(fileObject)
    

    Note cPickle is implemented in C, and therefore should be much faster than pickle. Usage should mostly be the same as pickle, so just import and use cPickle instead.

    # Using NetworkWriter
    
    from pybrain.tools.shortcuts import buildNetwork
    from pybrain.tools.customxml.networkwriter import NetworkWriter
    from pybrain.tools.customxml.networkreader import NetworkReader
    
    net = buildNetwork(2,4,1)
    
    NetworkWriter.writeToFile(net, 'filename.xml')
    net = NetworkReader.readFrom('filename.xml') 
    
    0 讨论(0)
提交回复
热议问题