tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None)
Type: function
Docstring: Computes dropout.
With probability keep_prob
, outputs the input element scaled up by 1 / keep_prob
, otherwise outputs 0
. The scaling is so that the expected sum is unchanged.
By default, each element is kept or dropped independently. If noise_shape
is specified, it must be broadcastable
to the shape of x
, and only dimensions with noise_shape[i] == shape(x)[i]
will make independent decisions. For example, if shape(x) = [k, l, m, n]
and noise_shape = [k, 1, 1, n]
, each batch and channel component will be kept independently and each row and column will be kept or not kept together.
Args:
x: A tensor.
keep_prob: A scalar Tensor
with the same type as x. The probability that each element is kept.
noise_shape: A 1-D Tensor
of type int32
, representing the shape for randomly generated keep/drop flags.
seed: A Python integer. Used to create random seeds. See @{tf.set_random_seed} for behavior.
name: A name for this operation (optional).
Returns:
A Tensor of the same shape of x
.
Raises:
ValueError: If keep_prob
is not in (0, 1]
.
example:
import tensorflow as tf
import numpy as np
# 神经元输入值
neuros = np.array([1, 1, 1, 1],dtype=np.float32)
# 接入dropout层
neuros_drop = tf.nn.dropout(neuros, keep_prob=0.5)
with tf.Session() as sess:
neuros_drop_res = sess.run(neuros_drop)
print(neuros_drop_res)
[ 0. 2. 2. 2.]