我正在尝试映射大小为(?, 200, 300, 2000)
的一组激活X
表示(?, 200, 300, 100)
。
为此,我有一个大小为(2000, 100)
的权重矩阵W。如何实现每个(?, x1, y1, 2000)
正确相乘?我尝试了tf.matmul和tf.tensordot,但无法正常工作。
答案 0 :(得分:0)
这应该对您有帮助(采用较小的形状以加快计算速度):
X = np.ones(((5, 2, 3, 7)))
W = np.ones((X.shape[3], 10))
X_reshaped = tf.reshape(X, [-1, X.shape[3]])
# Shape: (30, 7)
y = tf.matmul(X_reshaped, W)
# Shape: (30, 10)
y_reshaped = tf.reshape(y, [-1, X.shape[1], X.shape[2], 10])
# Shape: (5, 2, 3, 10)