Ask or search…


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]