1e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang// Generated file (from: lsh_projection_2_relaxed.mod.py). Do not edit 2e8e5d34c4159532eb324df393c2c752a508bced1Miao Wangvoid CreateModel(Model *model) { 3e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang OperandType type3(Type::INT32, {}); 4e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang OperandType type2(Type::TENSOR_FLOAT32, {3}); 5e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang OperandType type0(Type::TENSOR_FLOAT32, {4, 2}); 6e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang OperandType type1(Type::TENSOR_INT32, {3, 2}); 7e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang OperandType type4(Type::TENSOR_INT32, {4}); 8e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang // Phase 1, operands 9e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang auto hash = model->addOperand(&type0); 10e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang auto lookup = model->addOperand(&type1); 11e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang auto weight = model->addOperand(&type2); 12e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang auto type_param = model->addOperand(&type3); 13e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang auto output = model->addOperand(&type4); 14e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang // Phase 2, operations 15e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang static float hash_init[] = {0.123f, 0.456f, -0.321f, -0.654f, 1.234f, 5.678f, -4.321f, -8.765f}; 16e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang model->setOperandValue(hash, hash_init, sizeof(float) * 8); 17e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang static int32_t type_param_init[] = {1}; 18e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang model->setOperandValue(type_param, type_param_init, sizeof(int32_t) * 1); 19e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang model->addOperation(ANEURALNETWORKS_LSH_PROJECTION, {hash, lookup, weight, type_param}, {output}); 20e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang // Phase 3, inputs and outputs 21e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang model->identifyInputsAndOutputs( 22e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang {lookup, weight}, 23e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang {output}); 24e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang // Phase 4: set relaxed execution 25e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang model->relaxComputationFloat32toFloat16(true); 26e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang assert(model->isValid()); 27e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang} 28e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang 29e8e5d34c4159532eb324df393c2c752a508bced1Miao Wangbool is_ignored(int i) { 30e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang static std::set<int> ignore = {}; 31e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang return ignore.find(i) != ignore.end(); 32e8e5d34c4159532eb324df393c2c752a508bced1Miao Wang} 33