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 Целочисленный 1-мерный 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