【问题标题】:How to do a "generalized" matrix operation in Theano?如何在 Theano 中进行“广义”矩阵运算?
【发布时间】:2017-01-11 16:11:47
【问题描述】:

假设我有一个 4 维张量 A,我想通过以下方式将它与一个 3 维张量 B 相乘:

C[i,k,a,b] = sum_{j,l} A[i,j,k,l]*B[a,j,b,l]

这是矩阵乘法的推广:

z[i,k] = sum_j x[i,j]*y[j,k]

换句话说,我将第一个张量的一些索引与第二个张量的一些索引配对,然后对它们求和。

【问题讨论】:

    标签: python matrix theano


    【解决方案1】:

    如果我猜对了,这是由 theano.tensor 模块的 dot 函数完成的。

    所有相关信息都在the doc on linear algebra for tensor with theano

    您甚至可以更进一步并使用theano.tensor.tensordot 指定求和轴,因此要重现您的示例,它可能是:

    import theano.tensor as T
    
    A = T.ftensor4() # create a 4 dimensional float32 tensor
    B = T.ftensor4()
    
    C = T.tensordot(A,B, axes=[[1,3],[1,3]]) # here you can specify on which indices to sum
    
    print C.ndim
    # >> 4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 2012-10-22
      • 1970-01-01
      • 2017-03-31
      • 2016-11-03
      • 2015-04-10
      • 1970-01-01
      相关资源
      最近更新 更多