L'API parla dello Graph Collections che a giudicare dal numero code è una memoria di chiavi/dati di uso generale. Qual è lo scopo di queste collezioni?Qual è lo scopo delle raccolte di grafici in TensorFlow?
risposta
Ricordare che sotto il cofano, Tensorflow è un sistema per specificare e quindi eseguire i grafici del flusso di dati computazionale. Le raccolte di grafici sono utilizzate come parte del tracciamento dei grafici costruiti e di come devono essere eseguiti. Ad esempio, quando crei determinati tipi di operazioni, ad esempio tf.train.batch_join
, il codice che aggiunge l'operazione aggiungerà anche alcuni corridori di coda alla raccolta di grafici QUEUE_RUNNERS
. Successivamente, quando chiami start_queue_runners()
, per impostazione predefinita, verrà esaminata la raccolta QUEUE_RUNNERS
per sapere quali corridori iniziare.
Sono ancora confuso sul concetto di collezioni. Aggiungendo diversi op in diverse raccolte, rende più efficiente la ricerca degli op? Sembra che la raccolta sia utile solo per raggruppare o organizzare le operazioni insieme senza apportare benefici "reali" al calcolo, giusto? Qui per "reale" intendo se rimuovo il concetto di raccolta dal sistema tensorflow, non danneggia il calcolo. – ZijunLost
No, il punto delle collezioni non è l'efficienza, il punto è la contabilità. Le raccolte sono utilizzate per sapere quali variabili devono essere addestrate. O a quale op deve essere chiamato per allenarsi. Le raccolte sono una mappa da stringa a bit di set-di-grafico. Diverse stringhe conosciute sono memorizzate in GraphKeys. Questi si riferiscono a insiemi di bit di grafico importanti (ad es. Ops, variabili, ecc.) – BlessedKey
Penso che ci siano almeno due vantaggi per me finora:
- quando si distribuisce il programma su più GPU o macchine è conveniente per raccogliere le perdite da diversi dispositivi che si trovano nella stessa collezione. Utilizzare tf.add_n per aggiungerli per accumulare la perdita.
- Per aggiornare un determinato insieme di variabili come pesi e bias a modo mio.
Ad esempio:
import tensorflow as tf
w = tf.Variable([1,2,3], collections=[tf.GraphKeys.WEIGHTS], dtype=tf.float32)
w2 = tf.Variable([11,22,32], collections=[tf.GraphKeys.WEIGHTS], dtype=tf.float32)
weight_init_op = tf.variables_initializer(tf.get_collection_ref(tf.GraphKeys.WEIGHTS))
sess = tf.InteractiveSession()
sess.run(weight_init_op)
for vari in tf.get_collection_ref(tf.GraphKeys.WEIGHTS):
tf.add_to_collection(tf.GraphKeys.UPDATE_OPS, vari.assign(0.2 * vari))
weight_update_ops = tf.get_collection_ref(tf.GraphKeys.UPDATE_OPS)
sess.run(weight_update_ops)
L'output:
[array ([0,2, ,40,000001 millions, ,60,000002 millions], dtype = float32), array ([2,20,000005 millions, 4,4000,001 mila, 6,4000,001 mila], dtype = float32)]
Piccola nota sul codice ... quando si avvia tf.InteractiveSession(), perché non ne trarrai beneficio? Come in ... utilizzare weight_init_op.run() e weight_update_ops.eval() – zwep
@zwep Sì, hai ragione. Forse non ho idea di quel trucco quando ho scritto questo .; Ad ogni modo il mio codice funziona. – lerner
- 1. Qual è lo scopo di tf.app.flags in TensorFlow?
- 2. Qual è lo scopo delle classi astratte?
- 3. Qual è lo scopo di. * \\?
- 4. Qual è lo scopo delle viste in SQL?
- 5. Qual è lo scopo delle "Prenotazioni" in Amazon EC2
- 6. Qual è lo scopo delle relazioni del pacchetto in .NET?
- 7. Qual è lo scopo della struttura delle bandiere in iOS?
- 8. Qual è lo scopo di :: in C#?
- 9. Qual è lo scopo di $ in XSLT
- 10. Qual è lo scopo delle API di destinazione e minSDK
- 11. Qual è lo scopo delle direttive #line di perl?
- 12. Qual è lo scopo di @EnableTransactionManagement?
- 13. Qual è lo scopo delle diverse proprietà * Target?
- 14. Qual è lo scopo dell'hash MD5 nel download delle app?
- 15. Qual è lo scopo di 'var'?
- 16. Qual è lo scopo di HTML?
- 17. Qual è lo scopo di riutilizzareIdentificatore?
- 18. Qual è lo scopo di EXTRA_CFLAGS?
- 19. Qual è lo scopo di XACT_ABORT
- 20. Qual è lo scopo di "() =>"
- 21. Qual è lo scopo di Rake?
- 22. Qual è lo scopo di HttpHeaders.TryAddWithoutValidation?
- 23. Qual è lo scopo di Microsoft.Net.Compilers?
- 24. Qual è lo scopo di angular-sanitize?
- 25. Qual è lo scopo dell'uso di CommandType.Tabledirect
- 26. Qual è lo scopo di IApplicationBuilder.New()
- 27. Qual è lo scopo di durandal?
- 28. Qual è lo scopo di clojure.core.reducers/reduce?
- 29. Qual è lo scopo di .git/log
- 30. qual è lo scopo di javax StreamSource
Cerca "GraphKeys". per alcuni esempi di raccolte: vale a dire TrainableVariables: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/variables.py#L113, TableInitializers: https://tensorflow.googlesource.com/tensorflow /+/0.5.0/tensorflow/python/ops/data_flow_ops.py#521, Sintesi: https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/python/ops/summary_ops.py#48 –
Ciao @ YaroslavBulatov puoi ri-pubblicare il tuo link? Gli ultimi due sono rotti. Grazie sempre! – Aaron