Spec-Zone.ru › TensorFlow

tf.nn.experimental.general_dropout

Выполняет дропаут: случайным образом заменяет элементы нулями, чтобы предотвратить переобучение.

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

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

Подробнее см. в руководстве по миграции.

tf.compat.v1.nn.experimental.general_dropout

tf.nn.experimental.general_dropout(
    x, rate, uniform_sampler, noise_shape=None, name=None
)

Общее описание дропаута см. в разделе tf.nn.experimental.stateless_dropout.

В отличие от tf.nn.experimental.stateless_dropout, здесь можно передать пользовательскую функцию выборки uniform_sampler, которая (при заданных форме и типе данных) генерирует случайный тензор (с указанными формой и типом данных) с распределением Uniform[0, 1). Например, uniform_sampler может быть tf.random.stateless_random_uniform или tf.random.Generator.uniform.

Например, если для генерации случайных чисел вы используете tf.random.Generator, можно применить следующий код для выполнения дропаута:

g = tf.random.Generator.from_seed(7)
sampler = g.uniform
x = tf.constant([1.1, 2.2, 3.3, 4.4, 5.5])
rate = 0.5
tf.nn.experimental.general_dropout(x, rate, sampler)
<tf.Tensor: shape=(5,), ..., numpy=array([ 0. ,  4.4,  6.6,  8.8, 11. ], ...)>
tf.nn.experimental.general_dropout(x, rate, sampler)
<tf.Tensor: shape=(5,), ..., numpy=array([2.2, 0. , 0. , 8.8, 0. ], ...)>

Этот способ производительнее, чем использование tf.nn.experimental.stateless_dropout и tf.random.Generator.make_seeds:

g = tf.random.Generator.from_seed(7)
x = tf.constant([1.1, 2.2, 3.3, 4.4, 5.5])
rate = 0.5
tf.nn.experimental.stateless_dropout(x, rate, g.make_seeds(1)[:, 0])
<tf.Tensor: shape=(5,), ..., numpy=array([ 2.2,  4.4,  6.6,  0. , 11. ], ...)>
tf.nn.experimental.stateless_dropout(x, rate, g.make_seeds(1)[:, 0])
<tf.Tensor: shape=(5,), ..., numpy=array([2.2, 0. , 6.6, 8.8, 0. ], ...>

так как генерация и использование начальных значений требуют дополнительных вычислений. tf.nn.experimental.general_dropout позволяет обойтись без них.

Аргументы
x Тензор с плавающей точкой.
rate Скаляр Tensor того же типа, что и x. Вероятность отбрасывания каждого элемента. Например, при значении rate=0.1 будет отброшено 10% входных элементов.
uniform_sampler Вызываемый объект с сигнатурой (shape, dtype) -> Tensor[shape, dtype], используемый для генерации тензора равномерно распределённых случайных чисел в диапазоне [0, 1) с заданными формой и типом данных.
noise_shape Одномерный целочисленный Tensor, представляющий форму для случайно сгенерированных флагов сохранения или отбрасывания элементов.
name Имя этой операции.
Возвращает
Тензор той же формы и типа данных, что и x.
Вызывает исключения
ValueError Если rate не входит в [0, 1) или если x не является тензором с плавающей точкой. Значение rate=1 не допускается, так как выходные данные будут состоять только из нулей, что, скорее всего, не соответствует ожидаемому результату.

© 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/nn/experimental/general_dropout

Spec-Zone.ru

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