我想做张量乘法,因为批处理中的所有图像都是分开处理的。
我想做的等同于
dot = tf.stack([ tf.tensordot(f1[i], f2[i], [2, 2]) for i in range(batchsize) ], axis=0)
其中f1和f2是具有3维的张量。我想知道是否有一种更直接的方法来获得该张量,尤其是因为批量大小并不总是已知,并且级联可能会花费速度吗? 手动求和的变化更快吗?
f1 = tf.reshape(f1, [-1, hw, 1, c])
f2 = tf.reshape(f2, [-1, 1, hw, c])
dot = tf.reduce_sum(f1*f2, axis=-1)
我不确定张量流是否会在求和之前创建那个f1 * f2张量,这会花费vram和速度? 有没有最优雅的方法?