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

Класс HeNormal

Класс HeNormal относится к секции train и используется для инициализации весовых коэффициентов слоев нейронной сети. Инициализатор HeNormal (также известный как инициализация Кайминга) генерирует значения из усеченного нормального распределения с нулевым средним и стандартным отклонением, равным sqrt(2 / fan_in), где fan_in - количество входных связей слоя. Такой подход позволяет сохранять масштаб активаций при прямом проходе и градиентов при обратном, что особенно важно для сетей с функциями активации ReLU и ее вариантами. Класс принимает необязательный параметр seed, который фиксирует генератор случайных чисел для воспроизводимости результатов.

Синтаксис

tf.keras.initializers.HeNormal(seed=None)

Пример

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

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

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

tf.Tensor( [[-0.6268459 0.77864957 -0.5014919 0.18338293] [ 0.61256266 -0.2889139 -0.490872 -0.96110183] [ 0.42941242 0.34908617 -0.28748286 -0.10262853]], shape=(3, 4), dtype=float32)

Пример

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

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

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

tf.Tensor( [[ 0.9144125 -1.1567214 0.28981388 -0.8152312 0.47362822]], shape=(1, 5), dtype=float32)

Пример

Давайте используем параметр seed для воспроизводимости и сравним два вызова инициализатора:

import tensorflow as tf initializer = tf.keras.initializers.HeNormal(seed=42) t1 = initializer(shape=(2, 3)) t2 = initializer(shape=(2, 3)) print(t1) print(t2)

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

tf.Tensor( [[ 0.61256266 -0.2889139 -0.490872 ] [ 0.42941242 0.34908617 -0.28748286]], shape=(2, 3), dtype=float32) tf.Tensor( [[ 0.61256266 -0.2889139 -0.490872 ] [ 0.42941242 0.34908617 -0.28748286]], shape=(2, 3), dtype=float32)

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

  • класс HeUniform,
    который инициализирует веса равномерным распределением He
  • класс GlorotNormal,
    который инициализирует веса нормальным распределением Ксавье
  • класс LecunNormal,
    который инициализирует веса нормальным распределением Лекуна
  • класс Orthogonal,
    который инициализирует веса ортогональной матрицей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить