繁体   English   中英

Tensorflow:逐行迭代张量并执行逐元素乘法

[英]Tensorflow: Iterate tensor row-wise and perform elementwise multiplication

我有两个张量

x = shape(batchsize, 29, 64), 
y = shape(batchsize, 29, 29, 64)

我想在y上逐行进行迭代,并与x进行元素逐次乘法,结果应为某种形状(批量大小为29、64)。

我如何依次编程:

for batchnr in range(x.shape[0]): 
    for elem in y[batchnr]:
        x[batchnr] = tf.multiply(x[batchnr], elem)

我使用tf.scan,tf.map_fn,tf.while_loop尝试了几件事。 但是,我不知道如何正确有效地做到这一点。

如果我正确理解了您的问题,那么对于一个批次中的每个示例,您都希望分别在y[batchnr] 29个形状为( y[batchnr] )的矩阵分别乘以y[batchnr] ,然后分别乘以x 。 如果正确,那么我认为您可以使用tf.reduce_prod()

例如,

# x = shape(batchsize, 29, 64), 
# y = shape(batchsize, 29, 29, 64)
# ...

z = tf.reduce_prod(y, axis=1)  # shape(batchsize, 29, 64), product of 29 matrices element-wise
r = tf.multiply(x, z)  # shape(batchsize, 29, 64)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM