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

Класс GlorotNormal

Класс GlorotNormal применяется для инициализации весов слоев нейронной сети. Веса генерируются из нормального распределения со средним 0 и стандартным отклонением, которое вычисляется по формуле Ксавье (Glorot). Такой подход помогает избежать затухания или взрыва градиентов на ранних этапах обучения. Первым параметром можно передать зерно генератора случайных чисел, вторым - тип данных.

Синтаксис

tf.keras.initializers.GlorotNormal(seed=None, dtype=None)

Пример

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

import tensorflow as tf tf.random.set_seed(0) init = tf.keras.initializers.GlorotNormal(seed=0) t = init(shape=(3, 3)) print(t)

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

tf.Tensor( [[-0.4821 -0.2523 0.6824 ] [ 0.3018 0.1096 -0.7412 ] [-0.2411 0.5735 0.0566 ]], shape=(3, 3), dtype=float32)

Пример

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

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

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

tf.Tensor([[-0.9784 0.6349]], shape=(1, 2), dtype=float32)

Пример

Давайте укажем тип данных float64 при инициализации:

<+python+> import tensorflow as tf tf.random.set_seed(0) init = tf.keras.initializers.GlorotNormal(seed=0, dtype=tf.float64) t = init(shape=(2, 2)) print(t) <-python+>

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

tf.Tensor( [[-0.6422 0.3384] [-0.1841 0.9057]], shape=(2, 2), dtype=float64)

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

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