是否有张量流功能或执行以下任务的优雅方式
考虑我有2d张量,尺寸为$ 3 \ times 10 $。现在我想沿尺寸$ 1 $(或行)添加连续元素,其中要添加的连续元素的数量由张量决定。如果它说$ [ 2,2,4,2] $输出张量的大小应为3美元乘以4美元。因为$ [a_1 + a_2,a_3 + a_4,a_5 + a_6 + a_7 + a_8,a_9 + a_10] $会在每一行上张量
例如:
$\begin{bmatrix}
1 & 2 & 3 & 4 & 5 & 6 & 1 & 2 & 3 &4\\
7 & 8 & 9 & 10 &11 &12 & 7 & 8 & 9 & 10\\
13 &14 &15 &16 &17 &18 & 13 &14 &15 &16
\end{bmatrix}$
,输出应紧随
$\begin{bmatrix}
3 & 7 & 14 & 7\\
15 & 19 &38 &19\\
27 &66 & 27 &31
\end{bmatrix}$
编辑:在numpy np.add.reduceat
中似乎有此功能答案 0 :(得分:0)
在张量流中没有这样的功能。但是您可以通过拆分数组来构造它:
DB connect
运行结果产生:
def tf_reduceat(data, at_array, axis=-1):
split_data = tf.split(data, at_array, axis=axis)
return tf.stack([tf.reduce_sum(i, axis=axis) for i in split_data], axis=axis)
a = tf.constant([[1, 2, 3, 4, 5, 6, 1, 2, 3, 4],
[7, 8, 9, 10, 11, 12, 7, 8, 9, 10],
[13, 14, 15, 16, 17, 18, 13, 14, 15, 16]])
result = tf_reduceat(a, [2, 2, 4, 2])