Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

244
Views
¿Cómo se evalúan los nuevos resúmenes de tf.contrib.summary en TensorFlow?

Tengo algunos problemas para entender la nueva API tf.contrib.summary . En el anterior, parecía que todo lo que se suponía que debía hacer era ejecutartf.summary.merge_all() y ejecutarlo como una operación.

Pero ahora tenemos cosas como tf.contrib.summary.record_summaries_every_n_global_steps , que se pueden usar así:

 import tensorflow.contrib.summary as tfsum summary_writer = tfsum.create_file_writer(logdir, flush_millis=3000) summaries = [] # First we create one summary which runs every n global steps with summary_writer.as_default(), tfsum.record_summaries_every_n_global_steps(30): summaries.append(tfsum.scalar("train/loss", loss)) # And then one that runs every single time? with summary_writer.as_default(), tfsum.always_record_summaries(): summaries.append(tfsum.scalar("train/accuracy", accuracy)) # Then create an optimizer which uses a global step step = tf.create_global_step() train = tf.train.AdamOptimizer().minimize(loss, global_step=step)

Y ahora vienen algunas preguntas:

  1. Si solo ejecutamos session.run(summaries) en un bucle, supongo que el resumen de precisión se escribiría cada vez, mientras que el de pérdida no, porque solo se escribe si el paso global es divisible por 30.
  2. Suponiendo que los resúmenes evalúen automáticamente sus dependencias, nunca necesito ejecutar session.run([accuracy, summaries]) pero puedo ejecutar session.run(summaries) ya que tienen una dependencia en el gráfico, ¿verdad?
  3. Si 2) es cierto, ¿no puedo simplemente agregar una dependencia de control al paso de entrenamiento para que los resúmenes se escriban en cada recorrido del tren? ¿O es una mala práctica?
  4. ¿Hay alguna desventaja en el uso de dependencias de control en general para las cosas que se evaluarán al mismo tiempo de todos modos?
  5. ¿Por qué tf.contrib.summary.scalar (y otros) aceptan un parámetro de step ?

Al agregar una dependencia de control en 3) me refiero a hacer esto:

 tf.control_dependencies(summaries): train = tf.train.AdamOptimizer().minimize(loss, global_step=step)
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

la respuesta se movió de editar a auto-respuesta según lo solicitado


Acabo de jugar un poco con esto, y parece que si uno combina tf.control_dependencies con tf.record_summaries_every_n_global_steps , se comporta como se esperaba y el resumen solo se registra cada enésimo paso. Pero si se ejecutan juntos dentro de una sesión, como session.run([train, summs]) , los resúmenes se almacenan de vez en cuando, pero no exactamente cada enésimo paso. Probé esto con n = 2 y con el segundo enfoque, el resumen a menudo se escribía en pasos impares, mientras que con el enfoque de dependencia de control siempre estaba en un paso par.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!