[PYTHON] Code de lecture de ce que vous faites avec le didacticiel LSTM de Theano

http://deeplearning.net/tutorial/lstm.html

Une note lorsque je lis brièvement ce que cet exemple fait à l'intérieur. Pour être honnête, cette partie implémentation de LSTM ne peut pas être lue du tout.

La condition de lecture est telle que vous pouvez jouer avec afin de pouvoir la vérifier librement dans une certaine mesure.

Classification des données d'entraînement

En tant que code entier, il existe trois types de données d'entraînement à saisir.

Lecture de code

imdb.py

Nous préparons des données. Il est plus facile d'étendre cette partie lorsqu'il s'agit de données d'origine.

prepare_data()

load_data() --Préparation du train, des données de test valides à partir de données brutes --Argument --path: Cela semble fonctionner comme un cache -Téléchargement des données depuis ici

imdb_preprocess.py Script pour la préparation des données

--Il semble que vous convertissez en mot-> id. --Tokenize en utilisant perl ――Il semble que vous ayez supprimé certaines balises HTML. «Il semble que perl ne soit qu'un arrière-plan historique. (Honnêtement, un traitement qui semble être possible même avec python) ――Il semble qu'il puisse prendre en charge plusieurs langues, mais bien sûr, il ne prend pas en charge le japonais, qui ne peut pas être écrit séparément sans analyse morphologique.

lstm.py Script d'exécution d'apprentissage

$ python lstm.py

Peut être déplacé avec

Fonction principale

train_lstm() Véritable point final. Ici, l'argument de la fonction est un paramètre qui peut être modifié de différentes manières. Il y en a beaucoup. Énumérez les éléments susceptibles d'être altérés pour le moment.

D'autres fonctions que vous devriez connaître un peu

build_model() La partie qui construit le modèle LSTM. Il est également utilisé pour reproduire le modèle qui a été formé avec train_lstm.

init_tparams() Conversion des paramètres pour theano. Le paramètre à lancer à build_model doit être passé par cette fonction.

init_params() Paramètres globaux pour les non-LSTM

pred_error(), pred_probs() Fonctions qui exécutent le modèle. pred_error est utilisé pour le calcul des erreurs. pred_probs affiche le résultat. Non utilisé pendant l'apprentissage. Les deux diffèrent selon qu'ils utilisent f_pred ou f_pred_prob.

f_pred_prob donne le résultat de chaque probabilité, et f_pred renvoie le nombre maximum d'éléments (= à quelle classe il appartenait).

sgd(), adadelta(), rmsprop() Fonction d'optimisation. Le gars à choisir avec l'optimiseur

param_init_lstm(), lstm_layer() Cette partie de montage de LSTM. Le dos est encore un mystère à partir de ce point. Cependant, si vous comparez le code fait dans lstm_layer avec la formule, vous pouvez voir que presque la même chose est faite.

dropout_layer() La partie mise en œuvre de l'abandon.

Contenu du modèle pré-construit

model = numpy.load("lstm_model.npz")

Comme il est enregistré au format de données numpy, il peut être lu par numpy.load.

Recommended Posts

Code de lecture de ce que vous faites avec le didacticiel LSTM de Theano
Didacticiel complémentaire de Blender avec Hy