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 из источника: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift; S. Ioffe, C. Szegedy.
| Аргументы | |
|---|---|
x | Входной Tensor произвольной размерности. |
mean | Среднее значение Tensor. |
variance | Дисперсия Tensor. |
offset | Смещение Tensor, часто обозначаемое \(\beta\) в уравнениях, или None. Если присутствует, будет добавлен к нормализованному тензору. |
scale | Масштаб Tensor, часто обозначаемое \(\gamma\) в уравнениях, или None. Если присутствует, масштаб применяется к нормализованному тензору. |
variance_epsilon | Маленькое число с плавающей точкой для предотвращения деления на ноль. |
name | Имя для этой операции (необязательно). |
| Возвращаемые значения | |
|---|---|
| нормализованный, отмасштабированный и смещённый тензор. |
Ссылки:
Batch Normalization - Ускорение обучения глубоких сетей путём снижения внутреннего сдвига ковариаций: Ioffe et al., 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.4/api_docs/python/tf/nn/batch_normalization