【问题标题】:Tensorflow- Cartesian product of two 2-D tensorsTensorflow- 两个二维张量的笛卡尔积
【发布时间】:2018-11-21 06:44:38
【问题描述】:

我有两个二维张量,想要得到它们的笛卡尔积。通过笛卡尔,我的意思是第一张量的每一行与第二张量的每一行的连接。例如:

输入:

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

[[7,8],[9,10]]

输出:

[[1,2,3,7,8],

[1,2,3,9,10],

[4,5,6,7,8],

[4,5,6,9,10]]

我见过this post,但它不适用于这种情况。什么是最好的?

谢谢

【问题讨论】:

    标签: python tensorflow cartesian-product


    【解决方案1】:

    这是一种方法。分别沿第二维和第一维重复元素ab,进一步重塑重复的a,然后连接两个重复的张量。

    a_ = tf.reshape(tf.tile(a, [1, b.shape[0]]), (a.shape[0] * b.shape[0], a.shape[1]))
    b_ = tf.tile(b, [a.shape[0], 1])
    
    tf.concat([a_, b_], 1).eval()
    #array([[ 1,  2,  3,  7,  8],
    #       [ 1,  2,  3,  9, 10],
    #       [ 4,  5,  6,  7,  8],
    #       [ 4,  5,  6,  9, 10]])
    

    【讨论】:

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