Spec-Zone.ru › TensorFlow 2.9

tf.compat.v1.keras.initializers.TruncatedNormal

Инициализатор, генерирующий усеченное нормальное распределение.

Унаследован от: truncated_normal_initializer

Просмотр псевдонимов

Псевдонимы для миграции

Дополнительные сведения см. в руководстве по миграции.

tf.compat.v1.keras.initializers.truncated_normal

tf.compat.v1.keras.initializers.TruncatedNormal(
    mean=0.0,
    stddev=0.05,
    seed=None,
    dtype=tf.dtypes.float32
)

Миграция на TF2

Предупреждение: Этот API был разработан для TensorFlow v1. Продолжайте чтение, чтобы узнать, как мигрировать с этого API на эквивалент в TensorFlow v2. См. руководство по миграции с TensorFlow v1 на TensorFlow v2 для получения инструкций по миграции остальной части вашего кода.

Несмотря на то, что это устаревший API compat.v1, tf.compat.v1.keras.initializers.TruncatedNormal совместим с выполнением в режиме eager и tf.function.

Для перехода на базовый TF2 переключитесь на использование tf.keras.initializers.TruncatedNormal (не из compat.v1) и, если вам нужно изменить тип данных по умолчанию, используйте tf.keras.backend.set_floatx(float_dtype) или передайте тип данных при вызове инициализатора, а не при его создании.

Поведение случайного зерна: также обратите внимание, что если вы передадите зерно API инициализатора TF2, оно будет повторно использоваться для каждой инициализации (в отличие от инициализатора TF1).

Структурное соответствие с родным TF2

До:

initializer = tf.compat.v1.keras.initializers.TruncatedNormal(
  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.TruncatedNormal(
  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>

Описание

Эти значения похожи на значения из random_normal_initializer, за исключением того, что значения, превышающие две стандартных отклонения от среднего, отбрасываются и перегенерируются. Это рекомендуемый инициализатор для весов и фильтров нейронных сетей.

Аргументы
mean скалярный питон или скалярный тензор. Среднее значение генерируемых случайных значений.
stddev скалярный питон или скалярный тензор. Стандартное отклонение генерируемых случайных значений.
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 словаря.

Возвращает
Сериализуемый в формате JSON словарь Python.

__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/TruncatedNormal

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API