PyBrain - API และเครื่องมือ
ตอนนี้เรารู้วิธีสร้างเครือข่ายและฝึกอบรมแล้ว ในบทนี้เราจะเข้าใจวิธีการสร้างและบันทึกเครือข่ายและใช้เครือข่ายเมื่อจำเป็น
บันทึกและกู้คืนเครือข่าย
เราจะใช้ NetworkWriter และ NetworkReader จากเครื่องมือ Pybrain นั่นคือ 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)- ใช้เพื่อฝึกโมดูลบนชุดข้อมูลจนกว่าจะบรรจบกัน หากไม่ได้รับชุดข้อมูลชุดข้อมูลจะพยายามฝึกชุดข้อมูลที่ผ่านการฝึกอบรมที่ใช้ในตอนเริ่มต้น