[PYTHON] Persister le réseau de neurones construit avec PyBrain

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.

Utilisez du cornichon

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 unpickle.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

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>

Recommended Posts

Persister le réseau de neurones construit avec PyBrain
Réseau de neurones avec Python (scikit-learn)
3. Distribution normale avec un réseau neuronal!
Réseau de neurones commençant par Chainer
4. Entourez les paramètres avec un réseau neuronal!
Réseau neuronal avec OpenCV 3 et Python 3
Modèle de classification simple avec réseau neuronal
[TensorFlow] [Keras] Construction d'un réseau neuronal avec Keras
Touchez l'objet du réseau neuronal
Composez avec un réseau neuronal! Run Magenta
Prédire les données de séries chronologiques avec un réseau neuronal
2. Écart moyen et standard avec le réseau neuronal!
Expérimentez avec divers algorithmes d'optimisation sur le réseau neuronal
Visualisez la couche interne du réseau neuronal
Vérification de la normalisation des lots avec un réseau neuronal multicouche
J'ai couru le réseau neuronal sur le FPGA réel
J'expliquerai à propos du réseau neuronal "Calcul neuronal différentiel (DNC)" avec mémoire externe.
Réseau neuronal paramétrique
J'ai couru le tutoriel TensorFlow avec des commentaires (premier réseau de neurones: le début du problème de classification)
Entraînez les données MNIST avec PyTorch en utilisant un réseau neuronal
L'histoire de la création d'un réseau neuronal de génération musicale
Implémenter un réseau neuronal convolutif
Implémenter le réseau neuronal à partir de zéro
Expérience de réseau de neurones pliable
Ce à quoi j'étais accro lorsque j'ai construit mon propre réseau de neurones en utilisant les poids et les biais que j'ai obtenus avec le classificateur MLP de scikit-learn.
Créez une application Web qui reconnaît les nombres avec un réseau neuronal
Essayez de créer un réseau de neurones / d'apprentissage en profondeur avec scratch
Un exemple de python pour apprendre XOR avec un algorithme génétique sur un réseau neuronal
Un diagramme de réseau a été créé avec les données du COVID-19.
Classification d'images avec un réseau de neurones auto-fabriqué par Keras et PyTorch
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
[Apprentissage en profondeur] Classification d'images avec un réseau neuronal convolutif [DW jour 4]
Le modèle linéaire généralisé (GLM) et le réseau neuronal sont les mêmes (2)