有沒有這樣的輸出方法?
x = (30, 64, 36, 1)
y = (30, 64, 36, 2048)
是否有一些操作可以用 x 和 y 輸出形狀 (30, 64, 2048, 1)
uj5u.com熱心網友回復:
如果我理解正確(IIUC)你想要這個:

您可以einsum在下面使用numpy或tensorflow類似:
麻木版本
import numpy as np
x = np.random.rand(30, 64, 36, 1)
y = np.random.rand(30, 64, 36, 2048)
z = np.einsum('ijkl,ijkm->ijml', x, y)
# output[i,j,m,l] = sum_k x[i,j,k,l] * y[i,j,k,m]
print(z.shape)
張量流版本
import tensorflow as tf
x = tf.random.normal(shape=[30, 64, 36, 1])
y = tf.random.normal(shape=[30, 64, 36, 2048])
z = tf.einsum('ijkl,ijkm->ijml', x, y)
# output[i,j,m,l] = sum_k x[i,j,k,l] * y[i,j,k,m]
print(z.shape)
輸出:
(30, 64, 2048, 1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/485698.html
