如何使用另一个数组的元素作为索引来切片张量流中的张量?

图斯克

我正在寻找与tf.unsorted_segment_sum类似的函数,但我不想对这些段求和,我想将每个段都作为张量。

因此,例如,我有以下代码:(实际上,我的张量形状为(10000,63),并且段数为2500)

    to_be_sliced = tf.constant([[0.1, 0.2, 0.3, 0.4, 0.5],
                            [0.3, 0.2, 0.2, 0.6, 0.3],
                            [0.9, 0.8, 0.7, 0.6, 0.5],
                            [2.0, 2.0, 2.0, 2.0, 2.0]])

indices = tf.constant([0, 2, 0, 1])
num_segments = 3
tf.unsorted_segment_sum(to_be_sliced, indices, num_segments)

输出将在这里

array([sum(row1+row3), row4, row2]

我正在寻找的是具有不同形状的3张量(也许是张量的列表),第一张包含原始的第一行和第三行(形状为(2,5)),第二张包含第四行(形状为(1 ,5)),第三个包含第二行,如下所示:

[array([[0.1, 0.2, 0.3, 0.4, 0.5],
        [0.9, 0.8, 0.7, 0.6, 0.5]]),
 array([[2.0, 2.0, 2.0, 2.0, 2.0]]),
 array([[0.3, 0.2, 0.2, 0.6, 0.3]])]

提前致谢!

Jdehesa

您可以这样做:

import tensorflow as tf

to_be_sliced = tf.constant([[0.1, 0.2, 0.3, 0.4, 0.5],
                            [0.3, 0.2, 0.2, 0.6, 0.3],
                            [0.9, 0.8, 0.7, 0.6, 0.5],
                            [2.0, 2.0, 2.0, 2.0, 2.0]])
indices = tf.constant([0, 2, 0, 1])
num_segments = 3
result = [tf.boolean_mask(to_be_sliced, tf.equal(indices, i)) for i in range(num_segments)]
with tf.Session() as sess:
    print(*sess.run(result), sep='\n')

输出:

[[0.1 0.2 0.3 0.4 0.5]
 [0.9 0.8 0.7 0.6 0.5]]
[[2. 2. 2. 2. 2.]]
[[0.3 0.2 0.2 0.6 0.3]]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过使用另一个数组作为沿轴的切片索引来切片数组

使用张量流中的另一个索引列表访问张量的元素

如何将PyTorch张量与另一个张量切片?

Keras:如何使用来自另一个张量的信息对张量进行切片?

使用另一个数组的索引切片numpy数组

Python使用另一个数组作为深度切片numpy数组

如何切片JavaScript / Jquery中另一个数组中已经存在的数组元素

numpy:使用一个矩阵作为另一个矩阵的索引来创建张量吗?

如何索引/切片未知尺寸的PyTorch张量/ numpy数组的最后一个尺寸

在张量流中查找值张量到另一个张量的索引

在Chapel中使用另一个数组作为索引来订购一个数组

使用来自另一个数组的索引有效地切片数组

如何使用另一个列表中的索引对列表进行切片

如何从另一个数组索引到张量 tensorflow

TensorFlow:使用张量索引另一个张量

使用张量索引切片张量

用另一个数组中的值替换numpy数组的切片

如何使用数组元素作为循环中另一个数组的索引?

如何使用数组元素作为另一个数组的索引

使用一个数组的元素作为索引来创建新数组,以选择其他数组中的元素-JavaScript

如何使用另一个切片作为分隔符来分割切片?

如何在张量流中的切片张量上使用tf.clip_by_value()?

当切片本身是张量流中的张量时如何进行切片分配

张量流:张量的交叉索引切片

我如何在张量流中正确地将一个数组追加到另一个数组?

用另一个数组的索引来索引一个numpy数组

从另一个数组大小的numpy数组获取范围/切片

根据另一个数组的形状切片numpy数组的好方法

用另一个数组切片多维数组