почему параметр 'scale' в tf.layers.batch_normalization отключен, когда следующий уровень - relu? - PullRequest
0 голосов
/ 27 июня 2018

В документации по тензорному потоку tf.layers.batch_normalization сказано " Когда следующий слой является линейным (также, например, nn.relu), это (параметр 'scale') можно отключить, поскольку масштабирование может быть выполнено следующим слоем."? Это кажется неправильным, потому что, когда следующий слой nn.relu, линейный коэффициент является инвариантной константой (1), и значение не будет обнулено.

1 Ответ

0 голосов
/ 27 июня 2018

Слой после nn.relu обычно линейный. Выполнение некоторого масштабирования до или после ReLu ничего не изменит (если L является линейным, L(relu(x))=relu(L(x)) for all x), поэтому наличие одного масштабирования после нормализации Барча и одного на следующем уровне является избыточным.

Таким образом, вы можете пропустить масштабирование после пакетной нормы, за которой следует ReLu, если у вас есть другой линейный слой после ReLu, что обычно имеет место.

...