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
Хотя это устаревший 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:
- число входных единиц в тензоре весов, если 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 словаря.
| Возвращает | |
|---|---|
| Сериализуемый в 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/api_docs/python/tf/compat/v1/variance_scaling_initializer