Visualiser le modèle Keras avec Python 3.5

Objectif

J'utilise Python3.5, environnement Anaconda4.3. Il s'agit de la procédure de visualisation du modèle LSTM créé avec Keras avec pydot + Graphviz sur le bloc-notes Jupyter. Le système d'exploitation est CentOS 7.3.

Voici comment visualiser le modèle Keras, mais je vais l'expliquer en incluant les packages nécessaires. https://keras.io/visualization/

procédure

  1. Installez graphviz sur le système d'exploitation avec yum.
  2. Installez pydot et graphviz avec pip.
  3. Visualisez le modèle avec le bloc-notes Jupyter.

Installez graphviz sur OS avec yum

Graphviz lui-même est un package qui n'a rien à voir avec Python. http://www.graphviz.org/About.php

Cela fonctionne non seulement sur CentOS mais aussi sur OS, alors installez-le d'abord. sudo yum -y install graphviz

Installez pydot et graphviz avec pip

Vous avez besoin de pydot et graphviz pour visualiser le modèle à l'aide de graphviz en Python. Ce graphviz est un wrapper Python pour le package OS.

pip install pydot graphviz

Vous l'avez maintenant installé, mais vous aurez peut-être besoin des éléments suivants pour le visualiser, en fonction de votre environnement:

pip install pydot3 pydot-ng

Visualisons le modèle avec Jupyter Notebook

Lancez Jupyter Notebook et écrivez le modèle LSTM dans Keras. Cette fois, j'utiliserai le modèle ici. http://machinelearningmastery.com/sequence-classification-lstm-recurrent-neural-networks-python-keras/

import numpy as np
import pydot
from keras.datasets import imdb
from keras.models import Sequential
from keras.layers import Dense, LSTM
from keras.layers.embeddings import Embedding
from keras.preprocessing import sequence

from keras.utils.visualize_util import model_to_dot 
from IPython.display import SVG

np.random.seed(7)
top_words = 5000
(x_train, y_train), (x_test, y_test) = imdb.load_data(nb_words=top_words)

max_review_length = 500
x_train = sequence.pad_sequences(x_train, maxlen=max_review_length)
x_test = sequence.pad_sequences(x_test, maxlen=max_review_length)

embedding_vector_length = 32
model = Sequential()
model.add(Embedding(top_words, embedding_vector_length, input_length=max_review_length))
model.add(LSTM(100))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
#Visualisez maintenant le modèle.
SVG(model_to_dot(model).create(prog='dot', format='svg'))

model.fit(x_train, y_train, validation_data=(x_test, y_test), nb_epoch=3, batch_size=64)
scores = model.evaluate(x_test, y_test, verbose=0)
print ("accuracy: %.3f%%" % (scores[1]*100))

Vous pouvez maintenant visualiser le modèle comme indiqué ci-dessous. 2017-02-04_graphviz.PNG

Recommended Posts

Visualiser le modèle Keras avec Python 3.5
Modèle d'espace d'état gaussien général en Python
Modèle d'espace d'états personnalisé en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
J'ai essayé d'implémenter TOPIC MODEL en Python
Créer un modèle d'investissement dynamique simple en Python
Liste triée en Python
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Modifier les polices en Python
Opérations sur les fichiers en Python
Lire DXF avec python
Daily AtCoder # 53 en Python
Séquence de touches en Python