2016-01-06 2 views

risposta

2

In questo momento il miglior modo esterno è compilare con un profiler CPU/GPU, ma questo deve essere fatto manualmente modificando le opzioni nei file BUILD e tensorflow.bzl (non sicuro dove).

È possibile quindi ottenere informazioni sul profilo su quali funzioni stanno prendendo più tempo, ecc E 'a voi, è possibile eseguire utilizzando gperftools e la visualizzazione da pprof

Dal codice di tensorflow è collegata tramite swig, i' Non sono sicuro al 100% quanto sia facile ottenere i simboli durante la lettura del profilo tramite pprof. Potrebbe essere possibile indicarlo al file di swag .so che è stato creato.

Provalo e facci sapere se funziona per te!

2

Se si desidera scoprire quanto tempo è stato dedicato a ciascuna operazione in TF, è possibile farlo in tensorboard utilizzando runtime statistics. Avrete bisogno di fare qualcosa di simile (controllare l'esempio completo nel link di cui sopra):

run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE) 
run_metadata = tf.RunMetadata() 
sess.run(<values_you_want_to_execute>, options=run_options, run_metadata=run_metadata) 
your_writer.add_run_metadata(run_metadata, 'step%d' % i) 

meglio che solo la stampa che si può vedere in tensorboard:

Inoltre , facendo clic su un nodo verrà visualizzata la memoria totale esatta, il tempo di calcolo e le dimensioni di uscita del tensore.

Inoltre ora tensorflow ha un debugger. Ecco un tutorial su come usarlo.

[1]: https://www.tensorflow.org/get_started/graph_viz#

+0

L'attuale (fine 2017, TensorFlow 1.4) modo di ottenere la linea temporale utilizza un [ProfilerHook] (https://www.tensorflow.org/api_docs/python/tf/train/ProfilerHook). Funziona con MonitoredSession in tf.Estimator dove tf.RunOptions non è disponibile. – Urs

1

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler

Caratteristiche principali: parametri del modello

Misura, le operazioni di galleggiante, forme tensore.

Tempi di esecuzione op del profilo, dimensione della memoria richiesta e posizionamento del dispositivo.

Ispeziona le forme dei tensori del checkpoint e i loro valori.

Raggruppa in modo selettivo, filtrare, rendere conto e ordinare le operazioni.

+0

La domanda dice * "C'è un modo per calcolare il costo di tempo per ciascun nodo in una rete TensorFlow?" * Puoi migliorare la risposta mostrando come utilizzare lo strumento per "calcolare il costo del tempo"? – Pang

+0

Peccato, collegamento non trovato –