gather_nd¶
- paddle. gather_nd ( x, index, name=None ) [source]
- 
         This function is actually a high-dimensional extension of gatherand supports for simultaneous indexing by multiple axes.indexis a K-dimensional integer tensor, which is regarded as a (K-1)-dimensional tensor ofindexintoinput, where each element defines a slice of params:\[output[(i_0, ..., i_{K-2})] = input[index[(i_0, ..., i_{K-2})]]\]Obviously, index.shape[-1] <= input.rank. And, the output tensor has shapeindex.shape[:-1] + input.shape[index.shape[-1]:].Given: x = [[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]] x.shape = (2, 3, 4) * Case 1: index = [[1]] gather_nd(x, index) = [x[1, :, :]] = [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]] * Case 2: index = [[0,2]] gather_nd(x, index) = [x[0, 2, :]] = [8, 9, 10, 11] * Case 3: index = [[1, 2, 3]] gather_nd(x, index) = [x[1, 2, 3]] = [23]- Parameters
- 
           - x (Tensor) – The input Tensor which it’s data type should be bool, float32, float64, int32, int64. 
- index (Tensor) – The index input with rank > 1, index.shape[-1] <= input.rank. Its dtype should be int32, int64. 
- name (str, optional) – Name for the operation (optional, default is None). For more information, please refer to Name. 
 
- Returns
- 
           A tensor with the shape index.shape[:-1] + input.shape[index.shape[-1]:] 
- Return type
- 
           output (Tensor) 
 Examples import paddle x = paddle.to_tensor([[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]]) index = paddle.to_tensor([[0, 1]]) output = paddle.gather_nd(x, index) #[[3, 4]] 
