// clang-format off // Generated file (from: minimum.mod.py). Do not edit // Create the model Model createTestModel() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_relaxed() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, .relaxComputationFloat32toFloat16 = true, }; } inline bool is_ignored_relaxed(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_float16() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT16, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT16, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT16, .dimensions = {3, 1, 2}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_float16(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_int32() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_INT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_INT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_INT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_int32(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_quant8() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.5f, .zeroPoint = 127, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 1.0f, .zeroPoint = 100, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {3, 1, 2}, .numberOfConsumers = 0, .scale = 2.0f, .zeroPoint = 80, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_quant8(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {0, 0, 0}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_dynamic_output_shape(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape_relaxed() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {0, 0, 0}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, .relaxComputationFloat32toFloat16 = true, }; } inline bool is_ignored_dynamic_output_shape_relaxed(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape_float16() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT16, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT16, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT16, .dimensions = {0, 0, 0}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_dynamic_output_shape_float16(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape_int32() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_INT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_INT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_INT32, .dimensions = {0, 0, 0}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_dynamic_output_shape_int32(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape_quant8() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.5f, .zeroPoint = 127, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 1.0f, .zeroPoint = 100, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {0, 0, 0}, .numberOfConsumers = 0, .scale = 2.0f, .zeroPoint = 80, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_dynamic_output_shape_quant8(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_2() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_2(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_relaxed_2() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, .relaxComputationFloat32toFloat16 = true, }; } inline bool is_ignored_relaxed_2(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_float16_2() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT16, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT16, .dimensions = {2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT16, .dimensions = {3, 1, 2}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_float16_2(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_int32_2() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_INT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_INT32, .dimensions = {2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_INT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_int32_2(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_quant8_2() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.5f, .zeroPoint = 127, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {2}, .numberOfConsumers = 1, .scale = 1.0f, .zeroPoint = 100, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {3, 1, 2}, .numberOfConsumers = 0, .scale = 2.0f, .zeroPoint = 80, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_quant8_2(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape_2() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {0, 0, 0}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_dynamic_output_shape_2(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape_relaxed_2() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT32, .dimensions = {0, 0, 0}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, .relaxComputationFloat32toFloat16 = true, }; } inline bool is_ignored_dynamic_output_shape_relaxed_2(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape_float16_2() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_FLOAT16, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT16, .dimensions = {2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_FLOAT16, .dimensions = {0, 0, 0}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_dynamic_output_shape_float16_2(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape_int32_2() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_INT32, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_INT32, .dimensions = {2}, .numberOfConsumers = 1, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_INT32, .dimensions = {0, 0, 0}, .numberOfConsumers = 0, .scale = 0.0f, .zeroPoint = 0, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_dynamic_output_shape_int32_2(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape_quant8_2() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {3, 1, 2}, .numberOfConsumers = 1, .scale = 0.5f, .zeroPoint = 127, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {2}, .numberOfConsumers = 1, .scale = 1.0f, .zeroPoint = 100, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {0, 0, 0}, .numberOfConsumers = 0, .scale = 2.0f, .zeroPoint = 80, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_dynamic_output_shape_quant8_2(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_3() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {2}, .numberOfConsumers = 1, .scale = 1.0f, .zeroPoint = 128, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {2}, .numberOfConsumers = 1, .scale = 1.0f, .zeroPoint = 128, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {2}, .numberOfConsumers = 0, .scale = 0.5f, .zeroPoint = 128, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_3(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); } // Create the model Model createTestModel_dynamic_output_shape_3() { const std::vector<Operand> operands = { { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {2}, .numberOfConsumers = 1, .scale = 1.0f, .zeroPoint = 128, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {2}, .numberOfConsumers = 1, .scale = 1.0f, .zeroPoint = 128, .lifetime = OperandLifeTime::MODEL_INPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, }, { .type = OperandType::TENSOR_QUANT8_ASYMM, .dimensions = {0}, .numberOfConsumers = 0, .scale = 0.5f, .zeroPoint = 128, .lifetime = OperandLifeTime::MODEL_OUTPUT, .location = {.poolIndex = 0, .offset = 0, .length = 0}, } }; const std::vector<Operation> operations = { { .type = OperationType::MINIMUM, .inputs = {0, 1}, .outputs = {2}, } }; const std::vector<uint32_t> inputIndexes = {0, 1}; const std::vector<uint32_t> outputIndexes = {2}; std::vector<uint8_t> operandValues = {}; const std::vector<hidl_memory> pools = {}; return { .operands = operands, .operations = operations, .inputIndexes = inputIndexes, .outputIndexes = outputIndexes, .operandValues = operandValues, .pools = pools, }; } inline bool is_ignored_dynamic_output_shape_3(int i) { static std::set<int> ignore = {}; return ignore.find(i) != ignore.end(); }