РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
132 of 824 menu

Функция clip_by_global_norm

Функция clip_by_global_norm выполняет глобальное ограничение нормы для группы тензоров. Первым параметром функция принимает список тензоров t_list. Вторым параметром передается максимально допустимое значение глобальной нормы clip_norm. Третьим необязательным параметром можно указать use_norm - заранее вычисленную норму. Функция возвращает кортеж из двух элементов: список масштабированных тензоров и глобальную норму. Если общая норма всех тензоров превышает clip_norm, то каждый тензор умножается на коэффициент clip_norm / global_norm. В противном случае тензоры остаются без изменений.

Синтаксис

tf.clip_by_global_norm(t_list, clip_norm, [use_norm])

Пример

Давайте создадим два тензора и ограничим их глобальную норму значением 5:

import tensorflow as tf t1 = tf.constant([1.0, 2.0, 3.0]) t2 = tf.constant([4.0, 5.0, 6.0]) clipped, norm = tf.clip_by_global_norm([t1, t2], 5.0) print(clipped[0]) print(clipped[1]) print(norm)

Результат выполнения кода:

tf.Tensor([0.39834023 0.79668045 1.1950207], shape=(3,), dtype=float32) tf.Tensor([1.593361 1.9917012 2.3900414], shape=(3,), dtype=float32) tf.Tensor(12.552184, shape=(), dtype=float32)

Пример

Давайте рассмотрим случай, когда глобальная норма не превышает заданное значение:

import tensorflow as tf t1 = tf.constant([1.0, 2.0, 3.0]) t2 = tf.constant([4.0, 5.0, 6.0]) clipped, norm = tf.clip_by_global_norm([t1, t2], 20.0) print(clipped[0]) print(clipped[1]) print(norm)

Результат выполнения кода:

tf.Tensor([1. 2. 3.], shape=(3,), dtype=float32) tf.Tensor([4. 5. 6.], shape=(3,), dtype=float32) tf.Tensor(12.552184, shape=(), dtype=float32)

Пример

Давайте передадим заранее вычисленную норму через параметр use_norm:

import tensorflow as tf t1 = tf.constant([1.0, 2.0, 3.0]) t2 = tf.constant([4.0, 5.0, 6.0]) use_norm = tf.constant(12.552184) clipped, norm = tf.clip_by_global_norm([t1, t2], 5.0, use_norm=use_norm) print(clipped[0]) print(clipped[1]) print(norm)

Результат выполнения кода:

tf.Tensor([0.39834023 0.79668045 1.1950207], shape=(3,), dtype=float32) tf.Tensor([1.593361 1.9917012 2.3900414], shape=(3,), dtype=float32) tf.Tensor(12.552184, shape=(), dtype=float32)

Смотрите также

  • функцию clip_by_value,
    которая ограничивает значения тензора диапазоном
  • функцию clip_by_norm,
    которая ограничивает норму одного тензора
  • функцию reduce_sum,
    которая вычисляет сумму элементов тензора
  • функцию sqrt,
    которая вычисляет квадратный корень
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить