PyBrain - API 和工具
现在我们知道如何构建网络并对其进行训练。在本章中,我们将了解如何创建和保存网络,并在需要时使用网络。
保存和恢复网络
我们将使用 Pybrain 工具中的 NetworkWriter 和 NetworkReader,即 pybrain.tools.customxml。
以下是相同的工作示例 −
from pybrain.tools.shortcuts import buildNetwork from pybrain.tools.customxml import NetworkWriter from pybrain.tools.customxml import NetworkReader net = buildNetwork(2,1,1) NetworkWriter.writeToFile(net, 'network.xml') net = NetworkReader.readFrom('network.xml')
网络保存在 network.xml 中。
NetworkWriter.writeToFile(net, 'network.xml')
要在需要时读取 xml,我们可以使用以下代码 −
net = NetworkReader.readFrom('network.xml')
这是创建的 network.xml 文件 −
<?xml version="1.0" ?> <PyBrain> <Network class="pybrain.structure.networks.feedforward.FeedForwardNetwork" name="FeedForwardNetwork-8"> <name val="'FeedForwardNetwork-8'"/> <Modules> <LinearLayer class="pybrain.structure.modules.linearlayer.LinearLayer" inmodule="True" name="in"> <name val="'in'"/> <dim val="2"/> </LinearLayer> <LinearLayer class="pybrain.structure.modules.linearlayer.LinearLayer" name="out" outmodule="True"> <name val="'out'"/> <dim val="1"/> </LinearLayer> <BiasUnit class="pybrain.structure.modules.biasunit.BiasUnit" name="bias"> <name val="'bias'"/> </BiasUnit> <SigmoidLayer class="pybrain.structure.modules.sigmoidlayer.SigmoidLayer" name="hidden0"> <name val="'hidden0'"/> <dim val="1"/> </SigmoidLayer> </Modules> <Connections> <FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-6"> <inmod val="bias"/> <outmod val="out"/> <Parameters>[1.2441093186965146]</Parameters> </FullConnection> <FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-7"> <inmod val="bias"/> <outmod val="hidden0"/> <Parameters>[-1.5743530012126412]</Parameters> </FullConnection> <FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-4"> <inmod val="in"/> <outmod val="hidden0"/> <Parameters>[-0.9429546042034236, -0.09858196752687162]</Parameters> </FullConnection> <FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-5"> <inmod val="hidden0"/> <outmod val="out"/> <Parameters>[-0.29205472354634304]</Parameters> </FullConnection> </Connections> </Network> </PyBrain>
API
下面是我们在本教程中使用的 API 列表。
对于网络
activate(input) − 它需要参数,即要测试的值。它将根据给定的输入返回结果。
activateOnDataset(dataset) − 它将迭代给定的数据集并返回输出。
addConnection(c) − 添加到网络的连接。
addInputModule(m) − 将给定的模块添加到网络并将其标记为输入模块。
addModule(m) −将给定模块添加到网络。
addOutputModule(m) − 将模块添加到网络并将其标记为输出模块。
reset() − 重置模块和网络。
sortModules() − 它通过内部排序为网络激活做好准备。 必须在激活之前调用它。
对于监督数据集
addSample(inp, target) − 添加新的输入和目标样本。
splitWithProportion(proportion=0.5) −将数据集分为两部分,第一部分包含比例部分数据,下一组包含剩余部分。
对于训练器
trainUntilConvergence(dataset=None, maxEpochs=None, verbose=None, continueEpochs=10, validationProportion=0.25) − 用于在数据集上训练模块,直到收敛。如果没有给出数据集,它将尝试在开始时使用的训练数据集上进行训练。