我认为有时候在神经网络(尤其是通用对抗网络)的训练过程中更改辍学率可能是个好主意,从高辍学率开始,然后线性地将辍学率降低到零。
您认为这可行吗?如果可以,是否有可能在张量流中实现这一点?
最佳答案
您可以将占位符传递给tf.nn.dropout的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.]]
至于这是否有意义,最好的验证方法是使用静态和变化的辍学率运行一组实验,然后比较结果。
关于tensorflow - 在 tensorflow 训练期间更改辍学率-有可能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51114492/