| // Generated from depthwise_conv2d_per_channel.mod.py |
| // DO NOT EDIT |
| // clang-format off |
| #include "TestHarness.h" |
| |
| using namespace test_helper; |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_same() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {0}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({4, 16, 4, 32, 4, 64, 4, 128}), |
| .dimensions = {1, 2, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {0.5f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({2, 4, 2, 0, 2, 2, 2, 0}), |
| .dimensions = {1, 2, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0, 0}), |
| .dimensions = {2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({8, 48}), |
| .dimensions = {1, 1, 1, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }}, |
| .operations = {{ |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, |
| .outputs = {11}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {11} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_same_all_inputs_as_internal() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {12}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({}), |
| .dimensions = {1, 2, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {0.5f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({2, 4, 2, 0, 2, 2, 2, 0}), |
| .dimensions = {1, 2, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0, 0}), |
| .dimensions = {2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({8, 48}), |
| .dimensions = {1, 1, 1, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({4, 16, 4, 32, 4, 64, 4, 128}), |
| .dimensions = {1, 2, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({0}), |
| .dimensions = {1}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }}, |
| .operations = {{ |
| .inputs = {12, 13, 14}, |
| .outputs = {0}, |
| .type = TestOperationType::ADD |
| }, { |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, |
| .outputs = {11}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {11} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_same_all_tensors_as_inputs() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {0, 1, 2}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({4, 16, 4, 32, 4, 64, 4, 128}), |
| .dimensions = {1, 2, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {0.5f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({2, 4, 2, 0, 2, 2, 2, 0}), |
| .dimensions = {1, 2, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0, 0}), |
| .dimensions = {2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({8, 48}), |
| .dimensions = {1, 1, 1, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }}, |
| .operations = {{ |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, |
| .outputs = {11}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {11} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_same_all_tensors_as_inputs_all_inputs_as_internal() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {1, 2, 12}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({}), |
| .dimensions = {1, 2, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {0.5f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({2, 4, 2, 0, 2, 2, 2, 0}), |
| .dimensions = {1, 2, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0, 0}), |
| .dimensions = {2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({8, 48}), |
| .dimensions = {1, 1, 1, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({4, 16, 4, 32, 4, 64, 4, 128}), |
| .dimensions = {1, 2, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({0}), |
| .dimensions = {1}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }}, |
| .operations = {{ |
| .inputs = {12, 13, 14}, |
| .outputs = {0}, |
| .type = TestOperationType::ADD |
| }, { |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, |
| .outputs = {11}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {11} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_different() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {0}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }}, |
| .operations = {{ |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, |
| .outputs = {11}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {11} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_different_all_inputs_as_internal() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {12}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({128}), |
| .dimensions = {1}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }}, |
| .operations = {{ |
| .inputs = {12, 13, 14}, |
| .outputs = {0}, |
| .type = TestOperationType::ADD |
| }, { |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, |
| .outputs = {11}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {11} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_different_all_tensors_as_inputs() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {0, 1, 2}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }}, |
| .operations = {{ |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, |
| .outputs = {11}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {11} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_different_all_tensors_as_inputs_all_inputs_as_internal() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {1, 2, 12}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({128}), |
| .dimensions = {1}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }}, |
| .operations = {{ |
| .inputs = {12, 13, 14}, |
| .outputs = {0}, |
| .type = TestOperationType::ADD |
| }, { |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, |
| .outputs = {11}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {11} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_layout_nhwc() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {0}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<bool8>({false}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::BOOL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }}, |
| .operations = {{ |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, |
| .outputs = {12}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {12} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_layout_nhwc_all_inputs_as_internal() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {13}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<bool8>({false}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::BOOL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({128}), |
| .dimensions = {1}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }}, |
| .operations = {{ |
| .inputs = {13, 14, 15}, |
| .outputs = {0}, |
| .type = TestOperationType::ADD |
| }, { |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, |
| .outputs = {12}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {12} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_layout_nhwc_all_tensors_as_inputs() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {0, 1, 2}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<bool8>({false}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::BOOL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }}, |
| .operations = {{ |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, |
| .outputs = {12}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {12} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_layout_nhwc_all_tensors_as_inputs_all_inputs_as_internal() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {1, 2, 13}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<bool8>({false}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::BOOL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131, 132, 130, 134, 131}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130, 129, 130}), |
| .dimensions = {1, 3, 3, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({128}), |
| .dimensions = {1}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }}, |
| .operations = {{ |
| .inputs = {13, 14, 15}, |
| .outputs = {0}, |
| .type = TestOperationType::ADD |
| }, { |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, |
| .outputs = {12}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {12} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_layout_nchw() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {0}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130}), |
| .dimensions = {1, 2, 3, 3}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<bool8>({true}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::BOOL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 132, 132, 132, 130, 130, 130, 130, 134, 134, 134, 134, 131, 131, 131, 131}), |
| .dimensions = {1, 4, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }}, |
| .operations = {{ |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, |
| .outputs = {12}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {12} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_layout_nchw_all_inputs_as_internal() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {13}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({}), |
| .dimensions = {1, 2, 3, 3}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<bool8>({true}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::BOOL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 132, 132, 132, 130, 130, 130, 130, 134, 134, 134, 134, 131, 131, 131, 131}), |
| .dimensions = {1, 4, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130}), |
| .dimensions = {1, 2, 3, 3}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({128}), |
| .dimensions = {1}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }}, |
| .operations = {{ |
| .inputs = {13, 14, 15}, |
| .outputs = {0}, |
| .type = TestOperationType::ADD |
| }, { |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, |
| .outputs = {12}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {12} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_layout_nchw_all_tensors_as_inputs() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {0, 1, 2}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130}), |
| .dimensions = {1, 2, 3, 3}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<bool8>({true}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::BOOL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 132, 132, 132, 130, 130, 130, 130, 134, 134, 134, 134, 131, 131, 131, 131}), |
| .dimensions = {1, 4, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }}, |
| .operations = {{ |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, |
| .outputs = {12}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {12} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |
| namespace generated_tests::depthwise_conv2d_per_channel { |
| |
| const TestModel& get_test_model_layout_nchw_all_tensors_as_inputs_all_inputs_as_internal() { |
| static TestModel model = { |
| .expectedMultinomialDistributionTolerance = 0, |
| .inputIndexes = {1, 2, 13}, |
| .isRelaxed = false, |
| .operands = {{ |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({}), |
| .dimensions = {1, 2, 3, 3}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::TEMPORARY_VARIABLE, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = { |
| .channelDim = 3, |
| .scales = {1.0f, 0.5f, 1.0f, 0.5f} |
| }, |
| .data = TestBuffer::createFromVector<int8_t>({1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}), |
| .dimensions = {1, 2, 2, 4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({4, 4, 4, 4}), |
| .dimensions = {4}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::TENSOR_INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({1}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({2}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<bool8>({true}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::BOOL, |
| .zeroPoint = 0 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({132, 132, 132, 132, 130, 130, 130, 130, 134, 134, 134, 134, 131, 131, 131, 131}), |
| .dimensions = {1, 4, 2, 2}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_OUTPUT, |
| .numberOfConsumers = 0, |
| .scale = 1.0f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({129, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130}), |
| .dimensions = {1, 2, 3, 3}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::MODEL_INPUT, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<uint8_t>({128}), |
| .dimensions = {1}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.5f, |
| .type = TestOperandType::TENSOR_QUANT8_ASYMM, |
| .zeroPoint = 128 |
| }, { |
| .channelQuant = {}, |
| .data = TestBuffer::createFromVector<int32_t>({0}), |
| .dimensions = {}, |
| .isIgnored = false, |
| .lifetime = TestOperandLifeTime::CONSTANT_COPY, |
| .numberOfConsumers = 1, |
| .scale = 0.0f, |
| .type = TestOperandType::INT32, |
| .zeroPoint = 0 |
| }}, |
| .operations = {{ |
| .inputs = {13, 14, 15}, |
| .outputs = {0}, |
| .type = TestOperationType::ADD |
| }, { |
| .inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, |
| .outputs = {12}, |
| .type = TestOperationType::DEPTHWISE_CONV_2D |
| }}, |
| .outputIndexes = {12} |
| }; |
| return model; |
| } |
| |
| } // namespace generated_tests::depthwise_conv2d_per_channel |
| |