Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

245
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda