tf.image.per_image_standardization
Линейно масштабирует каждое изображение в image так, чтобы его среднее значение было равно 0, а дисперсия — 1.
tf.image.per_image_standardization(
image
)
Используется в блокнотах
| Используется в руководствах |
| |
Для каждого 3D-изображения x в image вычисляет (x - mean) / adjusted_stddev, где
-
mean — это среднее значение всех элементов в x
-
adjusted_stddev = max(stddev, 1.0/sqrt(N)) ограничивается значением, удалённым от 0, чтобы избежать деления на 0 при обработке однородных изображений -
N — это количество элементов в x
-
stddev — это стандартное отклонение всех значений в x
Пример использования:
image = tf.constant(np.arange(1, 13, dtype=np.int32), shape=[2, 2, 3])
image # 3-D tensor
<tf.Tensor: shape=(2, 2, 3), dtype=int32, numpy=
array([[[ 1, 2, 3],
[ 4, 5, 6]],
[[ 7, 8, 9],
[10, 11, 12]]], dtype=int32)>
new_image = tf.image.per_image_standardization(image)
new_image # 3-D tensor with mean ~= 0 and variance ~= 1
<tf.Tensor: shape=(2, 2, 3), dtype=float32, numpy=
array([[[-1.593255 , -1.3035723 , -1.0138896 ],
[-0.7242068 , -0.4345241 , -0.14484136]],
[[ 0.14484136, 0.4345241 , 0.7242068 ],
[ 1.0138896 , 1.3035723 , 1.593255 ]]], dtype=float32)>
| Аргументы |
image | n-мерный Tensor как минимум с 3 измерениями, последние 3 из которых задают размеры каждого изображения. |
| Возвращает |
Tensor той же формы, что и image, с типом данных float32. |
| Вызывает исключение |
ValueError | Число измерений image меньше 3. |