Tensorflow-如何在每行使用相同的退出掩码
如何使用Tensorflow-如何在每行使用相同的退出掩码,tensorflow,Tensorflow,如何使用tf.nn.dropout将相同的dropout掩码应用于张量的每一行 例如: 我有一个三维形状的张量(2,2,3): 使用dropout时,应将相同的掩码应用于每一行。此外,当一个条目被删除时,第三维的所有元素都应该设置为零。 假设在每行/水平切片中,只有第二个条目被删除,对应于每行[1,0]的删除掩码。这应给出(不包括其他条目的重新缩放): 通过向tf.nn.dropout提供noise\u形状,我可以确保第三维中的所有元素都设置为零。这可以使用noise\u shape=[2,2,
tf.nn.dropout
将相同的dropout掩码应用于张量的每一行
例如:
我有一个三维形状的张量(2,2,3)
:
使用dropout时,应将相同的掩码应用于每一行。此外,当一个条目被删除时,第三维的所有元素都应该设置为零。
假设在每行/水平切片中,只有第二个条目被删除,对应于每行[1,0]
的删除掩码。这应给出(不包括其他条目的重新缩放):
通过向
tf.nn.dropout
提供noise\u形状
,我可以确保第三维中的所有元素都设置为零。这可以使用noise\u shape=[2,2,1]
实现。但是,我不知道如何确保每行/每片都使用相同的退出掩码。如果将来有人在这个问题上出错,我将自己发布答案。该行为可以通过向tf.nn.dropout
提供noise\u shape=[1,2,1]
来实现。或者一般来说,当有一个形状的张量(m,n,e)
设置噪音\u形状=[1,n,1]
如果将来有人在这个问题上绊倒,我会自己发布答案。该行为可以通过向tf.nn.dropout
提供noise\u shape=[1,2,1]
来实现。或者通常,当具有形状张量(m,n,e)
设置噪声\u形状=[1,n,1]
[[[ 1. 2. 3.]
[ 4. 5. 6.]]
[[ 7. 8. 9.]
[ 10. 11. 12.]]]
[[[ 1. 2. 3.]
[ 0. 0. 0.]]
[[ 7. 8. 9.]
[ 0. 0. 0.]]]