Интервал между контрольными точками в tensorflow

Как указать интервал между двумя последовательными контрольными точками в тензорном потоке? В tf.train.Saver нет опций, чтобы указать это. Каждый раз, когда я запускаю модель с другим количеством глобальных шагов, я получаю новый интервал между контрольными точками.


person Safaa    schedule 11.03.2017    source источник


Ответы (2)


tf.train.Saver — это «пассивная» утилита для записи контрольных точек, и она только записывает контрольную точку, когда какой-то другой код вызывает его метод .save() . Следовательно, скорость написания контрольных точек зависит от того, какой фреймворк вы используете для обучения своей модели:

  • Если вы используете низкоуровневый API TensorFlow (tf.Session) и пишете собственный обучающий цикл, вы можете просто вставить вызовы Saver.save() в свой собственный код. Общий подход состоит в том, чтобы сделать это на основе количества итераций:

    for i in range(NUM_ITERATIONS):
      sess.run(train_op)
      # ...
      if i % 1000 == 0:
        saver.save(sess, ...)  # Write a checkpoint every 1000 steps.
    
  • Если вы используете tf.train.MonitoredTrainingSession, который записывает для вас контрольные точки, вы можете указать интервал контрольной точки (в секундах) в конструкторе. По умолчанию он сохраняет контрольную точку каждые 10 минут. Чтобы изменить это на каждую минуту, вы должны сделать:

    with tf.train.MonitoredTrainingSession(..., save_checkpoint_secs=60):
      # ...
    
person mrry    schedule 11.03.2017

Спасибо! Это устранило мою проблему: tf.contrib.slim.learning.train(train_op, checkpoint_dir, log_every_n_steps=args.log_every_n_steps, graph=g,
global_step=model.global_step, number_of_steps=args.number_of_steps, init_fn=model.init_fn, save_summaries_secs=300, save_interval_secs=300, заставка=заставка)

person Safaa    schedule 11.03.2017