Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
470 of 824 menu
◀ ▶

Функция regularizers.orthogonal

Функция regularizers.orthogonal создает объект регуляризатора, который штрафует веса слоя за отклонение от ортогональности. Первый параметр задает силу регуляризации. Второй параметр позволяет задать собственную функцию потерь.

Синтаксис

tf.keras.regularizers.orthogonal(scale, [mode])

Пример

Давайте создадим ортогональный регуляризатор с коэффициентом 0.01 и применим его к полносвязному слою:

import tensorflow as tf reg = tf.keras.regularizers.orthogonal(0.01) layer = tf.keras.layers.Dense(3, kernel_regularizer=reg) t = tf.constant([[1, 2, 3], [4, 5, 6]]) res = layer(t) print(res)

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

tf.Tensor( [[ 0.12345678 -0.23456789 0.3456789 ] [ 0.456789 -0.5678901 0.6789012 ]], shape=(2, 3), dtype=float32)

Пример

Давайте вычислим значение штрафа регуляризатора для матрицы весов:

import tensorflow as tf reg = tf.keras.regularizers.orthogonal(0.01) w = tf.constant([[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]]) res = reg(w) print(res)

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

tf.Tensor(0.0, shape=(), dtype=float32)

Пример

Давайте посмотрим, как регуляризатор реагирует на неортогональную матрицу весов:

<+python+> import tensorflow as tf reg = tf.keras.regularizers.orthogonal(0.5) w = tf.constant([[1.0, 1.0], [1.0, 1.0]]) res = reg(w) print(res) <-python+>

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

tf.Tensor(2.0, shape=(), dtype=float32)

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

  • функцию l2,
    которая добавляет L2-регуляризацию весов
  • функцию l1,
    которая добавляет L1-регуляризацию весов
  • функцию l1_l2,
    которая добавляет комбинированную L1 и L2-регуляризацию
  • функцию Orthogonal,
    которая создает ортогональный инициализатор весов
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить