在tensorflow中添加两个不同维数的张量



我基本上是在tensorflow中添加两个张量,关键是它们的长度不同a = [1, 2, 3, 4, 5]b = [1, 2, 3],我正在寻找一个函数,我在以下

中调用tf.myadd
tf.myadd(a, b) = [2, 4, 6, 4, 5]

我一直在研究广播,但这不是预期的行为。

广播是tf中所有张量操作的默认值。在这种情况下,您试图避免广播,因为根据标准广播规则,两个张量((5,)和(3,))不能沿着轴=0广播。所以你需要的是不广播的元素添加。

在这种情况下,你可以做的是在较小的数组上使用后填充,使两个1D张量具有相同的形状,然后在axis=0上按元素方式添加它们。

Like this -

import numpy as np
import tensorflow as tf
a = [1, 2, 3, 4, 5]
b = [1, 2, 3]
b_pad = np.pad(b, (0,len(a)-len(b)))
tf.add(a,b_pad).numpy()
array([2, 4, 6, 4, 5], dtype=int32)

最新更新