1
假設我們有兩個張量(A
和B
)具有相同的維數。我們可以將它們與tensordot
相乘。例如:Theano中的tensordot和element-wise乘法之間有什麼東西嗎?
T.tensordot(A, B, axes = [[0,3], [0,3]])
在這種情況下,我們「配對」與第二張量的一些軸的第一張量的軸,然後我們總結在這些「配對」軸:
C[j, k, a, b ] = sum_{i, l} A[i, j, k, l] * A[i, a, b, l]
在上面的例子中,第一張量的第一個和最後一個軸分別與第二張量的第一個和最後一個軸配對。
可替代地,我們可以乘兩個張量逐元素:
C[i, j, k, l] = A[i, j, k, l] * B[i, j, k, l]
在這種情況下,我們「配對」的所有與第二張量的所有相應的軸的第一張量的軸(首先用第一,第二次,第二次等)。
現在,我想要做一些介於上述兩個操作之間的事情。更多細節:
- 我想配對第一張量的一些軸與第二張量的某個軸(就像在
tensordot
中做的那樣)。所以,我不想將A的所有軸與B的所有軸配對。 - 我不想總結所有成對的座標軸(就像我們在成對乘法中所做的那樣,沒有對成對的求和軸)。
這裏是我想要寫在「數學」形式:
C[a, b, c, i] = sum_d A[a, b, c, d] * B[i, b, c, d]
什麼是做在theano的最佳方式?