Класс LecunUniform
Класс LecunUniform принадлежит секции train и
представляет собой инициализатор весов, предложенный Яном Лекуном.
Он генерирует случайные значения из равномерного распределения
в диапазоне от -limit до limit, где
limit = sqrt(3 / fan_in). Параметр fan_in
определяется как количество входных связей тензора.
Инициализатор можно передать слоям Keras через аргумент
kernel_initializer или использовать напрямую,
вызвав его с тензором формы shape.
Первый параметр seed задает зерно генератора
случайных чисел для воспроизводимости результатов.
Синтаксис
tf.keras.initializers.LecunUniform(seed=None)
Пример
Давайте создадим инициализатор LecunUniform
и применим его к тензору формы 3 на 4:
import tensorflow as tf
tf.random.set_seed(0)
initializer = tf.keras.initializers.LecunUniform(seed=0)
t = initializer(shape=(3, 4))
print(t)
Результат выполнения кода:
tf.Tensor(
[[-0.25961483 0.3368615 -0.54034305 0.19668901]
[ 0.11800206 -0.13271844 -0.37029853 0.07259178]
[-0.4611623 0.5588131 -0.15221518 -0.28177667]], shape=(3, 4), dtype=float32)
Пример
Давайте используем LecunUniform
в качестве инициализатора для полносвязного слоя Dense:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(
units=4,
kernel_initializer=tf.keras.initializers.LecunUniform(seed=0),
input_shape=(3,)
)
])
t = tf.constant([[1.0, 2.0, 3.0]])
res = model(t)
print(res)
Результат выполнения кода:
tf.Tensor([[-1.0583185 1.0842597 0.8727164 -0.6377158]], shape=(1, 4), dtype=float32)
Пример
Давайте получим конфигурацию инициализатора
с помощью метода get_config:
import tensorflow as tf
initializer = tf.keras.initializers.LecunUniform(seed=42)
res = initializer.get_config()
print(res)
Результат выполнения кода:
{'seed': 42}
Смотрите также
-
класс
LecunNormal,
который создает инициализатор на основе нормального распределения -
класс
GlorotUniform,
который создает инициализатор с равномерным распределением по методу Ксавье -
класс
HeUniform,
который создает инициализатор с равномерным распределением по методу Хе -
класс
RandomUniform,
который создает инициализатор со случайным равномерным распределением