ONNX CastLike operator tests (#14936)

This commit is contained in:
Tomasz Dołbniak 2023-01-05 18:55:42 +01:00 committed by GitHub
parent a38366a707
commit 52f6fdeb52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 828 additions and 0 deletions

View File

@ -0,0 +1,63 @@
ir_version: 8
producer_name: "onnx-importer-test"
graph {
node {
input: "input"
input: "like"
output: "output"
op_type: "CastLike"
}
name: "test-model"
input {
name: "input"
type {
tensor_type {
elem_type: 16
shape {
dim {
dim_value: 3
}
dim {
dim_value: 4
}
}
}
}
}
input {
name: "like"
type {
tensor_type {
elem_type: 1
shape {
dim {
dim_value: 3
}
dim {
dim_value: 4
}
}
}
}
}
output {
name: "output"
type {
tensor_type {
elem_type: 1
shape {
dim {
dim_value: 3
}
dim {
dim_value: 4
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}

View File

@ -0,0 +1,72 @@
ir_version: 8
producer_name: "onnx-importer-test"
graph {
node {
input: "input"
input: "like"
output: "output"
op_type: "CastLike"
}
name: "test-model"
input {
name: "input"
type {
tensor_type {
elem_type: 10
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
input {
name: "like"
type {
tensor_type {
elem_type: 7
shape {
dim {
dim_value: 4
}
}
}
}
}
output {
name: "output"
type {
tensor_type {
elem_type: 7
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}

View File

@ -0,0 +1,72 @@
ir_version: 8
producer_name: "onnx-importer-test"
graph {
node {
input: "input"
input: "like"
output: "output"
op_type: "CastLike"
}
name: "test-model"
input {
name: "input"
type {
tensor_type {
elem_type: 10
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
input {
name: "like"
type {
tensor_type {
elem_type: 12
shape {
dim {
dim_value: 4
}
}
}
}
}
output {
name: "output"
type {
tensor_type {
elem_type: 12
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}

View File

@ -0,0 +1,63 @@
ir_version: 8
producer_name: "onnx-importer-test"
graph {
node {
input: "input"
input: "like"
output: "output"
op_type: "CastLike"
}
name: "test-model"
input {
name: "input"
type {
tensor_type {
elem_type: 1
shape {
dim {
dim_value: 3
}
dim {
dim_value: 4
}
}
}
}
}
input {
name: "like"
type {
tensor_type {
elem_type: 16
shape {
dim {
dim_value: 3
}
dim {
dim_value: 4
}
}
}
}
}
output {
name: "output"
type {
tensor_type {
elem_type: 16
shape {
dim {
dim_value: 3
}
dim {
dim_value: 4
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}

View File

@ -0,0 +1,72 @@
ir_version: 8
producer_name: "onnx-importer-test"
graph {
node {
input: "input"
input: "like"
output: "output"
op_type: "CastLike"
}
name: "test-model"
input {
name: "input"
type {
tensor_type {
elem_type: 1
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
input {
name: "like"
type {
tensor_type {
elem_type: 6
shape {
dim {
dim_value: 4
}
}
}
}
}
output {
name: "output"
type {
tensor_type {
elem_type: 6
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}

View File

@ -0,0 +1,72 @@
ir_version: 8
producer_name: "onnx-importer-test"
graph {
node {
input: "input"
input: "like"
output: "output"
op_type: "CastLike"
}
name: "test-model"
input {
name: "input"
type {
tensor_type {
elem_type: 11
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
input {
name: "like"
type {
tensor_type {
elem_type: 7
shape {
dim {
dim_value: 4
}
}
}
}
}
output {
name: "output"
type {
tensor_type {
elem_type: 7
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}

View File

@ -0,0 +1,72 @@
ir_version: 8
producer_name: "onnx-importer-test"
graph {
node {
input: "input"
input: "like"
output: "output"
op_type: "CastLike"
}
name: "test-model"
input {
name: "input"
type {
tensor_type {
elem_type: 6
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
input {
name: "like"
type {
tensor_type {
elem_type: 1
shape {
dim {
dim_value: 4
}
}
}
}
}
output {
name: "output"
type {
tensor_type {
elem_type: 1
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}

View File

@ -0,0 +1,72 @@
ir_version: 8
producer_name: "onnx-importer-test"
graph {
node {
input: "input"
input: "like"
output: "output"
op_type: "CastLike"
}
name: "test-model"
input {
name: "input"
type {
tensor_type {
elem_type: 3
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
input {
name: "like"
type {
tensor_type {
elem_type: 10
shape {
dim {
dim_value: 4
}
}
}
}
}
output {
name: "output"
type {
tensor_type {
elem_type: 10
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}

View File

@ -0,0 +1,72 @@
ir_version: 8
producer_name: "onnx-importer-test"
graph {
node {
input: "input"
input: "like"
output: "output"
op_type: "CastLike"
}
name: "test-model"
input {
name: "input"
type {
tensor_type {
elem_type: 3
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
input {
name: "like"
type {
tensor_type {
elem_type: 5
shape {
dim {
dim_value: 4
}
}
}
}
}
output {
name: "output"
type {
tensor_type {
elem_type: 5
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}

View File

@ -0,0 +1,72 @@
ir_version: 8
producer_name: "onnx-importer-test"
graph {
node {
input: "input"
input: "like"
output: "output"
op_type: "CastLike"
}
name: "test-model"
input {
name: "input"
type {
tensor_type {
elem_type: 3
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
input {
name: "like"
type {
tensor_type {
elem_type: 4
shape {
dim {
dim_value: 4
}
}
}
}
}
output {
name: "output"
type {
tensor_type {
elem_type: 4
shape {
dim {
dim_value: 1
}
dim {
dim_value: 1
}
dim {
dim_value: 2
}
dim {
dim_value: 2
}
}
}
}
}
}
opset_import {
domain: ""
version: 15
}

View File

@ -6141,3 +6141,129 @@ NGRAPH_TEST(${BACKEND_NAME}, onnx_constant_of_shape_null_node) {
test_case.add_expected_output<int32_t>(Shape{}, {1});
test_case.run();
}
NGRAPH_TEST(${BACKEND_NAME}, castlike_float16_to_uint32) {
auto function = onnx_import::import_onnx_model(file_util::path_join(CommonTestUtils::getExecutableDirectory(),
SERIALIZED_ZOO,
"onnx/castlike_float16_to_uint32.onnx"));
auto test_case = test::TestCase(function, s_device);
test_case.add_input<ngraph::float16>(Shape{1, 1, 2, 2}, std::vector<ngraph::float16>{1.5, 2.3, 3, 4});
test_case.add_input<uint32_t>(Shape{4}, {1, 2, 3, 4});
test_case.add_expected_output<uint32_t>(std::vector<uint32_t>{1, 2, 3, 4});
test_case.run();
}
NGRAPH_TEST(${BACKEND_NAME}, castlike_float16_to_int64) {
auto function = onnx_import::import_onnx_model(file_util::path_join(CommonTestUtils::getExecutableDirectory(),
SERIALIZED_ZOO,
"onnx/castlike_float16_to_int64.onnx"));
auto test_case = test::TestCase(function, s_device);
test_case.add_input<ngraph::float16>(Shape{1, 1, 2, 2}, std::vector<ngraph::float16>{1.5, 2.3, 3, 4});
test_case.add_input<int64_t>(Shape{4}, {1, 2, 3, 4});
test_case.add_expected_output<int64_t>(std::vector<int64_t>{1, 2, 3, 4});
test_case.run();
}
NGRAPH_TEST(${BACKEND_NAME}, DISABLED_castlike_int8_to_uint16) {
auto function = onnx_import::import_onnx_model(file_util::path_join(CommonTestUtils::getExecutableDirectory(),
SERIALIZED_ZOO,
"onnx/castlike_int8_to_uint16.onnx"));
auto test_case = test::TestCase(function, s_device);
test_case.add_input<int8_t>(Shape{1, 1, 2, 2}, std::vector<int8_t>{-1, -2, 3, 4});
test_case.add_input<uint16_t>(Shape{4}, {1, 2, 3, 4});
test_case.add_expected_output<uint16_t>(std::vector<uint16_t>{65535, 65534, 3, 4});
test_case.run();
}
NGRAPH_TEST(${BACKEND_NAME}, castlike_float64_to_int64) {
auto function = onnx_import::import_onnx_model(file_util::path_join(CommonTestUtils::getExecutableDirectory(),
SERIALIZED_ZOO,
"onnx/castlike_float64_to_int64.onnx"));
auto test_case = test::TestCase(function, s_device);
test_case.add_input<double>(Shape{1, 1, 2, 2}, std::vector<double>{1.5, 2.3, 3, 4});
test_case.add_input<int64_t>(Shape{4}, {1, 2, 3, 4});
test_case.add_expected_output<int64_t>(std::vector<int64_t>{1, 2, 3, 4});
test_case.run();
}
NGRAPH_TEST(${BACKEND_NAME}, castlike_int8_to_float16) {
auto function = onnx_import::import_onnx_model(file_util::path_join(CommonTestUtils::getExecutableDirectory(),
SERIALIZED_ZOO,
"onnx/castlike_int8_to_float16.onnx"));
auto test_case = test::TestCase(function, s_device);
test_case.add_input<int8_t>(Shape{1, 1, 2, 2}, std::vector<int8_t>{-127, -2, 3, 4});
test_case.add_input<ngraph::float16>(Shape{4}, {1, 2, 3, 4});
test_case.add_expected_output<ngraph::float16>(std::vector<ngraph::float16>{-127.0, -2.0, 3.0, 4.0});
test_case.run();
}
NGRAPH_TEST(${BACKEND_NAME}, castlike_int32_to_float) {
auto function = onnx_import::import_onnx_model(file_util::path_join(CommonTestUtils::getExecutableDirectory(),
SERIALIZED_ZOO,
"onnx/castlike_int32_to_float64.onnx"));
auto test_case = test::TestCase(function, s_device);
test_case.add_input<int32_t>(Shape{1, 1, 2, 2}, std::vector<int32_t>{-1, 2, 3, 4});
test_case.add_input<float>(Shape{4}, {1, 2, 3, 4});
test_case.add_expected_output<float>(std::vector<float>{-1.0, 2.0, 3.0, 4.0});
test_case.run();
}
NGRAPH_TEST(${BACKEND_NAME}, castlike_float64_to_int32) {
auto function = onnx_import::import_onnx_model(file_util::path_join(CommonTestUtils::getExecutableDirectory(),
SERIALIZED_ZOO,
"onnx/castlike_float64_to_int32.onnx"));
auto test_case = test::TestCase(function, s_device);
test_case.add_input<float>(Shape{1, 1, 2, 2}, std::vector<float>{-107374.9876543, -2.2, 3.3, 4.4});
test_case.add_input<int32_t>(Shape{4}, {1, 2, 3, 4});
test_case.add_expected_output<int32_t>(std::vector<int32_t>{-107374, -2, 3, 4});
test_case.run();
}
NGRAPH_TEST(${BACKEND_NAME}, DISABLED_castlike_float32_to_bfloat16) {
auto function = onnx_import::import_onnx_model(file_util::path_join(CommonTestUtils::getExecutableDirectory(),
SERIALIZED_ZOO,
"onnx/castlike_float32_to_bfloat16.onnx"));
auto test_case = test::TestCase(function, s_device);
test_case.add_input<float>(Shape{3, 4}, std::vector<float>{121.5, 122.7, 3, 4, 5, 6, 7, 8.8, 9, 10, 11, 12});
test_case.add_input<bfloat16>(Shape{3, 4}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12});
test_case.add_expected_output<bfloat16>(std::vector<bfloat16>{121.5, 122.7, 3, 4, 5, 6, 7, 8.8, 9, 10, 11, 12});
test_case.run();
}
NGRAPH_TEST(${BACKEND_NAME}, DISABLED_castlike_bfloat16_to_float32) {
auto function = onnx_import::import_onnx_model(file_util::path_join(CommonTestUtils::getExecutableDirectory(),
SERIALIZED_ZOO,
"onnx/castlike_bfloat16_to_float32.onnx"));
auto test_case = test::TestCase(function, s_device);
test_case.add_input<bfloat16>(Shape{3, 4}, std::vector<bfloat16>{121.5, 122.7, 3, 4, 5, 6, 7, 8.8, 9, 10, 11, 12});
test_case.add_input<float>(Shape{3, 4}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12});
test_case.add_expected_output<float>(std::vector<float>{121.5, 122.7, 3, 4, 5, 6, 7, 8.75, 9, 10, 11, 12});
test_case.run();
}