tensor.gather_elements

   fn gather_elements(self: @Tensor<T>, indices: Tensor<i32>, axis: Option<i32>) -> Tensor<T>;

GatherElements is an indexing operation that produces its output by indexing into the input data tensor at index positions determined by elements of the indices tensor.

Args

  • self(@Tensor<T>) - The input tensor.

  • indices(Tensor<i32>) - Tensor of indices.

  • axis(Option<i32>) - Axis to gather_elements on. Default: axis=0.

Panics

  • Panics if index values are not within bounds [-s, s-1] along axis of size s.

Returns

A new Tensor<T> .

Example

use core::array::{ArrayTrait, SpanTrait};

use orion::operators::tensor::{TensorTrait, Tensor, U32Tensor};

fn gather_elements_example() -> Tensor<u32> {
    let tensor = TensorTrait::<u32>::new(
        shape: array![3, 3].span(), 
        data: array![[ 1, 2, 3],[4, 5, 6], [7, 8, 9]].span(), 
    );
    let indices = TensorTrait::<i32>::new(
        shape: array![1, 2, 0].span(), 
        data: array![2, 0, 0].span(), 
    );

    return tensor.gather_elements(
        indices: indices, 
        axis: Option::None(()), 
    );
}
>>> [[4. 8. 3.]
     [7. 2. 3.]]

Last updated