tf.compat.v1.variance_scaling_initializer
Инициализатор, который адаптирует масштаб к форме тензоров весов.
tf.compat.v1.variance_scaling_initializer(
scale=1.0,
mode='fan_in',
distribution='truncated_normal',
seed=None,
dtype=tf.dtypes.float32
)
Переход на TF2
Хотя этот символ относится к устаревшему API compat.v1, он совместим с немедленным выполнением и tf.function.
Чтобы перейти на API TF2, используйте tf.initializers.variance_scaling или tf.keras.initializers.VarianceScaling (ни один из них не относится к compat.v1) и укажите тип данных при вызове инициализатора.
Структурное сопоставление с 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 — это:
- число входных единиц в тензоре весов, если mode = "fan_in"
- число выходных единиц, если mode = "fan_out"
- среднее число входных и выходных единиц, если mode = "fan_avg"
При использовании distribution="uniform" значения выбираются из равномерного распределения в диапазоне [-limit, limit], где 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. |
| Возвращает | |
|---|---|
| Экземпляр Initializer. |
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/api_docs/python/tf/compat/v1/variance_scaling_initializer