我有以下两个张量:
x, with shape [U, N] y, with shape [N, V]
我想执行批量外部产品:我想将 x 的第一列中的每个元素乘以 y 的第一行中的每个元素以获得形状的张量 [U, V] ,然后将第二列的 x 乘以第二行的 y ,等等 . 最终张量的形状应为 [N, U, V] ,其中 N 是批量大小 .
x
y
[U, V]
[N, U, V]
N
有什么简单的方法可以在TensorFlow中实现这一目标吗?我试图使用 batch_matmul() 但没有成功 .
batch_matmul()
以下工作,使用tf.batch_matmul()?
print x.get_shape() # ==> [U, N] print y.get_shape() # ==> [N, V] x_transposed = tf.transpose(x) print x_transposed.get_shape() # ==> [N, U] x_transposed_as_matrix_batch = tf.expand_dims(x_transposed, 2) print x_transposed_as_matrix_batch.get_shape() # ==> [N, U, 1] y_as_matrix_batch = tf.expand_dims(y, 1) print y_as_matrix_batch.get_shape() # ==> [N, 1, V] result = tf.batch_matmul(x_transposed_as_matrix_batch, y_as_matrix_batch) print result.get_shape() # ==> [N, U, V]
1 回答
以下工作,使用tf.batch_matmul()?