tensor.split_to_sequence
fn split_to_sequence(
self: @Tensor<T>, axis: usize, keepdims: usize, split: Option<Tensor<usize>>
) -> Array<Tensor<T>>;
Split a tensor into a sequence of tensors, along the specified ‘axis’
Args
self
(@Tensor<T>
) - The input tensor to split.axis
(usize
) - The axis along which to split on.keepdims
(usize
) - Keep the split dimension or not. If input ‘split’ is specified, this attribute is ignored.split
(Option<Tensor<usize>>
) - Length of each output. It can be either a scalar(tensor of empty shape), or a 1-D tensor. All values must be >= 0.
Panics
Panics if the 'axis' accepted range is not [-rank, rank-1] where r = rank(input).
Panics if the 'split' is not either a scalar (tensor of empty shape), or a 1-D tensor.
Returns
One or more outputs forming a sequence of tensors after splitting.
Examples
use core::array::{ArrayTrait, SpanTrait};
use orion::operators::tensor::{TensorTrait, Tensor, U32Tensor};
use core::option::OptionTrait;
fn split_to_sequence_example() -> Array<Tensor<u32>> {
let tensor: Tensor<u32> = TensorTrait::<u32>::new(
shape: array![2,4].span(),
data: array![
0, 1, 2, 3, 4, 5, 6, 7
].span(),
);
let num_outputs = Option::Some(2);
// let split = Option::Some(TensorTrait::new(array![1].span(), array![2].span()));
let split: Option<Tensor<usize>> = Option::Some(TensorTrait::new(array![2].span(), array![2, 2].span()));
// We can call `split_to_sequence` function as follows.
return tensor.split_to_sequence(1, 1, split);
}
>>> [
[[0,1],[4,5]],
[[2,3],[6,7]]
]
Last updated
Was this helpful?