我认为有时候在神经网络(尤其是通用对抗网络)的训练过程中更改辍学率可能是个好主意,从高辍学率开始,然后线性地将辍学率降低到零。
您认为这可行吗?如果可以,是否有可能在张量流中实现这一点?

最佳答案

您可以将占位符传递给tf.nn.dropoutkeep_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.]]


至于这是否有意义,最好的验证方法是使用静态和变化的辍学率运行一组实验,然后比较结果。

关于tensorflow - 在 tensorflow 训练期间更改辍学率-有可能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51114492/

10-12 18:42