Python Tensorflow切片/提取
张量T是nxk,选择器是NxN。选择器中的每个元素v(i,j)表示:从T[i,j]中抓取第v(i,j)个元素 有没有办法实现这一点,是numpy还是tensorflow?谢谢 ----更新 感谢Alok Singhal在Numpy的回答。如果tensor和selector都是tensorflow tensor,有没有办法做到这一点?这里有一种方法:Python Tensorflow切片/提取,python,tensorflow,Python,Tensorflow,张量T是nxk,选择器是NxN。选择器中的每个元素v(i,j)表示:从T[i,j]中抓取第v(i,j)个元素 有没有办法实现这一点,是numpy还是tensorflow?谢谢 ----更新 感谢Alok Singhal在Numpy的回答。如果tensor和selector都是tensorflow tensor,有没有办法做到这一点?这里有一种方法: tensor = array([[ [ 0.1, 0.8], [ 0.1, 0.8], [ 0.1, 0.8]],
tensor = array([[
[ 0.1, 0.8],
[ 0.1, 0.8],
[ 0.1, 0.8]],
[[ 0.9, 0.3],
[ 0.1, 0.8],
[ 0.9, 0.3]],
[[ 0.1, 0.8],
[ 0.1, 0.8],
[ 0.9, 0.3]]])
selector = array([
[0, 0, 1],
[1, 1, 1],
[1, 1, 0]])
want = array([
[0.1 0.1 0.8],
[0.3 0.8 0.3],
[0.8 0.8 0.9]
])
美丽的。谢谢,如果张量和选择器都是tf.变量,有没有办法?张量[i,j,选择器]在这种情况下似乎不起作用。
>>> i, j = np.ogrid[0:3, 0:3]
>>> i
array([[0],
[1],
[2]])
>>> j
array([[0, 1, 2]])
>>> tensor[i, j, selector]
array([[ 0.1, 0.1, 0.8],
[ 0.3, 0.8, 0.3],
[ 0.8, 0.8, 0.9]])