Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.nn.dropout

TensorFlow 1 wersja Zobacz źródło na GitHub

Oblicza Odpad: losowo ustawia elementy do zera, aby uniknąć nadmiernego dopasowania.

Stosowany w notebookach

Używany w przewodniku

Zobacz także: tf.keras.layers.Dropout dla warstwy opadanie.

Przerywania jest przydatna dla regularizing modele dnn. Elementy Wejścia są losowo ustawiony na zero (i inne elementy są przeskalowane). Zachęca to do każdego węzła być niezależnie użyteczne, ponieważ nie może powoływać się na wyjściu z innymi węzłami.

Dokładniej: z prawdopodobieństwem rate elementów x są ustawione na 0 . Pozostałe elementy są skalowane przez 1.0 / (1 - rate) , tak że przewidywana wartość nie jest zachowana.

tf.random.set_seed(0)
x = tf.ones([3,5])
tf.nn.dropout(x, rate = 0.5, seed = 1).numpy()
array([[2., 0., 0., 2., 2.],
     [2., 2., 2., 2., 2.],
     [2., 0., 2., 0., 2.]], dtype=float32)
tf.random.set_seed(0)
x = tf.ones([3,5])
tf.nn.dropout(x, rate = 0.8, seed = 1).numpy()
array([[0., 0., 0., 5., 5.],
     [0., 5., 0., 5., 0.],
     [5., 0., 5., 0., 5.]], dtype=float32)
tf.nn.dropout(x, rate = 0.0) == x
<tf.Tensor: shape=(3, 5), dtype=bool, numpy=
  array([[ True,  True,  True,  True,  True],
         [ True,  True,  True,  True,  True],
         [ True,  True,  True,  True,  True]])>

Domyślnie każdy element jest przechowywany lub spadła niezależnie. Jeśli noise_shape jest określona, to musi być broadcastable w kształcie x , a jedynie wymiary z noise_shape[i] == shape(x)[i] będzie niezależnych decyzji. Jest to przydatne do usunięcia całych kanałów z obrazu lub sekwencji. Na przykład:

tf.random.set_seed(0)
x = tf.ones([3,10])
tf.nn.dropout(x, rate = 2/3, noise_shape=[1,10], seed=1).numpy()
array([[0., 0., 0., 3., 3., 0., 3., 3., 3., 0.],
     [0., 0., 0., 3., 3., 0., 3., 3., 3., 0.],
     [0., 0., 0., 3., 3., 0., 3., 3., 3., 0.]], dtype=float32)

x Ruchomy punkt tensor.
rate Skalarne Tensor tego samego typu co X. Prawdopodobieństwo, że każdy element jest odrzucany. Na przykład, osadzanie = 0,1 spadnie 10% elementów wejściowych.
noise_shape A 1-D Tensor typu int32 , reprezentujący kształt losowo generowanych flagi utrzymania / drop.
seed Pythona całkowitą. Wykorzystywane do tworzenia losowych nasion. Zobacz tf.random.set_seed dla zachowania.
name Nazwa tej operacji (opcjonalnie).

Tensora tego samego kształtu x .

ValueError Jeśli rate nie jest [0, 1) lub x jest zmiennoprzecinkowych napinacz. rate=1 jest niedozwolone, ponieważ wyjście byłoby same zera, co prawdopodobnie nie co miała.