Python 如何一次为每一行对tensorflow tensor进行不同的切片?
我有一个简单的张量Python 如何一次为每一行对tensorflow tensor进行不同的切片?,python,tensorflow,data-science,Python,Tensorflow,Data Science,我有一个简单的张量a=tf.constant([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15])并想对它进行切片,但我需要对每一行进行不同的操作。这个切片操作由另一个张量b=tf.常量([[0,1],[2,4],[2,5]])来描述。这意味着从张量a的第一行开始,我需要0到1的元素,从2到4的第二行开始,依此类推。因此,最终结果将是 [ [1], [8, 9], [13, 14, 15] ] 我的第一个想法是填充切片开始和结束之间的范围,但不幸的
a=tf.constant([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15])
并想对它进行切片,但我需要对每一行进行不同的操作。这个切片操作由另一个张量b=tf.常量([[0,1],[2,4],[2,5]])
来描述。这意味着从张量a的第一行开始,我需要0
到1
的元素,从2
到4
的第二行开始,依此类推。因此,最终结果将是
[
[1],
[8, 9],
[13, 14, 15]
]
我的第一个想法是填充切片开始和结束之间的范围,但不幸的是,使用map\u fn
不可能,因为结果行的长度不同
有人知道怎么做这种手术吗?
- 基本上,我们需要迭代两个数组。一个包含实际数据,另一个包含要返回的范围
- 因此,zip函数可以帮助逐个迭代来自多个数组的元素
输出:
[[1], [8, 9], [13, 14, 15]]
结果是正确的,但我希望在不将张量转换为numpy数组的情况下得到同样的结果;)无论如何,您的答案可能非常有用,谢谢:)
[[1], [8, 9], [13, 14, 15]]