Могу ли я удалить файлы events.out.tfevents.XXXXXXXXXX.computer_name из папки обучения - PullRequest
0 голосов
/ 28 ноября 2018

Я обучаю модуль rapid_rcnn_inception для обнаружения объектов в пользовательском наборе данных.В учебном каталоге мы нашли папку с именем eval_0 и сгенерированные тензорным потоком файлы events.out.tfevents.xxxxxx.

Структура учебного каталога выглядит следующим образом

+training_dir
    +eval_0
     -events.out.tfevents.1542309785.instance-1  1.2GB
     -events.out.tfevents.1542367255.instance-1  5.3GB
     -events.out.tfevents.1542369886.instance-1  3.6GB
     -events.out.tfevents.1542624154.instance-1  31MB
     -events.out.tfevents.1543060258.instance-1  19MB
     -events.out.tfevents.1543066775.instance-2  1.6GB
 -events.out.tfevents.1542308099.instance-1  17MB
 -events.out.tfevents.1542308928.instance-1  17MB
 -events.out.tfevents.1542366369.instance-1  17MB
 -events.out.tfevents.1542369000.instance-1  17MB
 -events.out.tfevents.1542623262.instance-1  17MB
 -events.out.tfevents.1543064936.instance-2  17MB
 -events.out.tfevents.1543065796.instance-2  17MB
 -events.out.tfevents.1543065880.instance-2  17MB
 -model.ckpt-96004.data-00000-of-00001
 -model.ckpt-96004.data-00000-of-00001
 -model.ckpt-96004.index
 -model.ckpt-96004.meta
 -model.ckpt-96108.data-00000-of-00001
 -model.ckpt-96108.index
 -model.ckpt-96108.meta

Согласно моемупонимание, что tfevents файлы в папке eval_0 являются летними файлами оценки , а файлы tfevents в training_dir являются летними файлами тренировка .

Я несколько раз прерывал тренировочный процесс и продолжал с недавнего контрольного пункта.Я также понимаю, что при перезапуске процесса обучения создаются новые файлы tfevents.

Мои вопросы выглядят следующим образом:

  • Почему для обучения tfevents_files естьтот же размер, но в случае, если размер eval_0 / tfevents_files варьируется ?

  • Почему прерывание обучения приводит к созданию нового tfevents_file в папке обучения, но это не такнаблюдается в случае eval_0 ?

  • Могу ли я удалить все tfevents файлы в eval_0 , кроме последнего?Влияет ли это на историю тренировок или эволюции?

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

tfevents файлы не являются необходимыми для обучения и могут быть безопасно удалены.

В Tensorflow tfevents создаются FileWriters и обычно используются для хранения итоговых результатов.Вот несколько общих примеров того, как используются tf.summaries:

  • сохранение описания графика тензорного потока до начала обучения
  • запись значения функции потерь для каждого шага обучения
  • сохранение гистограммы активаций или весов для слоя один раз за эпоху
  • сохранение примера выходного изображения сети один раз при каждой проверке
  • сохранение средней точности (или любой другойметрика) для всего проверочного набора

Эта информация не важна для обучения и поэтому может быть удалена.Тем не менее, это может пригодиться для отладки или изучения поведения модели.TensorBoard является наиболее распространенным инструментом для чтения и визуализации данных, хранящихся в файлах tfevent.Любой может прочитать и интерпретировать файлы TFRecord вручную, используя протокол protobuf, и его реализация для Python, C ++ и др.

tfevents записываются в формате TFRecord. TFRecord - это простой формат для хранения последовательности двоичных записей.Tensorflow всегда добавляет новые события / сводки в конец файла, если файл уже существует.Это объясняет увеличение размера файла.

Из-за деталей реализации подпрограммы оптимизации, предоставляемой с tenorflow / models / reserach / object_detection файлы событий обучения и оценки имеют различное поведение.А именно, файл события оценки создается напрямую с использованием FileWriter, который будет повторно использовать последний существующий файл событий в log_dir, когда он существует.Реализация также имеет большое количество сводок, которые собираются регулярно, что увеличивает файл событий во время обучения.

Для тренировочной программы, с другой стороны, разработчики явно указывают пустой список резюме, когда обучение проводится на TPU .Это означает, что файл события создается один раз и никогда не используется впоследствии.Это поведение может отличаться, если обучение выполняется на оборудовании, отличном от TPU, или включена опция sumrize_gradients .

0 голосов
/ 11 июня 2019

TFEvent файлы в основном используются TensorBoard.Если вы откроете терминал и запустите его (то есть: tensorboard --logdir .), то, что вы увидите, находится в этих файлах событий.

Конечно, вы можете иметь несколько «авторов сводок».В вашем случае события, зарегистрированные во время обучения, регистрируются в корневом каталоге «training_dir», а события из фазы eval помещаются в «eval_0».Вы хотели бы сделать это, потому что тензорная доска отображает каждую папку как отдельную группу в диаграммах.

Ваши тренировочные данные отличаются от ваших eval-данных, поэтому, конечно, файлы событий также будут отличаться.

Что касается контрольных точек, все, что вам нужно, это model.ckpt* файлы для восстановления весов.Файлы событий не используются вообще, поэтому вы можете безопасно их удалить.На самом деле, вы, вероятно, хотите начинать с чистой папки журнала, когда начинаете новый учебный процесс, если вы действительно планируете использовать тензорную доску.

Файлы событий на самом деле не являются частью контрольных точек, они являются файлами журнала.Таким образом, всякий раз, когда вызывается метод ведения журнала, будут добавляться новые записи.Вы не видите новых записей в папке eval_0, вероятно, потому что вы остановили процесс во время фазы обучения, до того, как фаза оценки была достигнута.

...