PyBrain - API et outils

Nous savons maintenant comment construire un réseau et le former. Dans ce chapitre, nous allons comprendre comment créer et enregistrer le réseau, et utiliser le réseau chaque fois que nécessaire.

Enregistrer et récupérer le réseau

Nous allons utiliser NetworkWriter et NetworkReader de Pybrain tool, c'est-à-dire pybrain.tools.customxml.

Voici un exemple de travail de la même chose -

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

Le réseau est enregistré dans network.xml.

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

Pour lire le xml si nécessaire, nous pouvons utiliser le code comme suit -

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

Voici le fichier network.xml créé -

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

Vous trouverez ci-dessous une liste des API que nous avons utilisées tout au long de ce didacticiel.

Pour les réseaux

  • activate(input)- Il prend le paramètre, c'est-à-dire la valeur à tester. Il renverra le résultat en fonction de l'entrée donnée.

  • activateOnDataset(dataset) - Il itérera sur l'ensemble de données donné et retournera la sortie.

  • addConnection(c) - Ajoute la connexion au réseau.

  • addInputModule(m) - Ajoute le module donné au réseau et le marque comme module d'entrée.

  • addModule(m) - Ajoute le module donné au réseau.

  • addOutputModule(m) - Ajoute le module au réseau et le marque comme module de sortie.

  • reset() - Réinitialise les modules et le réseau.

  • sortModules()- Il prépare le réseau à l'activation en triant en interne. Il doit être appelé avant l'activation.

Pour les ensembles de données supervisés

  • addSample(inp, target) - Ajoute un nouvel échantillon d'entrée et de cible.

  • splitWithProportion(proportion=0.5) - Divise l'ensemble de données en deux parties, la première partie contenant les données de la partie proportion et l'ensemble suivant contenant le reste.

Pour les formateurs

trainUntilConvergence(dataset=None, maxEpochs=None, verbose=None, continueEpochs=10, validationProportion=0.25)- Il est utilisé pour entraîner le module sur l'ensemble de données jusqu'à ce qu'il converge. Si le jeu de données n'est pas donné, il essaiera de s'entraîner sur le jeu de données formé utilisé au début.