2016-01-19 12 views
12

Ich bin langsam durch die Tensorflow-Tutorials gegangen, und ich nehme an, dass ich wieder muss. Ich habe keinen Hintergrund in ML, schiebe mich aber langsam nach oben.Wie wenden Sie ein trainiertes Modell an?

Wie auch immer, nachdem ich den RNN tutorial gelesen habe und den Trainingscode ausgeführt habe, bin ich verwirrt.

Wie wendet man das trainierte Modell an, damit es für Sprachvorhersagen verwendet werden kann?

Ich weiß, das ist eine schreckliche noobish und einfache Frage, aber ich glaube, dass es für andere von Nutzen sein wird, wie ich es gesehen habe gefragt und nicht in zufriedenstellender Weise beantwortet.

Antwort

4

Im Allgemeinen, wenn Sie ein Modell trainieren, tun Sie zuerst einen Vorwärtspass, und dann einen Rückwärtslauf. Der Vorwärtsdurchlauf erstellt basierend auf Ihren Eingabedaten eine Vorhersage, und der Rückwärtsdurchlauf passt Ihr Modell basierend auf der Korrektheit Ihrer Vorhersage an.

Wenn Sie also Ihr Modell anwenden möchten, führen Sie einfach einen Vorwärtsdurchlauf mit Ihren neuen Daten als Eingabe durch.

In Ihrem speziellen Beispiel mit this code, können Sie sehen, wie es durch einen Blick auf getan hat, wie sie das Test-Set laufen, Startlinie 286.

# They instantiate the model with is_training=False 
mtest = PTBModel(is_training=False, config=eval_config) 

# Then they can do a forward pass 
test_perplexity = run_epoch(session, mtest, test_data, tf.no_op()) 
print("Test Perplexity: %.3f" % test_perplexity) 

Und wenn Sie die aktuelle Vorhersage wollen und nicht die Ratlosigkeit Es ist der Status in der run_epoch-Funktion:

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