2016-06-13 19 views
6

Non ho potuto ottenere che un DNNClassifier stampa il progresso durante l'allenamento, cioè il punteggio di perdita e di convalida. Come ho capito, la perdita può essere stampata usando il parametro config che eredita da BaseEstimator, ma quando ho passato un oggetto RunConfig, il classificatore non ha stampato nulla.Come stampare i progressi quando si allena un DNNClassifier in tensorflow r0.9 (skflow)?

from tensorflow.contrib.learn.python.learn.estimators import run_config 

config = run_config.RunConfig(verbose=1) 
classifier = learn.DNNClassifier(hidden_units=[10, 20, 10], 
          n_classes=3, 
          config=config) 
classifier.fit(X_train, y_train, steps=1000) 

Mi manca qualcosa? Ho controllato come runConfig gestisce il parametro verbose e sembra that it only cares if its greater than 1, che non corrisponde con la documentazione:

verbose: Controlla il livello di dettaglio, possibili valori: 0: le informazioni algoritmo e di debug è silenziato. 1: il formatore stampa i progressi. 2: viene stampato il posizionamento del dispositivo di registro.

Per quanto riguarda il punteggio di convalida ho pensato che l'utilizzo monitors.ValidationMonitor sarebbe bene, ma quando l'ho provato, il classificatore non stampa nulla, anche non accade nulla quando cercato di utilizzare early_stopping_rounds. Cerco documentazione o alcuni commenti nel codice sorgente ma non sono riuscito a trovarne nessuno per i monitor.

risposta

8

Aggiungendo questi prima la funzione misura mostra il progresso:

import logging 
logging.getLogger().setLevel(logging.INFO) 

Esempio:

INFO:tensorflow:global_step/sec: 0 
INFO:tensorflow:Training steps [0,1000000) 
INFO:tensorflow:Step 1: loss = 10.5043 
INFO:tensorflow:training step 100, loss = 10.45380 (0.223 sec/batch). 
INFO:tensorflow:Step 101: loss = 10.5623 
INFO:tensorflow:training step 200, loss = 10.46701 (0.220 sec/batch). 
INFO:tensorflow:Step 201: loss = 10.3885 
INFO:tensorflow:training step 300, loss = 10.36501 (0.232 sec/batch). 
INFO:tensorflow:Step 301: loss = 10.3441 
INFO:tensorflow:training step 400, loss = 10.44571 (0.220 sec/batch). 
INFO:tensorflow:Step 401: loss = 10.396 
INFO:tensorflow:global_step/sec: 3.95