Первоначальный вопрос касался конкретно реализаций TensorFlow. Тем не менее, ответы для реализации в целом. Этот общий ответ также является правильным ответом для TensorFlow.
При использовании нормализации и выпадения партии в TensorFlow (в частности, с помощью contrib.layers) нужно ли беспокоиться о порядке?
Кажется возможным, что, если я использую отсев, сопровождаемый немедленно нормализацией партии, могли бы быть проблемы. Например, если сдвиг в последовательности нормализации партии переходит к большим значениям шкалы выходных данных обучения, но затем это же смещение применяется к меньшим (из-за компенсации за наличие большего количества выходов) числам шкалы без пропуска во время тестирования, тогда это сдвиг может быть выключен. Слой пакетной нормализации TensorFlow автоматически компенсирует это? Или этого не происходит по какой-то причине мне не хватает?
Кроме того, есть ли другие подводные камни, на которые стоит обратить внимание при использовании этих двух вместе? Например, при условии, что я использую их в правильном порядке относительно вышеизложенного (при условии, что существует правильный порядок), могут ли быть проблемы с использованием как нормализации партии, так и выпадения на нескольких последовательных слоях? Я не сразу вижу проблему с этим, но я могу что-то упустить.
Спасибо много!
ОБНОВИТЬ:
Экспериментальный тест предполагает, что порядок имеет значение. Я дважды запускал одну и ту же сеть, используя только пакетную норму и обратный отсев. Когда отсев происходит до нормы партии, потеря валидации, по-видимому, увеличивается, так как потеря обучения снижается. Они оба идут вниз в другом случае. Но в моем случае движения медленные, поэтому все может измениться после нескольких тренировок, и это всего лишь один тест. Более точный и обоснованный ответ все равно будет оценен.