tf.keras.layers.Dropout
| Просмотр исходного кода на GitHub |
Применяет Dropout к вводу.
tf.keras.layers.Dropout(
rate, noise_shape=None, seed=None, **kwargs
)
Слой Dropout случайным образом устанавливает входные единицы в 0 с частотой rate на каждом шаге во время обучения, что помогает предотвратить переобучение. Входные данные, не установленные в 0, масштабируются до 1/(1 - rate) таким образом, чтобы сумма по всем входным данным оставалась неизменной.
Обратите внимание, что слой Dropout применяется только тогда, когда training установлено в True, чтобы не было выброшенных значений во время вывода. При использовании model.fit, training будет автоматически установлено в True, а в других контекстах вы можете явно установить параметр kwarg в True при вызове слоя.
(Это в отличие от установки trainable=False для слоя Dropout. trainable не влияет на поведение слоя, так как Dropout не имеет переменных/весов, которые можно заморозить во время обучения.)
tf.random.set_seed(0) layer = tf.keras.layers.Dropout(.2, input_shape=(2,)) data = np.arange(10).reshape(5, 2).astype(np.float32) print(data) [[0. 1.] [2. 3.] [4. 5.] [6. 7.] [8. 9.]] outputs = layer(data, training=True) print(outputs) tf.Tensor( [[ 0. 1.25] [ 2.5 3.75] [ 5. 6.25] [ 7.5 8.75] [10. 0. ]], shape=(5, 2), dtype=float32)
| Аргументы | |
|---|---|
rate | Число с плавающей точкой от 0 до 1. Часть входных единиц, которые необходимо выбросить. |
noise_shape | Целочисленный тензор 1D, представляющий форму двоичной маски Dropout, которая будет умножена на вход. Например, если у ваших входных данных форма (batch_size, timesteps, features) и вы хотите, чтобы маска Dropout была одинаковой для всех временных шагов, вы можете использовать noise_shape=(batch_size, 1, features). |
seed | Целое число Python для использования в качестве случайного семени. |
Аргументы вызова:
-
inputs: Входной тензор (любой размерности). -
training: Логическое значение Python, указывающее, должен ли слой работать в режиме обучения (добавляя Dropout) или в режиме вывода (не выполняя никаких действий).
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/layers/Dropout