커뮤니티
Python/TensorFlow
제목:    Dropout
  940   김윤중

tf.nn.droput() and tf.layers.dropout()

A quick glance through tensorflow/python/layers/core.py and tensorflow/python/ops/nn_ops.py reveals that tf.layers.dropout is a wrapper for tf.nn.dropout.

The only differences in the two functions are:

  1. The tf.nn.dropout has parameter keep_prob: "Probability that each element is kept"
    tf.layers.dropout has parameter rate: "The dropout rate"
    Thus, keep_prob = 1 - rate as defined here
  2. The tf.layers.dropout has training parameter: "Whether to return the output in training mode (apply dropout) or in inference mode (return the input untouched)."

tf.layers.dropout(
    inputs,
    rate=0.5,

    noise_shape=None,
    seed=None,
    training=False,     #True :학습시,  False:test시 
    name=None
)
tf.nn.dropout(
    x,
    keep_prob=None
,
    noise_shape=None,
    seed=None,
    name=None,
    rate=None
)

out=tf.layers.dense(

hidden = tf.layers.dense(inputs=input, units=1024, activation=tf.nn.relu)
dropout = tf.layers.dropout(inputs=hidden, rate=0.1, training=True)

 

hidden = tf.layers.dense(inputs=input, units=1024, activation=tf.nn.relu)
dropout = tf.layers.dropout(inputs=hidden, rate=1-0.1, training=True)