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

Класс Orthogonal

Класс Orthogonal относится к секции train и предназначен для ортогональной инициализации весовых матриц нейронной сети. Такой способ инициализации помогает сохранять норму градиентов при распространении сигнала через глубокие слои. Первым параметром передаётся масштабный коэффициент gain, который умножается на ортогональную матрицу. Вторым параметром задаётся зерно генератора случайных чисел seed для воспроизводимости результатов. Также можно передать словарь kwargs с дополнительными именованными аргументами.

Класс наследуется от Initializer и может использоваться как самостоятельно, так и в качестве значения параметра kernel_initializer при создании слоёв.

Синтаксис

tf.keras.initializers.Orthogonal(gain=1.0, seed=None, **kwargs)

Пример

Давайте создадим инициализатор Orthogonal и применим его к тензору формы 3 на 3:

import tensorflow as tf tf.random.set_seed(0) initializer = tf.keras.initializers.Orthogonal() t = initializer(shape=(3, 3)) print(t)

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

tf.Tensor( [[ 0.42609403 -0.68276584 0.5938066 ] [ 0.7233623 0.66446054 0.24481463] [-0.5439463 0.30376372 0.78385866]], shape=(3, 3), dtype=float32)

Пример

Давайте передадим масштабный коэффициент gain равный 2.0 и зафиксируем зерно:

import tensorflow as tf tf.random.set_seed(0) initializer = tf.keras.initializers.Orthogonal(gain=2.0, seed=0) t = initializer(shape=(3, 3)) print(t)

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

tf.Tensor( [[ 0.85218805 -1.3655317 1.1876132 ] [ 1.4467245 1.3289211 0.48962927] [-1.0878925 0.60752743 1.5677173 ]], shape=(3, 3), dtype=float32)

Пример

Давайте используем Orthogonal в качестве инициализатора для полносвязного слоя Dense:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.Dense( units=4, kernel_initializer=tf.keras.initializers.Orthogonal() ) t = tf.constant([[1.0, 2.0, 3.0]]) res = layer(t) print(res)

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

tf.Tensor( [[ 1.0477104 -0.9558136 0.85148764 1.6973808 ]], shape=(1, 4), dtype=float32)

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

  • класс GlorotUniform,
    который выполняет инициализацию Ксавье
  • класс HeNormal,
    который выполняет инициализацию Хе
  • класс RandomNormal,
    который инициализирует веса нормальным распределением
  • класс Zeros,
    который инициализирует веса нулями
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить