📅  最后修改于: 2023-12-03 15:20:37.199000             🧑  作者: Mango
In TensorFlow, dropout
is a regularization technique used to prevent overfitting in neural networks. It consists of randomly dropping out (setting to zero) a certain proportion of input units in each training step.
The tf.nn.dropout()
function can be used to apply dropout to a tensor. The function takes two arguments:
x
: the tensor to apply dropout tokeep_prob
: the probability of keeping each unit (usually set to a value between 0.5 and 0.9)Here's an example of using tf.nn.dropout()
in a TensorFlow graph:
import tensorflow as tf
# Assuming `input_tensor` is the input tensor to a neural network
dropout_rate = 0.5
input_tensor = tf.placeholder(dtype=tf.float32, shape=[None, 784])
dropout_tensor = tf.nn.dropout(input_tensor, keep_prob=dropout_rate)
# ... Add other layers to the neural network graph
In this example, dropout_rate
is set to 0.5, which means that each input unit has a 50% chance of being kept in each training step.
It's important to note that dropout should only be applied during training, and not during inference. During inference, the entire network should be used to make predictions. To achieve this, the keep_prob
argument to tf.nn.dropout()
can be set to 1.0 during inference.
# `input_tensor` is assumed to have been defined earlier
dropout_rate = 0.5
input_tensor = tf.placeholder(dtype=tf.float32, shape=[None, 784])
dropout_tensor = tf.nn.dropout(input_tensor, keep_prob=dropout_rate)
# ... Add other layers to the neural network graph
with tf.Session() as sess:
# Assuming `data` contains the data to make predictions on
# During inference, `keep_prob` should be set to 1.0
predictions = sess.run(output_tensor, feed_dict={input_tensor: data, keep_prob: 1.0})