- PyBrain 教程
- PyBrain - 首頁
- PyBrain - 概述
- PyBrain - 環境設定
- PyBrain - PyBrain 網路介紹
- PyBrain - 使用網路
- PyBrain - 使用資料集
- PyBrain - 資料集型別
- PyBrain - 匯入資料集資料
- PyBrain - 在網路上訓練資料集
- PyBrain - 測試網路
- 使用前饋網路
- PyBrain - 使用迴圈網路
- 使用最佳化演算法訓練網路
- PyBrain - 層
- PyBrain - 連線
- PyBrain - 強化學習模組
- PyBrain - API 和工具
- PyBrain - 示例
- PyBrain 有用資源
- PyBrain - 快速指南
- PyBrain - 有用資源
- PyBrain - 討論
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) - 用於在模組收斂之前在資料集上訓練它。如果未給出資料集,它將嘗試在開始時使用的訓練資料集上進行訓練。