Une histoire où vous voulez créer un réseau de neurones avec la bibliothèque d'apprentissage automatique PyBrain et le rendre persistant avec S3 etc.
En utilisant le module de sérialisation standard de python pickle
, à première vue, le réseau neuronal est sauvegardé et restauré, et vous pouvez également ʻactivate ()pour un
pickle.load () ʻobject correctement`.
Cependant, j'étais accro au problème que l'apprentissage par BackpropTrainer.train ()
etc. n'a pas été redémarré. Le comportement détaillé du cornichon est inconnu et la cause n'a pas été étudiée.
Utiliser NetworkWriter
, qui est fourni comme un utilitaire de PyBrain, résout le problème ci-dessus et reprend l'apprentissage. C'est facile à utiliser, donc je pense que c'est bien.
importer
python
from pybrain.tools.customxml import NetworkWriter, NetworkReader
Exportation
python
NetworkWriter.writeToFile(network, filename_local)
Lis
python
network = NetworkReader.readFrom(filename_local)
Le fichier est enregistré au format XML, et je peux comprendre qu'il est neuronal, et qu'il est un peu plus sécurisé que le format «pickle».
python
<?xml version="1.0" ?>
<PyBrain>
<Network class="pybrain.structure.networks.feedforward.FeedForwardNetwork" name="FeedForwardNetwork-8">
<name val="u'FeedForwardNetwork-8'"/>
<Modules>
<LinearLayer class="pybrain.structure.modules.linearlayer.LinearLayer" inmodule="True" name="in">
<dim val="8"/>
<name val="'in'"/>
</LinearLayer>
<LinearLayer class="pybrain.structure.modules.linearlayer.LinearLayer" name="out" outmodule="True">
<dim val="1"/>
<name val="'out'"/>
</LinearLayer>
<BiasUnit class="pybrain.structure.modules.biasunit.BiasUnit" name="bias">
<name val="'bias'"/>
</BiasUnit>
<SigmoidLayer class="pybrain.structure.modules.sigmoidlayer.SigmoidLayer" name="hidden0">
<dim val="3"/>
<name val="'hidden0'"/>
</SigmoidLayer>
</Modules>
<Connections>
<FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-6">
<inmod val="bias"/>
<outmod val="out"/>
<Parameters>[0.6554487520957738]</Parameters>
</FullConnection>
<FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-7">
<inmod val="bias"/>
<outmod val="hidden0"/>
<Parameters>[0.8141201069100833, -1.9519540651889176, 0.3483014480876096]</Parameters>
</FullConnection>
<FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-5">
<inmod val="in"/>
<outmod val="hidden0"/>
<Parameters>[0.32489279837910084, 0.34480786433574551, 0.75045803824057666, -0.58411948692771176, -0.12327324616272992, -0.41228675759787226, -0.85553671683893218, -1.3320521945223582, -1.0531422952418676, -0.40839301403900452, -2.7565756871565674, -1.6723188687051469, -1.3597994054921079, 0.24852450267525059, -0.40924881241151689, 0.54037857219934371, 1.0960673042273468, 1.3324258379470664, 0.29047259837334116, -0.022417631256966383, 0.44571376571760984, 0.6492450404233816, -0.29105564158278247, 1.2243353023571237]</Parameters>
</FullConnection>
<FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-4">
<inmod val="hidden0"/>
<outmod val="out"/>
<Parameters>[0.25616738836523284, -2.2028123481048487, -0.11026881677981226]</Parameters>
</FullConnection>
</Connections>
</Network>
</PyBrain>