Функция clip_by_norm
Функция clip_by_norm применяется к тензору
и ограничивает его норму заданным значением.
Первым параметром функция принимает тензор,
вторым - максимально допустимое значение нормы.
Если норма тензора превышает это значение,
тензор масштабируется так, чтобы его норма
стала равной заданному порогу. Если норма
меньше или равна порогу, тензор возвращается
без изменений.
Синтаксис
tf.clip_by_norm(t, clip_norm, [axes])
Пример
Давайте создадим тензор и обрежем его норму
до значения 1:
import tensorflow as tf
t = tf.constant([3.0, 4.0])
res = tf.clip_by_norm(t, 1.0)
print(res)
Результат выполнения кода:
tf.Tensor([0.6 0.8], shape=(2,), dtype=float32)
Пример
Давайте создадим тензор, норма которого меньше заданного порога, и убедимся, что тензор не изменился:
import tensorflow as tf
t = tf.constant([1.0, 1.0])
res = tf.clip_by_norm(t, 5.0)
print(res)
Результат выполнения кода:
tf.Tensor([1. 1.], shape=(2,), dtype=float32)
Пример
Давайте применим функцию к двумерному тензору и обрежем норму по строкам:
import tensorflow as tf
t = tf.constant([[3.0, 4.0], [6.0, 8.0]])
res = tf.clip_by_norm(t, 5.0, axes=[1])
print(res)
Результат выполнения кода:
tf.Tensor(
[[3. 4.]
[3. 4.]], shape=(2, 2), dtype=float32)
Смотрите также
-
функцию
clip_by_value,
которая обрезает значения тензора по диапазону -
функцию
clip_by_global_norm,
которая обрезает норму нескольких тензоров -
функцию
sqrt,
которая вычисляет квадратный корень -
функцию
square,
которая вычисляет квадрат значений