PyBrain - API ve Araçlar

Artık bir ağın nasıl kurulacağını ve eğitileceğini biliyoruz. Bu bölümde, ağı nasıl oluşturup kaydedeceğimizi ve gerektiğinde ağı nasıl kullanacağımızı anlayacağız.

Ağı Kaydet ve Kurtar

Pybrain aracından NetworkWriter ve NetworkReader'ı, yani pybrain.tools.customxml'i kullanacağız.

İşte aynısının çalışan bir örneği -

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

Ağ, network.xml içine kaydedilir.

NetworkWriter.writeToFile(net, 'network.xml')

XML'yi gerektiğinde okumak için aşağıdaki kodu kullanabiliriz -

net = NetworkReader.readFrom('network.xml')

İşte oluşturulan network.xml dosyası -

<?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

Aşağıda, bu eğitim boyunca kullandığımız API'lerin bir listesi bulunmaktadır.

Ağlar için

  • activate(input)- Parametreyi, yani test edilecek değeri alır. Verilen girdiye göre sonucu geri döndürecektir.

  • activateOnDataset(dataset) - Verilen veri kümesini yineler ve çıktıyı döndürür.

  • addConnection(c) - Ağa bağlantı ekler.

  • addInputModule(m) - Ağa verilen modülü ekler ve giriş modülü olarak işaretler.

  • addModule(m) - Verilen modülü ağa ekler.

  • addOutputModule(m) - Modülü ağa ekler ve bir çıkış modülü olarak işaretler.

  • reset() - Modülleri ve ağı sıfırlar.

  • sortModules()- Dahili olarak sıralayarak ağı aktivasyona hazırlar. Aktivasyondan önce çağrılması gerekir.

Denetlenen Veri Kümeleri için

  • addSample(inp, target) - Yeni bir girdi ve hedef örneği ekler.

  • splitWithProportion(proportion=0.5) - Veri kümesini iki bölüme ayırır, ilk bölüm orantı bölümü verilerini içerir ve sonraki küme kalan bölümü içerir.

Eğitmenler için

trainUntilConvergence(dataset=None, maxEpochs=None, verbose=None, continueEpochs=10, validationProportion=0.25)- Modülü yakınsayıncaya kadar veri setinde eğitmek için kullanılır. Veri kümesi verilmemişse, başlangıçta kullanılan eğitimli veri kümesini eğitmeye çalışacaktır.