2016-04-29 18 views
1

Ich bin neu in LSTM und Tensorflow, und ich versuche, ein LSTM-Modell zu verwenden, um einige riesige Datenmengen zu lernen und dann zu klassifizieren, die ich habe. (Ich bin nicht besorgt über die Genauigkeit, die ich lernen möchte). Ich habe versucht, das Modell in ähnlicher Weise wie in der PTB-Wortvorhersage Tutorial, das LSTM verwendet. Der Code im Tutorial (https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/models/rnn/ptb/ptb_word_lm.py) verwendet die unter der Linie die Sitzung mit dem ModellTensorflow LSTM Modell Test

cost, state, _ = session.run([m.cost, m.final_state, eval_op], 
           {m.input_data: x, 
            m.targets: y, 
            m.initial_state: state}) 

I modifizierte dies für mein Beispiel auszuführen, wie unten (die Logits und mit ihr arbeiten zu bekommen):

cost, state, _,output,logits = session.run([m.cost, m.final_state, eval_op, m.output,m.logits], 
           {m.input_data: x, 
            m.targets: y, 
            m.initial_state: state}) 

Also, wenn jemand meine Fragen helfen könnte, wie unten sind:

  • wie das Modelltraining gebaut, während für den Test verwendet werden? Was passiert genau, wenn 3 Modelle im Tutorial 1 für jeden Test, Zug und Validierung verwendet werden?
  • Was ist mit den Zielen während des Testens (wenn ich sie nicht kenne, sagen wir in einem Klassifizierungsproblem). Was sich in run_epoch() ändert, kann so erfolgen, dass das während des Trainings erstellte Modell verwendet wird.
  • Nur eine andere Frage: Es ist schwierig, Tensorflow-Graphen zu debuggen (und ich fand es schwierig, den Tensorboard-Visualizer zu verstehen) Und ich fand keine gute Ressource für das Lernen Tensorflow (die Website scheint Struktur/Dokumentation fehlt) Was anderes Ressourcen/Debug-Methoden gibt es?

Danke.

+0

Vielleicht adressieren diese einfachen LSTM-Beispiele Ihre Fragen zum grundlegenden LSTM in TensorFlow: https://github.com/sherjilozair/char-rnn-tensorflow oder https://github.com/nlintz/TensorFlow-Tutorials/blob /master/7_lstm.py –

Antwort

0

meine eigene Frage beantworten zu helfen alle, die hier endet: Bei der Plausibilitätsprüfung/Tests zeigen den runepoch(), dass es die Validierung/Testphase (unter Verwendung einen bool oder eine andere Art und Weise) ist. Rufen Sie die Kosten op nicht (wie dies der einzige Betrieb ist, in der Ziele erforderlich ist.) Wird so modifiziert, Code für die Validierung/Testphase wie folgt aussehen:

state, _,output,logits = session.run([m.final_state, eval_op, m.output,m.logits], 
          {m.input_data: x, 
           m.initial_state: state}) 

nutzen die Logits später für calcluating die Genauigkeit.

Verwandte Themen