【问题标题】:Subtract each row of a tensor A by each row of a Tensor B用张量 B 的每一行减去张量 A 的每一行
【发布时间】:2019-05-08 07:37:50
【问题描述】:

我想从张量 B 的每一行中减去张量 A 的每一行。这就是我想要的(这不会产生结果):

A = tf.constant([[1,2],[2,4]])
B = tf.constant([[1,2],[3,4]])
C = tf.math.subtract(A,B)
tf.Session().run(C)
print(C)
[[0 0]
 [-1 0]]
I want:
>>> C = [[[0,0],[-2,-2]],[[1,2],[-1,0]]]

我知道我可以使两个数组都变大(基本上重复条目以使它们具有相同的尺寸),这样我就可以简单地使用 tf.math.subtract。但是,这不是一个选择,因为我必须非常减少批量大小并且无法正确训练我的模型

【问题讨论】:

    标签: python tensorflow deep-learning tensor


    【解决方案1】:

    我现在想通了。以防其他人偶然发现同样的问题。这是我找到的解决方案:

    A = tf.constant([[1,2],[2,4]])
    B = tf.constant([[1,2],[3,4]])
    C = tf.math.subtract(tf.expand_dims(A,axis=2),tf.expand_dims(B,axis=0))
    tf.Session().run(C)
    [[[0,0],[-2,-2]],[[1,2],[-1,0]]]
    

    它基本上利用了 Tensorflow 中的广播机制,这很容易成为两个 numpys 广播机制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-29
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多