【发布时间】:2019-05-30 23:24:22
【问题描述】:
我有一个二维张量,我想从每一行中提取几个起始元素。
我有必须捕获的元素的列索引(对于每一行)。
请注意,不同行的列索引不同。
以下示例使其创建:
二维张量是:
[[4 2 4 4 1 1 1 1 1 1 1 1 1 1 1 1]
[4 4 4 4 4 4 4 1 1 1 1 1 1 1 1 1]
[4 4 4 5 4 4 4 1 1 1 1 1 1 1 1 1]
[4 4 1 4 4 4 4 1 1 1 1 1 1 1 1 1]
[4 4 4 4 6 4 4 8 8 1 1 1 1 1 1 1]
[3 9 9 9 9 9 9 1 1 1 1 1 1 1 1 1]
[3 9 9 9 9 9 9 1 1 1 1 1 1 1 1 1]
[1 9 9 9 9 9 9 1 1 1 1 1 1 1 1 1]
[3 9 4 9 9 9 9 1 1 1 1 1 1 1 1 1]
[3 9 9 6 9 9 9 1 1 1 1 1 1 1 1 1]]
索引数组为:
[4 7 7 7 9 7 7 7 7 7]
如何从上面的索引数组中得到下面的数组:
[[4 2 4 4 ]
[4 4 4 4 4 4 4 ]
[4 4 4 5 4 4 4]
[4 4 1 4 4 4 4]
[4 4 4 4 6 4 4 8 8]
[3 9 9 9 9 9 9 ]
[3 9 9 9 9 9 9 ]
[1 9 9 9 9 9 9 ]
[3 9 4 9 9 9 9 ]
[3 9 9 6 9 9 9 ]]
【问题讨论】:
-
问题是你描述的输出不能是一个数组,因为每个切片都有不同的大小。你到底想得到什么?你可以有一个
list的数组或一个tf.TensorArray,但它们不如正确的tf.Tensor有用。你打算如何使用输出? -
我想将此张量转换为稀疏张量,但我不能这样做,因为行中的一些结束元素也存在于行中间。所以我想提取索引数组指定的起始元素并将结果张量转换为稀疏张量。
标签: python arrays python-2.7 tensorflow slice