tf.nn.batch_normalization
| Просмотреть исходный код на GitHub |
Нормализация по батчам.
tf.nn.batch_normalization(
x, mean, variance, offset, scale, variance_epsilon, name=None
)
Нормализует тензор по mean и variance, и применяет (необязательно) масштаб scale \(\gamma\) к нему, а также смещение offset \(\beta\):
\(\frac{\gamma(x-\mu)}{\sigma}+\beta\)
mean, variance, offset и scale должны иметь одну из двух форм:
- В общем случае они могут иметь такое же количество измерений, как входной
x, с идентичными размерами какxдля измерений, которые не нормализуются (измерение «глубины»), и размер 1 для остальных, которые нормализуются.meanиvarianceв этом случае обычно являются результатамиtf.nn.moments(..., keepdims=True)во время обучения или их скользящими средними во время вывода. - В общем случае, когда измерение «глубины» является последним измерением тензора входа
x, они могут быть одномерными тензорами такого же размера, как измерение «глубины». Это, например, относится к обычному[batch, depth]расположению полносвязных слоёв, и[batch, height, width, depth]для свёрток.meanиvarianceв этом случае обычно являются результатамиtf.nn.moments(..., keepdims=False)во время обучения или их скользящими средними во время вывода.
См. уравнение 11 в алгоритме 2 из источника: Нормализация по батчам: Ускорение обучения глубоких нейронных сетей за счёт сокращения сдвига внутренних ковариат; С. Иоффе, К. Зегеди.
| Аргументы | |
|---|---|
x | Входной Tensor произвольной размерности. |
mean | Среднее значение Tensor. |
variance | Дисперсия Tensor. |
offset | Смещение Tensor, часто обозначаемое \(\beta\) в уравнениях, или None. Если присутствует, будет добавлено к нормализованному тензору. |
scale | Масштаб Tensor, часто обозначаемый \(\gamma\) в уравнениях, или None. Если присутствует, масштаб применяется к нормализованному тензору. |
variance_epsilon | Малое число с плавающей точкой, чтобы избежать деления на 0. |
name | Имя для данной операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| нормализованный, масштабированный, смещённый тензор. |
Ссылки:
Batch Normalization - Ускорение обучения глубоких нейронных сетей за счёт сокращения сдвига внутренних ковариат: Иоффе и др., 2015 (pdf)
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/nn/batch_normalization