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

Класс RandomUniform

Класс RandomUniform относится к секции train и применяется для инициализации весов нейронной сети случайными значениями, взятыми из равномерного распределения на отрезке от minval до maxval. Первым параметром передается нижняя граница диапазона minval, вторым - верхняя граница maxval. Третьим параметром можно передать зерно генератора случайных чисел seed для воспроизводимости результата. Класс удобно использовать в качестве аргумента kernel_initializer при создании слоев.

Синтаксис

tf.keras.initializers.RandomUniform(minval=-0.05, maxval=0.05, seed=None)

Пример

Давайте создадим инициализатор с диапазоном от -0.05 до 0.05 и получим из него тензор формы (2, 3):

import tensorflow as tf tf.random.set_seed(0) init = tf.keras.initializers.RandomUniform(minval=-0.05, maxval=0.05, seed=0) t = init(shape=(2, 3)) print(t)

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

tf.Tensor( [[ 0.02770257 -0.03484619 0.0228982 ] [ 0.04620981 -0.00844574 0.03110909]], shape=(2, 3), dtype=float32)

Пример

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

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.Dense( units=4, kernel_initializer=tf.keras.initializers.RandomUniform(minval=-0.1, maxval=0.1, seed=0) ) t = layer(tf.constant([[1.0, 2.0, 3.0]])) print(t) print(layer.kernel.shape)

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

tf.Tensor( [[-0.11057746 -0.23385683 0.01598489 0.2992373 ]], shape=(1, 4), dtype=float32) (3, 4)

Пример

Давайте получим несколько значений из инициализатора и убедимся, что они лежат в заданных границах:

import tensorflow as tf tf.random.set_seed(0) init = tf.keras.initializers.RandomUniform(minval=0.0, maxval=1.0, seed=0) t = init(shape=(5,)) print(t) print(tf.reduce_min(t).numpy(), tf.reduce_max(t).numpy())

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

tf.Tensor([0.5541201 0.09686289 0.45793605 0.9240941 0.83102834], shape=(5,), dtype=float32) 0.09686289 0.9240941

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

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