Класс HeUniform
Класс HeUniform применяется для инициализации весов нейронных слоев.
Он создает начальные значения из равномерного распределения
с границами [-limit, limit], где limit вычисляется
по формуле sqrt(6 / fan_in). Первым параметром
передается зерно генератора случайных чисел, вторым -
тип данных создаваемых значений.
Синтаксис
tf.keras.initializers.HeUniform(seed=None)
Пример
Давайте создадим инициализатор HeUniform и применим
его к тензору формы (3, 4):
import tensorflow as tf
initializer = tf.keras.initializers.HeUniform(seed=0)
t = initializer(shape=(3, 4))
print(t)
Результат выполнения кода:
tf.Tensor(
[[-0.53935736 0.46033227 0.5304712 0.31641483]
[ 0.6858989 -0.15621436 -0.7840034 -0.4916454 ]
[ 0.25966716 0.09355134 0.3007093 0.51295334]], shape=(3, 4), dtype=float32)
Пример
Давайте создадим инициализатор HeUniform с типом
данных float64:
import tensorflow as tf
initializer = tf.keras.initializers.HeUniform(seed=0)
t = initializer(shape=(3, 4), dtype=tf.float64)
print(t)
Результат выполнения кода:
tf.Tensor(
[[ 0.06178971 -0.07551367 0.13964745 0.01211443]
[-0.22400215 0.07038983 0.11336008 -0.10102763]
[ 0.23363927 -0.13561068 -0.04530486 0.13935153]], shape=(3, 4), dtype=float64)
Пример
Давайте используем HeUniform в качестве
инициализатора весов для слоя Dense:
import tensorflow as tf
layer = tf.keras.layers.Dense(
units=4,
kernel_initializer=tf.keras.initializers.HeUniform(seed=0)
)
t = tf.constant([[1, 2, 3], [4, 5, 6]])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[-1.1709951 1.8357458 1.6687562 -0.5670934 ]
[-2.5958762 4.112172 3.6592052 -1.2386521 ]], shape=(2, 4), dtype=float32)
Смотрите также
-
класс
HeNormal,
который инициализирует веса нормальным распределением по методу Хе -
класс
GlorotUniform,
который инициализирует веса равномерным распределением по методу Глоро -
класс
LecunUniform,
который инициализирует веса равномерным распределением по методу Лекуна -
класс
RandomUniform,
который инициализирует веса случайным равномерным распределением