tf.compat.v1.keras.initializers.RandomNormal
Инициализатор, генерирующий распределение Гаусса.
Наследуется от: random_normal_initializer
tf.compat.v1.keras.initializers.RandomNormal(
mean=0.0,
stddev=0.05,
seed=None,
dtype=tf.dtypes.float32
)
Переход к TF2
Несмотря на то, что это устаревший compat.v1 api, tf.compat.v1.keras.initializers.RandomNormal совместим с немедленным выполнением и tf.function.
Чтобы перейти к родному TF2, переключитесь на использование tf.keras.initializers.RandomNormal (не из compat.v1) и если вам нужно изменить тип данных по умолчанию, используйте tf.keras.backend.set_floatx(float_dtype) или передайте тип данных при вызове инициализатора, а не при его создании.
Поведение случайного зерна: также имейте в виду, что если вы передадите зерно в API инициализатора TF2, оно будет повторно использоваться для каждой инициализации (в отличие от инициализатора TF1).
Структурное отображение на родной TF2
До:
initializer = tf.compat.v1.keras.initializers.RandomNormal( mean=mean, stddev=stddev, seed=seed, dtype=dtype) weight_one = tf.Variable(initializer(shape_one)) weight_two = tf.Variable(initializer(shape_two))
После:
initializer = tf.keras.initializers.RandomNormal(
mean=mean,
# seed=seed, # Setting a seed in the native TF2 API
# causes it to produce the same initializations
# across multiple calls of the same initializer.
stddev=stddev)
weight_one = tf.Variable(initializer(shape_one, dtype=dtype))
weight_two = tf.Variable(initializer(shape_two, dtype=dtype))
Как сопоставить аргументы
| Имя аргумента TF1 | Имя аргумента TF2 | Примечание |
|---|---|---|
mean | mean | Без изменений по умолчанию |
stddev | stddev | Без изменений по умолчанию |
seed |
seed | Разные семантики генерации случайных чисел (изменятся в будущей версии). Если установлено, версия TF2 будет использовать генерацию случайных чисел без состояния, которая обеспечит точную инициализацию даже при многократном вызове экземпляра инициализатора. Версия compat.v1 будет генерировать новые инициализации каждый раз. Не устанавливайте зерно, если вам нужны разные инициализации каждый раз. Вместо этого установите глобальное зерно tf с помощью tf.random.set_seed, если вам нужна детерминированность, или инициализируйте каждый вес с помощью отдельного экземпляра инициализатора и другого зерна. |
dtype |
dtype | Родной API TF2 принимает его только как аргумент __call__, а не как аргумент конструктора. |
partition_info | - | (__call__ аргумент в TF1) Не поддерживается |
Пример различий в поведении фиксированного зерна
compat.v1 Поведение фиксированного зерна:
initializer = tf.compat.v1.keras.initializers.TruncatedNormal(seed=10) a = initializer(shape=(2, 2)) b = initializer(shape=(2, 2)) tf.reduce_sum(a - b) == 0 <tf.Tensor: shape=(), dtype=bool, numpy=False>
После:
initializer = tf.keras.initializers.TruncatedNormal(seed=10) a = initializer(shape=(2, 2)) b = initializer(shape=(2, 2)) tf.reduce_sum(a - b) == 0 <tf.Tensor: shape=(), dtype=bool, numpy=False>
Описание
| Аргументы | |
|---|---|
mean | скалярное значение Python или скалярный тензор. Среднее значение генерируемых случайных значений. |
stddev | скалярное значение Python или скалярный тензор. Стандартное отклонение генерируемых случайных значений. |
seed | Целое число Python. Используется для создания случайных семян. См. tf.compat.v1.set_random_seed для получения информации о поведении. |
dtype | Тип данных по умолчанию, используемый, если аргумент dtype не указан при вызове инициализатора. Поддерживаются только типы с плавающей точкой. |
Методы
from_config
@classmethod
from_config(
config
)
Инициализирует инициализатор из словаря конфигурации.
Пример:
initializer = RandomUniform(-1, 1) config = initializer.get_config() initializer = RandomUniform.from_config(config)
| Аргументы | |
|---|---|
config | Словарь Python. Как правило, это выход get_config. |
| Возвращает | |
|---|---|
| Экземпляр инициализатора. |
get_config
get_config()
Возвращает конфигурацию инициализатора в виде словаря, сериализуемого в формате JSON.
| Возвращает | |
|---|---|
| Словарь Python, сериализуемый в формате JSON. |
__call__
__call__(
shape, dtype=None, partition_info=None
)
Возвращает тензорный объект, инициализированный согласно указаниям инициализатора.
| Аргументы | |
|---|---|
shape | Форма тензора. |
dtype | Необязательный тип данных тензора. Если не указан, используется тип данных инициализатора. |
partition_info | Необязательная информация о возможном разбиении тензора. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/compat/v1/keras/initializers/RandomNormal