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

Класс RandomNormal

Класс RandomNormal применяется для инициализации весов нейронных сетей. Он генерирует значения из нормального (гауссова) распределения со средним mean и стандартным отклонением stddev. Первым параметром передается среднее распределения, вторым - стандартное отклонение, третьим - зерно генератора случайных чисел. Также можно указать диапазон допустимых значений через minval и maxval, за пределами которого значения обрезаются.

Синтаксис

tf.keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=None)

Пример

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

import tensorflow as tf tf.random.set_seed(0) init = tf.keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=0) t = init(shape=(2, 3)) print(t)

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

tf.Tensor( [[ 0.02143621 0.00028392 -0.01768306] [-0.03177023 0.04856646 0.02872656]], shape=(2, 3), dtype=float32)

Пример

Давайте изменим среднее и стандартное отклонение:

import tensorflow as tf tf.random.set_seed(0) init = tf.keras.initializers.RandomNormal(mean=10.0, stddev=1.0, seed=0) t = init(shape=(2, 3)) print(t)

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

tf.Tensor( [[10.428724 10.005678 9.646339 ] [ 9.364595 10.971329 10.574531 ]], shape=(2, 3), dtype=float32)

Пример

Давайте используем инициализатор в слое Dense:

import tensorflow as tf tf.random.set_seed(0) init = tf.keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=0) layer = tf.keras.layers.Dense(3, kernel_initializer=init) t = layer(tf.constant([[1.0, 2.0, 3.0]])) print(t)

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

tf.Tensor([[-0.03213561 0.00944859 0.01263506]], shape=(1, 3), dtype=float32)

Пример

Давайте получим конфигурацию инициализатора через метод get_config:

import tensorflow as tf init = tf.keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=0) res = init.get_config() print(res)

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

{'mean': 0.0, 'stddev': 0.05, 'seed': 0}

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

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