Pybrain 简明教程
PyBrain - API & Tools
现在我们知道如何构建网络并训练它了。在本章中,我们将了解如何创建和保存网络,以及在需要时使用网络。
Save and Recover Network
我们将使用 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 列表。
For Networks
-
activate(input) - 它采用参数,即要测试的值。它将根据给定的输入返回结果。
-
activateOnDataset(dataset) - 它将在给定的数据集上进行迭代并返回输出。
-
addConnection(c) - 添加连接到网络。
-
addInputModule(m) - 添加给定模块到网络并将其标记为输入模块。
-
addModule(m) - 添加给定模块到网络。
-
addOutputModule(m) - 添加模块到网络并将其标记为输出模块。
-
reset() - 重置模块和网络。
-
sortModules() - 通过在内部进行排序来准备网络以进行激活。必须在激活前调用它。