【问题标题】:Tensorflow - how to use same dropout mask at each rowTensorflow - 如何在每一行使用相同的 dropout 掩码
【发布时间】:2017-11-17 18:55:12
【问题描述】:

如何使用tf.nn.dropout 将相同的 dropout 掩码应用于张量的每一行?

例子:

我有一个形状为 (2,2,3) 的 3D 张量:

[[[  1.   2.   3.]
  [  4.   5.   6.]]

 [[  7.   8.   9.]
  [ 10.  11.  12.]]]

使用 dropout 时,应将相同的掩码应用于每一行。此外,当删除条目时,第三维的所有元素都应设置为零。 假设在每一行/水平尺寸中,只有第二个条目被丢弃,对应于每行[1,0] 的丢弃掩码。这应该给出(不包括其他条目的重新缩放):

[[[  1.   2.   3.]
  [  0.   0.   0.]]

 [[  7.   8.   9.]
  [ 0.  0.  0.]]]

通过向tf.nn.dropout 提供noise_shape,我可以确保第三维中的所有元素都设置为零。这可以使用noise_shape=[2,2,1] 来完成。但是,我不知道如何确保每个行/切片使用相同的 dropout 掩码。

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    如果以后有人偶然发现这个问题,我会自己发布答案。该行为可以通过将noise_shape=[1,2,1] 提供给tf.nn.dropout 来实现。或者一般来说,当张量的形状为(m,n,e) 设置noise_shape=[1,n,1]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 2020-05-24
      • 2017-12-11
      相关资源
      最近更新 更多