tf.compat.v1.keras.initializers.VarianceScaling
Инициализатор, способный адаптировать свою шкалу к форме тензоров весов.
tf.compat.v1.keras.initializers.VarianceScaling(
scale=1.0,
mode='fan_in',
distribution='truncated_normal',
seed=None,
dtype=tf.dtypes.float32
)
Миграция на TF2
Хотя это устаревший compat.v1 API, этот символ совместим с выполнением eager и tf.function.
Чтобы перейти к API TF2, используйте tf.initializers.variance_scaling или tf.keras.initializers.VarianceScaling (ни один из них не из compat.v1) и передавайте dtype при вызове инициализатора.
Структурное отображение на TF2
До:
initializer = tf.compat.v1.variance_scaling_initializer( scale=scale, mode=mode, distribution=distribution seed=seed, dtype=dtype) weight_one = tf.Variable(initializer(shape_one)) weight_two = tf.Variable(initializer(shape_two))
После:
initializer = tf.keras.initializers.VarianceScaling( scale=scale, mode=mode, distribution=distribution seed=seed) weight_one = tf.Variable(initializer(shape_one, dtype=dtype)) weight_two = tf.Variable(initializer(shape_two, dtype=dtype))
Как сопоставить аргументы
| Имя аргумента TF1 | Имя аргумента TF2 | Примечание |
|---|---|---|
scale | scale | Без изменений по умолчанию |
mode | mode | Без изменений по умолчанию |
distribution |
distribution | Без изменений по умолчанию. 'normal' отображается как 'truncated_normal' |
seed | seed | |
dtype |
dtype | API TF2 принимает его только как аргумент __call__, а не как аргумент конструктора. |
partition_info | - | (аргумент __call__ в TF1) Не поддерживается |
Описание
С помощью distribution="truncated_normal" or "untruncated_normal", образцы извлекаются из усеченного/неусеченного нормального распределения со средним значением нуля и стандартным отклонением (после усечения, если используется) stddev = sqrt(scale / n), где n:
- количество входных единиц в тензоре весов, если режим = "fan_in"
- количество выходных единиц, если режим = "fan_out"
- среднее значение числа входных и выходных единиц, если режим = "fan_avg"
С помощью distribution="uniform", образцы извлекаются из равномерного распределения в пределах [-предел, предел], с limit = sqrt(3 * scale / n).
| Аргументы | |
|---|---|
scale | Коэффициент масштабирования (положительное число с плавающей запятой). |
mode | Одно из "fan_in", "fan_out", "fan_avg". |
distribution | Используемое случайное распределение. Одно из "normal", "uniform". |
seed | Целое число Python. Используется для создания случайных семян. См. tf.compat.v1.set_random_seed для поведения. |
dtype | Тип данных по умолчанию, используется, если аргумент dtype не предоставлен при вызове инициализатора. Поддерживаются только типы с плавающей запятой. |
| Возможные исключения | |
|---|---|
ValueError | В случае некорректного значения аргументов "scale", "mode" или "distribution". |
Методы
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/VarianceScaling