1 // clang-format off 2 // Generated file (from: fully_connected_float.mod.py). Do not edit 3 void CreateModel(Model *model) { 4 OperandType type0(Type::TENSOR_FLOAT32, {3, 1}); 5 OperandType type1(Type::TENSOR_FLOAT32, {1, 1}); 6 OperandType type2(Type::TENSOR_FLOAT32, {1}); 7 OperandType type3(Type::INT32, {}); 8 // Phase 1, operands 9 auto op1 = model->addOperand(&type0); 10 auto op2 = model->addOperand(&type1); 11 auto b0 = model->addOperand(&type2); 12 auto act = model->addOperand(&type3); 13 auto op3 = model->addOperand(&type0); 14 // Phase 2, operations 15 static float op2_init[] = {2.0f}; 16 model->setOperandValue(op2, op2_init, sizeof(float) * 1); 17 static float b0_init[] = {4.0f}; 18 model->setOperandValue(b0, b0_init, sizeof(float) * 1); 19 static int32_t act_init[] = {0}; 20 model->setOperandValue(act, act_init, sizeof(int32_t) * 1); 21 model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3}); 22 // Phase 3, inputs and outputs 23 model->identifyInputsAndOutputs( 24 {op1}, 25 {op3}); 26 assert(model->isValid()); 27 } 28 29 inline bool is_ignored(int i) { 30 static std::set<int> ignore = {}; 31 return ignore.find(i) != ignore.end(); 32 } 33 34 void CreateModel_dynamic_output_shape(Model *model) { 35 OperandType type0(Type::TENSOR_FLOAT32, {3, 1}); 36 OperandType type1(Type::TENSOR_FLOAT32, {1, 1}); 37 OperandType type2(Type::TENSOR_FLOAT32, {1}); 38 OperandType type3(Type::INT32, {}); 39 OperandType type4(Type::TENSOR_FLOAT32, {0, 0}); 40 // Phase 1, operands 41 auto op1 = model->addOperand(&type0); 42 auto op2 = model->addOperand(&type1); 43 auto b0 = model->addOperand(&type2); 44 auto act = model->addOperand(&type3); 45 auto op3 = model->addOperand(&type4); 46 // Phase 2, operations 47 static float op2_init[] = {2.0f}; 48 model->setOperandValue(op2, op2_init, sizeof(float) * 1); 49 static float b0_init[] = {4.0f}; 50 model->setOperandValue(b0, b0_init, sizeof(float) * 1); 51 static int32_t act_init[] = {0}; 52 model->setOperandValue(act, act_init, sizeof(int32_t) * 1); 53 model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3}); 54 // Phase 3, inputs and outputs 55 model->identifyInputsAndOutputs( 56 {op1}, 57 {op3}); 58 assert(model->isValid()); 59 } 60 61 inline bool is_ignored_dynamic_output_shape(int i) { 62 static std::set<int> ignore = {}; 63 return ignore.find(i) != ignore.end(); 64 } 65 66