From db0529bd5aa81cce3b11ef4451ff3b252b1141c6 Mon Sep 17 00:00:00 2001 From: Canance Chan Date: Mon, 11 Mar 2024 02:41:03 +0000 Subject: [PATCH] Feat:EyeLike --- ...9#U00e9cran 2023-06-08 #U00e0 17.59.46.png | Bin 0 -> 85402 bytes ...#U0301cran 2023-06-08 a#U0300 17.59.46.png | Bin 0 -> 85402 bytes docs/framework/operators/tensor/README.md | 1 + .../operators/tensor/tensor.eye_like.md | 44 +++++++++ nodegen/node/eye_like.py | 89 ++++++++++++++++++ src/operators/tensor/core.cairo | 47 +++++++++ .../tensor/implementations/tensor_bool.cairo | 4 + .../implementations/tensor_complex64.cairo | 4 + .../implementations/tensor_fp16x16.cairo | 4 + .../implementations/tensor_fp16x16wide.cairo | 4 + .../implementations/tensor_fp32x32.cairo | 4 + .../implementations/tensor_fp64x64.cairo | 4 + .../implementations/tensor_fp8x23.cairo | 4 + .../implementations/tensor_fp8x23wide.cairo | 4 + .../tensor/implementations/tensor_i32.cairo | 4 + .../tensor/implementations/tensor_i8.cairo | 4 + .../tensor/implementations/tensor_u32.cairo | 4 + src/operators/tensor/math.cairo | 1 + src/operators/tensor/math/eye_like.cairo | 61 ++++++++++++ tests/nodes.cairo | 5 + tests/nodes/eye_like_fp16x16.cairo | 20 ++++ tests/nodes/eye_like_fp16x16/input_0.cairo | 41 ++++++++ tests/nodes/eye_like_fp16x16/output_0.cairo | 41 ++++++++ tests/nodes/eye_like_fp8x23.cairo | 20 ++++ tests/nodes/eye_like_fp8x23/input_0.cairo | 17 ++++ tests/nodes/eye_like_fp8x23/output_0.cairo | 17 ++++ tests/nodes/eye_like_i32.cairo | 20 ++++ tests/nodes/eye_like_i32/input_0.cairo | 53 +++++++++++ tests/nodes/eye_like_i32/output_0.cairo | 53 +++++++++++ tests/nodes/eye_like_i8.cairo | 20 ++++ tests/nodes/eye_like_i8/input_0.cairo | 28 ++++++ tests/nodes/eye_like_i8/output_0.cairo | 28 ++++++ tests/nodes/eye_like_u32.cairo | 20 ++++ tests/nodes/eye_like_u32/input_0.cairo | 15 +++ tests/nodes/eye_like_u32/output_0.cairo | 15 +++ 35 files changed, 700 insertions(+) create mode 100644 docs/.gitbook/assets/Capture d#U2019#U00e9cran 2023-06-08 #U00e0 17.59.46.png create mode 100644 docs/.gitbook/assets/Capture d#U2019e#U0301cran 2023-06-08 a#U0300 17.59.46.png create mode 100644 docs/framework/operators/tensor/tensor.eye_like.md create mode 100644 nodegen/node/eye_like.py create mode 100644 src/operators/tensor/math/eye_like.cairo create mode 100644 tests/nodes/eye_like_fp16x16.cairo create mode 100644 tests/nodes/eye_like_fp16x16/input_0.cairo create mode 100644 tests/nodes/eye_like_fp16x16/output_0.cairo create mode 100644 tests/nodes/eye_like_fp8x23.cairo create mode 100644 tests/nodes/eye_like_fp8x23/input_0.cairo create mode 100644 tests/nodes/eye_like_fp8x23/output_0.cairo create mode 100644 tests/nodes/eye_like_i32.cairo create mode 100644 tests/nodes/eye_like_i32/input_0.cairo create mode 100644 tests/nodes/eye_like_i32/output_0.cairo create mode 100644 tests/nodes/eye_like_i8.cairo create mode 100644 tests/nodes/eye_like_i8/input_0.cairo create mode 100644 tests/nodes/eye_like_i8/output_0.cairo create mode 100644 tests/nodes/eye_like_u32.cairo create mode 100644 tests/nodes/eye_like_u32/input_0.cairo create mode 100644 tests/nodes/eye_like_u32/output_0.cairo diff --git a/docs/.gitbook/assets/Capture d#U2019#U00e9cran 2023-06-08 #U00e0 17.59.46.png b/docs/.gitbook/assets/Capture d#U2019#U00e9cran 2023-06-08 #U00e0 17.59.46.png new file mode 100644 index 0000000000000000000000000000000000000000..713f9f0dfa663fff9a12dd0d07401994ae6f1e97 GIT binary patch literal 85402 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 d9GvCohx$$af?KXTZ0}zmvv4FO#rojT&n;8 literal 0 HcmV?d00001 diff --git a/docs/.gitbook/assets/Capture d#U2019e#U0301cran 2023-06-08 a#U0300 17.59.46.png b/docs/.gitbook/assets/Capture d#U2019e#U0301cran 2023-06-08 a#U0300 17.59.46.png new file mode 100644 index 0000000000000000000000000000000000000000..713f9f0dfa663fff9a12dd0d07401994ae6f1e97 GIT binary patch literal 85402 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 d9GvCohx$$af?KXTZ0}zmvv4FO#rojT&n;8 literal 0 HcmV?d00001 diff --git a/docs/framework/operators/tensor/README.md b/docs/framework/operators/tensor/README.md index fe2995096..c72fcb453 100644 --- a/docs/framework/operators/tensor/README.md +++ b/docs/framework/operators/tensor/README.md @@ -132,6 +132,7 @@ use orion::operators::tensor::TensorTrait; | [`tensor.dynamic_quantize_linear`](tensor.dynamic\_quantize\_linear.md) | Computes the Scale, Zero Point and FP32->8Bit conversion of FP32 Input data. | | [`tensor.scatter_nd`](tensor.scatter\_nd.md) | The output of the operation is produced by creating a copy of the input data, and then updating its value to values specified by updates at specific index positions specified by indices. Its output shape is the same as the shape of data | | [`tensor.label_encoder`](tensor.label\_encoder.md) | Maps each element in the input tensor to another value. | +| [`tensor.eye_like`](tensor.eye\_like.md) | Generate a 2D tensor (matrix) with ones on the diagonal and zeros everywhere else. Only 2D tensors are supported, i.e. input T1 must be of rank 2. The shape of the output tensor is the same as the input tensor. | ## Arithmetic Operations diff --git a/docs/framework/operators/tensor/tensor.eye_like.md b/docs/framework/operators/tensor/tensor.eye_like.md new file mode 100644 index 000000000..6d5ce38e4 --- /dev/null +++ b/docs/framework/operators/tensor/tensor.eye_like.md @@ -0,0 +1,44 @@ +# TensorTrait::eye_like + +```rust + fn eye_like(self: @Tensor, k: Option) -> Tensor; +``` + +Generate a 2D tensor (matrix) with ones on the diagonal and zeros everywhere else. Only 2D tensors are supported, i.e. input T1 must be of rank 2. The shape of the output tensor is the same as the input tensor. By default, the main diagonal is populated with ones, but attribute 'k' can be used to populate upper or lower diagonals. + +## Args + +* `self`(`@Tensor`) - 2D input tensor to copy shape, and optionally, type information from. +* `k`(Option) - (Optional) Index of the diagonal to be populated with ones. Default is 0. If T2 is the output, this op sets T2[i, i+k] = 1. k = 0 populates the main diagonal, k > 0 populates an upper diagonal, and k < 0 populates a lower diagonal. + +## Returns + +* Output tensor, same shape as input tensor. + +## Examples + +```rust +use orion::operators::tensor::{FP8x23Tensor, FP8x23TensorAdd}; +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::utils::{assert_eq, assert_seq_eq}; +use orion::operators::tensor::FP8x23TensorPartialEq; +use orion::numbers::{FixedTrait, FP8x23}; + + +fn example() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(2); + shape.append(2); + + let mut data = ArrayTrait::new(); + data.append(FP8x23 { mag: 16777216, sign: true }); + data.append(FP8x23 { mag: 16777216, sign: false }); + data.append(FP8x23 { mag: 16777216, sign: true }); + data.append(FP8x23 { mag: 16777216, sign: false }); + let tensor1 = TensorTrait::new(shape.span(), data.span()); + + return tensor1.eye_like(Option::Some(0)); +} +>>> [1, 0, 0, 1] +``` diff --git a/nodegen/node/eye_like.py b/nodegen/node/eye_like.py new file mode 100644 index 000000000..4c6b36501 --- /dev/null +++ b/nodegen/node/eye_like.py @@ -0,0 +1,89 @@ +import numpy as np +from nodegen.node import RunAll +from ..helpers import make_test, to_fp, Tensor, Dtype, FixedImpl, Trait, get_data_statement + +def eye_like(data, k=None) -> np.ndarray: # type: ignore + if data is None: + _dtype = np.float32 + else: + _dtype = data.dtype + shape = data.shape + if len(shape) == 1: + sh = (shape[0], shape[0]) + elif len(shape) == 2: + sh = shape + else: + raise RuntimeError(f"EyeLike only accept 1D or 2D tensors not {shape!r}.") + return np.eye(*sh, k=k, dtype=_dtype) # type: ignore + +class Eye_like(RunAll): + + @staticmethod + # We test here with fp8x23 implementation. + def fp8x23(): + x = np.random.randint(-3, 3, (2, 2)).astype(np.float64) + k = 0 + y = eye_like(x, k) + + x = Tensor(Dtype.FP8x23, x.shape, to_fp( + x.flatten(), FixedImpl.FP8x23)) + y = Tensor(Dtype.FP8x23, y.shape, to_fp( + y.flatten(), FixedImpl.FP8x23)) + + name = "eye_like_fp8x23" + make_test([x], y, f"input_0.eye_like(Option::Some({k}))", name) + + @staticmethod + # We test here with fp16x16 implementation. + def fp16x16(): + x = np.random.randint(-3, 3, (4, 7)).astype(np.float64) + k = 3 + y = eye_like(x, k) + + x = Tensor(Dtype.FP16x16, x.shape, to_fp( + x.flatten(), FixedImpl.FP16x16)) + y = Tensor(Dtype.FP16x16, y.shape, to_fp( + y.flatten(), FixedImpl.FP16x16)) + + name = "eye_like_fp16x16" + make_test([x], y, f"input_0.eye_like(Option::Some({k}))", name) + + @staticmethod + # We test here with i8 implementation. + def i8(): + x = np.random.randint(0, 6, (5, 3)).astype(np.int8) + k = -2 + y = eye_like(x, k) + + x = Tensor(Dtype.I8, x.shape, x.flatten()) + y = Tensor(Dtype.I8, y.shape, y.flatten()) + + name = "eye_like_i8" + make_test([x], y, f"input_0.eye_like(Option::Some({k}))", name) + + @staticmethod + # We test here with i32 implementation. + def i32(): + x = np.random.randint(0, 6, (5, 8)).astype(np.int32) + k = 9 + y = eye_like(x, k) + + x = Tensor(Dtype.I32, x.shape, x.flatten()) + y = Tensor(Dtype.I32, y.shape, y.flatten()) + + name = "eye_like_i32" + make_test([x], y, f"input_0.eye_like(Option::Some({k}))", name) + + @staticmethod + # We test here with u32 implementation. + def u32(): + x = np.random.randint(0, 6, (1, 2)).astype(np.uint32) + k = -7 + y = eye_like(x, k) + + x = Tensor(Dtype.U32, x.shape, x.flatten()) + y = Tensor(Dtype.U32, y.shape, y.flatten()) + + name = "eye_like_u32" + make_test([x], y, f"input_0.eye_like(Option::Some({k}))", name) + \ No newline at end of file diff --git a/src/operators/tensor/core.cairo b/src/operators/tensor/core.cairo index 0d21a4de3..92ff13b8b 100644 --- a/src/operators/tensor/core.cairo +++ b/src/operators/tensor/core.cairo @@ -131,6 +131,7 @@ impl TensorSerde, impl TDrop: Drop> of Serde8Bit conversion of FP32 Input data. /// scatter_nd - The output of the operation is produced by creating a copy of the input data, and then updating its value to values specified by updates at specific index positions specified by indices. Its output shape is the same as the shape of data /// label_encoder - Maps each element in the input tensor to another value. +/// eye_like - Generate a 2D tensor (matrix) with ones on the diagonal and zeros everywhere else. Only 2D tensors are supported, i.e. input T1 must be of rank 2. The shape of the output tensor is the same as the input tensor. trait TensorTrait { /// # tensor.new /// @@ -5850,6 +5851,52 @@ trait TensorTrait { values: Option>, values_tensor: Option> ) -> Tensor; + /// # TensorTrait::eye_like + /// + /// ```rust + /// fn eye_like(self: @Tensor, k: Option) -> Tensor; + /// ``` + /// + /// Generate a 2D tensor (matrix) with ones on the diagonal and zeros everywhere else. Only 2D tensors are supported, i.e. input T1 must be of rank 2. The shape of the output tensor is the same as the input tensor. By default, the main diagonal is populated with ones, but attribute 'k' can be used to populate upper or lower diagonals. + /// + /// ## Args + /// + /// * `self`(`@Tensor`) - 2D input tensor to copy shape, and optionally, type information from. + /// * `k`(Option) - (Optional) Index of the diagonal to be populated with ones. Default is 0. If T2 is the output, this op sets T2[i, i+k] = 1. k = 0 populates the main diagonal, k > 0 populates an upper diagonal, and k < 0 populates a lower diagonal. + /// + /// ## Returns + /// + /// * Output tensor, same shape as input tensor. + /// + /// ## Examples + /// + /// ```rust + /// use orion::operators::tensor::{FP8x23Tensor, FP8x23TensorAdd}; + /// use core::array::{ArrayTrait, SpanTrait}; + /// use orion::operators::tensor::{TensorTrait, Tensor}; + /// use orion::utils::{assert_eq, assert_seq_eq}; + /// use orion::operators::tensor::FP8x23TensorPartialEq; + /// use orion::numbers::{FixedTrait, FP8x23}; + /// + /// + /// fn example() -> Tensor { + /// let mut shape = ArrayTrait::::new(); + /// shape.append(2); + /// shape.append(2); + /// + /// let mut data = ArrayTrait::new(); + /// data.append(FP8x23 { mag: 16777216, sign: true }); + /// data.append(FP8x23 { mag: 16777216, sign: false }); + /// data.append(FP8x23 { mag: 16777216, sign: true }); + /// data.append(FP8x23 { mag: 16777216, sign: false }); + /// let tensor1 = TensorTrait::new(shape.span(), data.span()); + /// + /// return tensor1.eye_like(Option::Some(0)); + /// } + /// >>> [1, 0, 0, 1] + /// ``` + /// + fn eye_like(self: @Tensor, k: Option) -> Tensor; } /// Cf: TensorTrait::new docstring diff --git a/src/operators/tensor/implementations/tensor_bool.cairo b/src/operators/tensor/implementations/tensor_bool.cairo index 612a397cc..ed21b6171 100644 --- a/src/operators/tensor/implementations/tensor_bool.cairo +++ b/src/operators/tensor/implementations/tensor_bool.cairo @@ -547,6 +547,10 @@ impl BoolTensor of TensorTrait { ) -> Tensor { panic(array!['not supported!']) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + panic(array!['not supported!']) + } } /// Implements partial equal for two `Tensor` using the `PartialEq` trait. diff --git a/src/operators/tensor/implementations/tensor_complex64.cairo b/src/operators/tensor/implementations/tensor_complex64.cairo index c9c31ae23..d9756c540 100644 --- a/src/operators/tensor/implementations/tensor_complex64.cairo +++ b/src/operators/tensor/implementations/tensor_complex64.cairo @@ -585,6 +585,10 @@ impl Complex64Tensor of TensorTrait { ) -> Tensor { panic(array!['not supported!']) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + panic(array!['not supported!']) + } } /// Implements addition for `Tensor` using the `Add` trait. diff --git a/src/operators/tensor/implementations/tensor_fp16x16.cairo b/src/operators/tensor/implementations/tensor_fp16x16.cairo index a37ed0442..de8768b2d 100644 --- a/src/operators/tensor/implementations/tensor_fp16x16.cairo +++ b/src/operators/tensor/implementations/tensor_fp16x16.cairo @@ -639,6 +639,10 @@ impl FP16x16Tensor of TensorTrait { self, default_list, default_tensor, keys, keys_tensor, values, values_tensor ) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + math::eye_like::eye_like(self, k) + } } /// Implements addition for `Tensor` using the `Add` trait. diff --git a/src/operators/tensor/implementations/tensor_fp16x16wide.cairo b/src/operators/tensor/implementations/tensor_fp16x16wide.cairo index 2003b28ff..03b7786de 100644 --- a/src/operators/tensor/implementations/tensor_fp16x16wide.cairo +++ b/src/operators/tensor/implementations/tensor_fp16x16wide.cairo @@ -599,6 +599,10 @@ impl FP16x16WTensor of TensorTrait { self, default_list, default_tensor, keys, keys_tensor, values, values_tensor ) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + math::eye_like::eye_like(self, k) + } } /// Implements addition for `Tensor` using the `Add` trait. diff --git a/src/operators/tensor/implementations/tensor_fp32x32.cairo b/src/operators/tensor/implementations/tensor_fp32x32.cairo index 4870226a1..b43cc97a1 100644 --- a/src/operators/tensor/implementations/tensor_fp32x32.cairo +++ b/src/operators/tensor/implementations/tensor_fp32x32.cairo @@ -635,6 +635,10 @@ impl FP32x32Tensor of TensorTrait { self, default_list, default_tensor, keys, keys_tensor, values, values_tensor ) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + math::eye_like::eye_like(self, k) + } } /// Implements addition for `Tensor` using the `Add` trait. diff --git a/src/operators/tensor/implementations/tensor_fp64x64.cairo b/src/operators/tensor/implementations/tensor_fp64x64.cairo index 3a7214d18..f76ff2467 100644 --- a/src/operators/tensor/implementations/tensor_fp64x64.cairo +++ b/src/operators/tensor/implementations/tensor_fp64x64.cairo @@ -635,6 +635,10 @@ impl FP64x64Tensor of TensorTrait { self, default_list, default_tensor, keys, keys_tensor, values, values_tensor ) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + math::eye_like::eye_like(self, k) + } } /// Implements addition for `Tensor` using the `Add` trait. diff --git a/src/operators/tensor/implementations/tensor_fp8x23.cairo b/src/operators/tensor/implementations/tensor_fp8x23.cairo index b4a26d749..dc2f2a398 100644 --- a/src/operators/tensor/implementations/tensor_fp8x23.cairo +++ b/src/operators/tensor/implementations/tensor_fp8x23.cairo @@ -633,6 +633,10 @@ impl FP8x23Tensor of TensorTrait { self, default_list, default_tensor, keys, keys_tensor, values, values_tensor ) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + math::eye_like::eye_like(self, k) + } } /// Implements addition for `Tensor` using the `Add` trait. diff --git a/src/operators/tensor/implementations/tensor_fp8x23wide.cairo b/src/operators/tensor/implementations/tensor_fp8x23wide.cairo index 06a297b69..680eb7bb9 100644 --- a/src/operators/tensor/implementations/tensor_fp8x23wide.cairo +++ b/src/operators/tensor/implementations/tensor_fp8x23wide.cairo @@ -576,6 +576,10 @@ impl FP8x23WTensor of TensorTrait { self, default_list, default_tensor, keys, keys_tensor, values, values_tensor ) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + math::eye_like::eye_like(self, k) + } } /// Implements addition for `Tensor` using the `Add` trait. diff --git a/src/operators/tensor/implementations/tensor_i32.cairo b/src/operators/tensor/implementations/tensor_i32.cairo index 296876516..77268e81f 100644 --- a/src/operators/tensor/implementations/tensor_i32.cairo +++ b/src/operators/tensor/implementations/tensor_i32.cairo @@ -599,6 +599,10 @@ impl I32Tensor of TensorTrait { self, default_list, default_tensor, keys, keys_tensor, values, values_tensor ) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + math::eye_like::eye_like(self, k) + } } /// Implements addition for `Tensor` using the `Add` trait. diff --git a/src/operators/tensor/implementations/tensor_i8.cairo b/src/operators/tensor/implementations/tensor_i8.cairo index 42d807c68..5d389b99f 100644 --- a/src/operators/tensor/implementations/tensor_i8.cairo +++ b/src/operators/tensor/implementations/tensor_i8.cairo @@ -602,6 +602,10 @@ impl I8Tensor of TensorTrait { self, default_list, default_tensor, keys, keys_tensor, values, values_tensor ) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + math::eye_like::eye_like(self, k) + } } /// Implements addition for `Tensor` using the `Add` trait. diff --git a/src/operators/tensor/implementations/tensor_u32.cairo b/src/operators/tensor/implementations/tensor_u32.cairo index efb681a86..e714398b6 100644 --- a/src/operators/tensor/implementations/tensor_u32.cairo +++ b/src/operators/tensor/implementations/tensor_u32.cairo @@ -546,6 +546,10 @@ impl U32Tensor of TensorTrait { self, default_list, default_tensor, keys, keys_tensor, values, values_tensor ) } + + fn eye_like(self: @Tensor, k: Option) -> Tensor { + math::eye_like::eye_like(self, k) + } } /// Implements addition for `Tensor` using the `Add` trait. diff --git a/src/operators/tensor/math.cairo b/src/operators/tensor/math.cairo index b73f6d102..3bd31745e 100644 --- a/src/operators/tensor/math.cairo +++ b/src/operators/tensor/math.cairo @@ -68,3 +68,4 @@ mod hann_window; mod hamming_window; mod blackman_window; mod scatter_nd; +mod eye_like; diff --git a/src/operators/tensor/math/eye_like.cairo b/src/operators/tensor/math/eye_like.cairo new file mode 100644 index 000000000..012fd2ce4 --- /dev/null +++ b/src/operators/tensor/math/eye_like.cairo @@ -0,0 +1,61 @@ +use orion::numbers::fixed_point::core::FixedTrait; +use orion::numbers::NumberTrait; +use orion::operators::tensor::core::{Tensor, TensorTrait}; + +fn eye_like< + T, + MAG, + impl TTensor: TensorTrait, + impl TNumber: NumberTrait, + impl TAdd: Add, + impl TSub: Sub, + impl TMul: Mul, + impl TDiv: Div, + impl TTensorAdd: Add>, + impl TPartialOrd: PartialOrd, + impl TAddEq: AddEq, + impl TCopy: Copy, + impl TDrop: Drop, +>( + self: @Tensor, k: Option +) -> Tensor { + assert((*self.shape).len() == 2 || (*self.shape).len() == 1, 'Unexpected shape.'); + let mut shape = *self.shape; + if (*self.shape).len()==1 { + shape = (array![*(*self.shape).at(0), *(*self.shape).at(0)]).span(); + }; + let M = *shape.at(1); + let K = match k { + Option::Some(val) => val, + Option::None => 0, + }; + let len = *(shape.at(0)) * (*(shape.at(1))); + let mut i: usize = 0; + let mut arr: Array = array![]; + while i != len { + arr.append(NumberTrait::zero()); + i += 1; + }; + if (K >= M.try_into().unwrap()) { + return TensorTrait::::new(shape, arr.span()); + }; + let mut j: usize = 0; + if (K < 0){ + j = (-(K)).try_into().unwrap() * M; + } else { + j = K.try_into().unwrap(); + }; + let end: usize = (M.try_into().unwrap() - K).try_into().unwrap() * M; + i = 0; + arr = array![]; + while i != len { + if (i == j && j < end) { + arr.append(NumberTrait::one()); + j += (M + 1); + } else { + arr.append(NumberTrait::zero()); + }; + i += 1; + }; + return TensorTrait::::new(shape, arr.span()); +} \ No newline at end of file diff --git a/tests/nodes.cairo b/tests/nodes.cairo index 29bebb762..8a93dee9a 100644 --- a/tests/nodes.cairo +++ b/tests/nodes.cairo @@ -1047,3 +1047,8 @@ mod label_encoder_fp8x23_default; mod label_encoder_i8_default; mod label_encoder_i32_default; mod label_encoder_u32_default; +mod eye_like_fp8x23; +mod eye_like_fp16x16; +mod eye_like_i32; +mod eye_like_i8; +mod eye_like_u32; diff --git a/tests/nodes/eye_like_fp16x16.cairo b/tests/nodes/eye_like_fp16x16.cairo new file mode 100644 index 000000000..e6308ebdb --- /dev/null +++ b/tests/nodes/eye_like_fp16x16.cairo @@ -0,0 +1,20 @@ +mod input_0; +mod output_0; + + +use orion::utils::{assert_eq, assert_seq_eq}; +use orion::operators::tensor::{FP16x16Tensor, FP16x16TensorAdd}; +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::FP16x16TensorPartialEq; +use orion::operators::tensor::{TensorTrait, Tensor}; + +#[test] +#[available_gas(2000000000)] +fn test_eye_like_fp16x16() { + let input_0 = input_0::input_0(); + let z_0 = output_0::output_0(); + + let y_0 = input_0.eye_like(Option::Some(3)); + + assert_eq(y_0, z_0); +} diff --git a/tests/nodes/eye_like_fp16x16/input_0.cairo b/tests/nodes/eye_like_fp16x16/input_0.cairo new file mode 100644 index 000000000..f836579aa --- /dev/null +++ b/tests/nodes/eye_like_fp16x16/input_0.cairo @@ -0,0 +1,41 @@ +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::{FP16x16Tensor, FP16x16TensorAdd}; +use orion::numbers::{FixedTrait, FP16x16}; + +fn input_0() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(4); + shape.append(7); + + let mut data = ArrayTrait::new(); + data.append(FP16x16 { mag: 196608, sign: true }); + data.append(FP16x16 { mag: 65536, sign: false }); + data.append(FP16x16 { mag: 65536, sign: true }); + data.append(FP16x16 { mag: 131072, sign: false }); + data.append(FP16x16 { mag: 131072, sign: false }); + data.append(FP16x16 { mag: 131072, sign: true }); + data.append(FP16x16 { mag: 131072, sign: false }); + data.append(FP16x16 { mag: 196608, sign: true }); + data.append(FP16x16 { mag: 65536, sign: false }); + data.append(FP16x16 { mag: 65536, sign: false }); + data.append(FP16x16 { mag: 131072, sign: true }); + data.append(FP16x16 { mag: 65536, sign: true }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 65536, sign: true }); + data.append(FP16x16 { mag: 196608, sign: true }); + data.append(FP16x16 { mag: 196608, sign: true }); + data.append(FP16x16 { mag: 196608, sign: true }); + data.append(FP16x16 { mag: 65536, sign: false }); + data.append(FP16x16 { mag: 65536, sign: true }); + data.append(FP16x16 { mag: 196608, sign: true }); + data.append(FP16x16 { mag: 65536, sign: true }); + data.append(FP16x16 { mag: 65536, sign: true }); + data.append(FP16x16 { mag: 131072, sign: true }); + data.append(FP16x16 { mag: 131072, sign: false }); + data.append(FP16x16 { mag: 131072, sign: false }); + data.append(FP16x16 { mag: 196608, sign: true }); + data.append(FP16x16 { mag: 131072, sign: true }); + data.append(FP16x16 { mag: 65536, sign: true }); + TensorTrait::new(shape.span(), data.span()) +} diff --git a/tests/nodes/eye_like_fp16x16/output_0.cairo b/tests/nodes/eye_like_fp16x16/output_0.cairo new file mode 100644 index 000000000..0c7816343 --- /dev/null +++ b/tests/nodes/eye_like_fp16x16/output_0.cairo @@ -0,0 +1,41 @@ +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::{FP16x16Tensor, FP16x16TensorAdd}; +use orion::numbers::{FixedTrait, FP16x16}; + +fn output_0() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(4); + shape.append(7); + + let mut data = ArrayTrait::new(); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 65536, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 65536, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 65536, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 0, sign: false }); + data.append(FP16x16 { mag: 65536, sign: false }); + TensorTrait::new(shape.span(), data.span()) +} diff --git a/tests/nodes/eye_like_fp8x23.cairo b/tests/nodes/eye_like_fp8x23.cairo new file mode 100644 index 000000000..5b27f9c19 --- /dev/null +++ b/tests/nodes/eye_like_fp8x23.cairo @@ -0,0 +1,20 @@ +mod input_0; +mod output_0; + + +use orion::utils::{assert_eq, assert_seq_eq}; +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::FP8x23TensorPartialEq; +use orion::operators::tensor::{FP8x23Tensor, FP8x23TensorAdd}; +use orion::operators::tensor::{TensorTrait, Tensor}; + +#[test] +#[available_gas(2000000000)] +fn test_eye_like_fp8x23() { + let input_0 = input_0::input_0(); + let z_0 = output_0::output_0(); + + let y_0 = input_0.eye_like(Option::Some(0)); + + assert_eq(y_0, z_0); +} diff --git a/tests/nodes/eye_like_fp8x23/input_0.cairo b/tests/nodes/eye_like_fp8x23/input_0.cairo new file mode 100644 index 000000000..f6d72b464 --- /dev/null +++ b/tests/nodes/eye_like_fp8x23/input_0.cairo @@ -0,0 +1,17 @@ +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::{FP8x23Tensor, FP8x23TensorAdd}; +use orion::numbers::{FixedTrait, FP8x23}; + +fn input_0() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(2); + shape.append(2); + + let mut data = ArrayTrait::new(); + data.append(FP8x23 { mag: 16777216, sign: true }); + data.append(FP8x23 { mag: 8388608, sign: true }); + data.append(FP8x23 { mag: 8388608, sign: true }); + data.append(FP8x23 { mag: 25165824, sign: true }); + TensorTrait::new(shape.span(), data.span()) +} diff --git a/tests/nodes/eye_like_fp8x23/output_0.cairo b/tests/nodes/eye_like_fp8x23/output_0.cairo new file mode 100644 index 000000000..b34779fa2 --- /dev/null +++ b/tests/nodes/eye_like_fp8x23/output_0.cairo @@ -0,0 +1,17 @@ +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::{FP8x23Tensor, FP8x23TensorAdd}; +use orion::numbers::{FixedTrait, FP8x23}; + +fn output_0() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(2); + shape.append(2); + + let mut data = ArrayTrait::new(); + data.append(FP8x23 { mag: 8388608, sign: false }); + data.append(FP8x23 { mag: 0, sign: false }); + data.append(FP8x23 { mag: 0, sign: false }); + data.append(FP8x23 { mag: 8388608, sign: false }); + TensorTrait::new(shape.span(), data.span()) +} diff --git a/tests/nodes/eye_like_i32.cairo b/tests/nodes/eye_like_i32.cairo new file mode 100644 index 000000000..dc9b9e4db --- /dev/null +++ b/tests/nodes/eye_like_i32.cairo @@ -0,0 +1,20 @@ +mod input_0; +mod output_0; + + +use orion::operators::tensor::{TensorTrait, Tensor}; +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{I32Tensor, I32TensorAdd}; +use orion::utils::{assert_eq, assert_seq_eq}; +use orion::operators::tensor::I32TensorPartialEq; + +#[test] +#[available_gas(2000000000)] +fn test_eye_like_i32() { + let input_0 = input_0::input_0(); + let z_0 = output_0::output_0(); + + let y_0 = input_0.eye_like(Option::Some(9)); + + assert_eq(y_0, z_0); +} diff --git a/tests/nodes/eye_like_i32/input_0.cairo b/tests/nodes/eye_like_i32/input_0.cairo new file mode 100644 index 000000000..52dcd9d16 --- /dev/null +++ b/tests/nodes/eye_like_i32/input_0.cairo @@ -0,0 +1,53 @@ +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::{I32Tensor, I32TensorAdd}; +use orion::numbers::NumberTrait; + +fn input_0() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(5); + shape.append(8); + + let mut data = ArrayTrait::new(); + data.append(0); + data.append(0); + data.append(4); + data.append(4); + data.append(4); + data.append(3); + data.append(0); + data.append(1); + data.append(5); + data.append(0); + data.append(5); + data.append(3); + data.append(4); + data.append(5); + data.append(4); + data.append(0); + data.append(1); + data.append(5); + data.append(4); + data.append(3); + data.append(3); + data.append(0); + data.append(2); + data.append(1); + data.append(2); + data.append(1); + data.append(0); + data.append(2); + data.append(1); + data.append(0); + data.append(2); + data.append(5); + data.append(5); + data.append(4); + data.append(3); + data.append(5); + data.append(4); + data.append(4); + data.append(1); + data.append(3); + TensorTrait::new(shape.span(), data.span()) +} diff --git a/tests/nodes/eye_like_i32/output_0.cairo b/tests/nodes/eye_like_i32/output_0.cairo new file mode 100644 index 000000000..df6b89e08 --- /dev/null +++ b/tests/nodes/eye_like_i32/output_0.cairo @@ -0,0 +1,53 @@ +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::{I32Tensor, I32TensorAdd}; +use orion::numbers::NumberTrait; + +fn output_0() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(5); + shape.append(8); + + let mut data = ArrayTrait::new(); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + TensorTrait::new(shape.span(), data.span()) +} diff --git a/tests/nodes/eye_like_i8.cairo b/tests/nodes/eye_like_i8.cairo new file mode 100644 index 000000000..e6077dc0d --- /dev/null +++ b/tests/nodes/eye_like_i8.cairo @@ -0,0 +1,20 @@ +mod input_0; +mod output_0; + + +use orion::utils::{assert_eq, assert_seq_eq}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::I8TensorPartialEq; +use orion::operators::tensor::{I8Tensor, I8TensorAdd}; + +#[test] +#[available_gas(2000000000)] +fn test_eye_like_i8() { + let input_0 = input_0::input_0(); + let z_0 = output_0::output_0(); + + let y_0 = input_0.eye_like(Option::Some(-2)); + + assert_eq(y_0, z_0); +} diff --git a/tests/nodes/eye_like_i8/input_0.cairo b/tests/nodes/eye_like_i8/input_0.cairo new file mode 100644 index 000000000..b3a862444 --- /dev/null +++ b/tests/nodes/eye_like_i8/input_0.cairo @@ -0,0 +1,28 @@ +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::{I8Tensor, I8TensorAdd}; +use orion::numbers::NumberTrait; + +fn input_0() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(5); + shape.append(3); + + let mut data = ArrayTrait::new(); + data.append(2); + data.append(4); + data.append(5); + data.append(5); + data.append(1); + data.append(1); + data.append(4); + data.append(1); + data.append(5); + data.append(0); + data.append(2); + data.append(4); + data.append(0); + data.append(0); + data.append(4); + TensorTrait::new(shape.span(), data.span()) +} diff --git a/tests/nodes/eye_like_i8/output_0.cairo b/tests/nodes/eye_like_i8/output_0.cairo new file mode 100644 index 000000000..2da514c89 --- /dev/null +++ b/tests/nodes/eye_like_i8/output_0.cairo @@ -0,0 +1,28 @@ +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::{I8Tensor, I8TensorAdd}; +use orion::numbers::NumberTrait; + +fn output_0() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(5); + shape.append(3); + + let mut data = ArrayTrait::new(); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(0); + data.append(1); + data.append(0); + data.append(0); + data.append(0); + data.append(1); + data.append(0); + data.append(0); + data.append(0); + data.append(1); + TensorTrait::new(shape.span(), data.span()) +} diff --git a/tests/nodes/eye_like_u32.cairo b/tests/nodes/eye_like_u32.cairo new file mode 100644 index 000000000..a45b0f4e1 --- /dev/null +++ b/tests/nodes/eye_like_u32.cairo @@ -0,0 +1,20 @@ +mod input_0; +mod output_0; + + +use orion::utils::{assert_eq, assert_seq_eq}; +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{U32Tensor, U32TensorAdd}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::U32TensorPartialEq; + +#[test] +#[available_gas(2000000000)] +fn test_eye_like_u32() { + let input_0 = input_0::input_0(); + let z_0 = output_0::output_0(); + + let y_0 = input_0.eye_like(Option::Some(-7)); + + assert_eq(y_0, z_0); +} diff --git a/tests/nodes/eye_like_u32/input_0.cairo b/tests/nodes/eye_like_u32/input_0.cairo new file mode 100644 index 000000000..de9e68f35 --- /dev/null +++ b/tests/nodes/eye_like_u32/input_0.cairo @@ -0,0 +1,15 @@ +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::{U32Tensor, U32TensorAdd}; +use orion::numbers::NumberTrait; + +fn input_0() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(1); + shape.append(2); + + let mut data = ArrayTrait::new(); + data.append(2); + data.append(2); + TensorTrait::new(shape.span(), data.span()) +} diff --git a/tests/nodes/eye_like_u32/output_0.cairo b/tests/nodes/eye_like_u32/output_0.cairo new file mode 100644 index 000000000..dc8ee52be --- /dev/null +++ b/tests/nodes/eye_like_u32/output_0.cairo @@ -0,0 +1,15 @@ +use core::array::{ArrayTrait, SpanTrait}; +use orion::operators::tensor::{TensorTrait, Tensor}; +use orion::operators::tensor::{U32Tensor, U32TensorAdd}; +use orion::numbers::NumberTrait; + +fn output_0() -> Tensor { + let mut shape = ArrayTrait::::new(); + shape.append(1); + shape.append(2); + + let mut data = ArrayTrait::new(); + data.append(0); + data.append(0); + TensorTrait::new(shape.span(), data.span()) +}