Я тренирую глубокую сеть с двумя конвейерами ввода данных, один для обучения и один для проверки. Они используют shuffle_batch_join
и batch_join
соответственно для параллельного чтения данных. Поток данных, который используется в сети, определяется с помощью операции tf.cond
поверх этих двух конвейеров, которая контролируется заполнителем is_training
, для которого установлено значение true для итерации обучения и значение false при выполнении проверки. У меня есть 4 потока для чтения обучающих данных и 1 поток для проверки.
Тем не менее, я только что добавил сводки очереди в tensorboard и заметил, что сводка очереди проверки (показывающая долю заполненной очереди) становится ненулевой в какой-то момент во время обучения, а затем возвращается к 0. Это кажется очень странным, потому что проверка выполняется только после 1000 итераций, и эти точки данных должны быть удалены только в этот момент. Кто-нибудь имеет подобный опыт или может пролить свет на то, что может происходить?