在tensorflow培训期间改变辍学率-可能吗?

在tensorflow培训期间改变辍学率-可能吗?,tensorflow,machine-learning,neural-network,Tensorflow,Machine Learning,Neural Network,我认为在训练神经网络(特别是:一般对抗性网络)时,有时改变辍学率是个好主意,从高辍学率开始,然后线性地将辍学率降至零。 您认为这有意义吗?如果有,是否有可能在tensorflow中实现这一点?您可以将占位符传递给的keep_prob参数,以便能够在运行时提供任意的辍学率: # array of ones data=np.ones((3,4), dtype=np.float32) keep_prob = tf.placeholder(tf.float32) drop = tf.nn.dropou

我认为在训练神经网络(特别是:一般对抗性网络)时,有时改变辍学率是个好主意,从高辍学率开始,然后线性地将辍学率降至零。
您认为这有意义吗?如果有,是否有可能在tensorflow中实现这一点?

您可以将占位符传递给的
keep_prob
参数,以便能够在运行时提供任意的辍学率:

# array of ones
data=np.ones((3,4), dtype=np.float32)

keep_prob = tf.placeholder(tf.float32)
drop = tf.nn.dropout(data, keep_prob=keep_prob)

sess = tf. InteractiveSession()

print(sess.run(drop, feed_dict={keep_prob: 0.5}))
# >>> [[0. 2. 0. 2.]
#      [0. 2. 0. 0.]
#      [2. 2. 2. 2.]]

print(sess.run(drop, feed_dict={keep_prob: 1.0}))
# >>> [[1. 1. 1. 1.]
#      [1. 1. 1. 1.]
#      [1. 1. 1. 1.]]
至于这是否有意义,最好的验证方法是以静态和变化的辍学率进行实验,然后比较结果。

顺便说一句,这是一篇关于这方面的论文。