Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tensorflow:按行迭代张量并执行元素乘法_Python_Tensorflow_Matrix Multiplication - Fatal编程技术网

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

Python Tensorflow:按行迭代张量并执行元素乘法,python,tensorflow,matrix-multiplication,Python,Tensorflow,Matrix 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.sca

我有两个张量

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\u fn、tf.while\u循环尝试了几种方法。然而,我不知道如何正确有效地完成它

如果我正确理解了您的问题,您希望,对于批次中的每个示例,在
y[batchnr]
中对29个形状矩阵(29,64)进行元素相乘,然后再与x进行元素相乘。如果这是正确的,那么我认为您可以使用
tf.reduce\u 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)

又好又容易。谢谢:)