我有一个维度为 4 的张量[batch_size, num_rows, num_cols, num_values]
和一个维度为 1 的张量[num_values]
。我想计算第四列中的值和我的等级 1 张量的点积,从而得到一个维度为 的等级为 4 的张量[batch_size, num_rows, num_cols, 1]
,然后我可以将其tf.squeeze
转换为维度为 的张量[batch_size, num_rows, num_cols]
。有谁知道我怎么可能做到这一点?
您可以使用tensordot
或reduce_sum
:
a = tf.constant(np.random.rand(2, 3, 5, 7))
b = tf.constant(np.random.rand(7))
tf.tensordot(a, b, [-1, -1]) # <tf.Tensor 'Tensordot_1:0' shape=(2, 3, 5) dtype=float64>
tf.reduce_sum(a * b, axis=-1) # <tf.Tensor 'Tensordot_1:0' shape=(2, 3, 5) dtype=float64>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句