【问题标题】:How to save and recover PyBrain training?如何保存和恢复 PyBrain 训练?
【发布时间】:2011-05-15 02:50:50
【问题描述】:

有没有办法在 PyBrain 中保存和恢复经过训练的神经网络,这样我就不必在每次运行脚本时重新训练它?

【问题讨论】:

    标签: pybrain


    【解决方案1】:

    可以使用 python 内置的 pickle/cPickle 模块或 PyBrain 的 XML NetworkWriter 保存和加载 PyBrain 的神经网络。

    # 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)
    

    注意 cPickle 是用 C 实现的,因此应该比 pickle 快得多。用法应该和pickle大体相同,所以只需要导入并使用cPickle即可。

    # 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') 
    

    【讨论】:

    【解决方案2】:

    NetworkWriterNetworkReader 工作得很好。我注意到通过pickle 保存和加载后,网络不再可以通过训练功能进行更改。因此,我建议使用NetworkWriter-方法。

    【讨论】:

      【解决方案3】:

      NetworkWriter 是要走的路。使用 Pickle,你不能像 Jorg 所说的那样重新训练网络。

      你需要这样的东西:

      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')
      

      【讨论】:

        猜你喜欢
        • 2016-02-18
        • 1970-01-01
        • 2023-03-12
        • 2018-02-08
        • 1970-01-01
        • 2021-06-24
        • 2018-04-25
        • 1970-01-01
        相关资源
        最近更新 更多