2016-01-19 17 views
12

Sto lentamente esaminando i tutorial di tensorflow e presumo che dovrò farlo di nuovo. Non ho uno sfondo in ML, ma sto lentamente spingendo verso l'alto.Come si applica effettivamente un modello addestrato?

In ogni caso, dopo aver letto il codice RNN tutorial e aver eseguito il codice di allenamento, sono confuso.

Come si applica effettivamente il modello addestrato in modo che possa essere utilizzato per fare previsioni sulla lingua?

So che questa è una domanda terribile di noobish e semplice, ma credo che sarà utile per gli altri, come ho visto ha chiesto e non ha risposto in modo soddisfacente.

risposta

4

In generale, quando si allena un modello, si esegue prima un passaggio in avanti e quindi un passaggio all'indietro. L'inoltro in avanti effettua una previsione in base ai dati inseriti e il pass backward regola il modello in base alla correttezza della previsione.

Così, quando si desidera applicare il modello, si esegue semplicemente un passaggio in avanti con i nuovi dati come input.

Nel vostro esempio particolare, utilizzando this code, si può vedere come è fatto guardando a come corrono il set di prova, a partire linea 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) 

E se si desidera che la previsione attuale e non la perplessità , è lo stato nella funzione run_epoch:

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