fn shrink(self: @Tensor<T>, bias: Option<T>, lambd: Option<T>) -> Tensor<T>

Shrinks the input tensor element-wise to the output tensor with the same datatype and shape based on the following formula: If x < -lambd: y = x + bias; If x > lambd: y = x - bias; Otherwise: y = 0.


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

  • bias(Option<T>) - The bias value added to or subtracted from input tensor values.

  • lambd(Option<T>) - The lambd value defining the shrink condition.


A new Tensor<T> of the same datatype and shape as the input tensor with shrinked values.

Type Constraints

Constrain input and output types to fixed point numbers.


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

use orion::operators::tensor::{TensorTrait, Tensor, FP8x23Tensor};
use orion::numbers::{FixedTrait, FP8x23};

fn shrink_example() -> Tensor<FP8x23> {
    let tensor = TensorTrait::<FP8x23>::new(
        shape: array![2, 2].span(),
        data: array![
            FixedTrait::new(2, true),
            FixedTrait::new(1, true),
            FixedTrait::new(1, false),
            FixedTrait::new(2, false)
    let bias = Option::Some(FixedTrait::new(1, false))
    let lambd = Option::Some(FixedTrait::new(1, false))

    return tensor.shrink(tensor, bias, lambd);
>>> [-8388608, 0, 0, 8388608]
    // The fixed point representation of
    [-1, 0, 0, 1]

Last updated