1 // clang-format off 2 // Generated file (from: random_multinomial_float16.mod.py). Do not edit 3 void CreateModel(Model *model) { 4 OperandType type0(Type::TENSOR_FLOAT16, {1, 1024}); 5 OperandType type1(Type::INT32, {}); 6 OperandType type2(Type::TENSOR_INT32, {2}); 7 OperandType type3(Type::TENSOR_INT32, {1, 128}); 8 // Phase 1, operands 9 auto input0 = model->addOperand(&type0); 10 auto sample_count = model->addOperand(&type1); 11 auto seeds = model->addOperand(&type2); 12 auto output = model->addOperand(&type3); 13 // Phase 2, operations 14 static int32_t sample_count_init[] = {128}; 15 model->setOperandValue(sample_count, sample_count_init, sizeof(int32_t) * 1); 16 static int32_t seeds_init[] = {37, 42}; 17 model->setOperandValue(seeds, seeds_init, sizeof(int32_t) * 2); 18 model->addOperation(ANEURALNETWORKS_RANDOM_MULTINOMIAL, {input0, sample_count, seeds}, {output}); 19 // Phase 3, inputs and outputs 20 model->identifyInputsAndOutputs( 21 {input0}, 22 {output}); 23 assert(model->isValid()); 24 } 25 26 inline bool is_ignored(int i) { 27 static std::set<int> ignore = {0}; 28 return ignore.find(i) != ignore.end(); 29 } 30 31 void CreateModel_dynamic_output_shape(Model *model) { 32 OperandType type0(Type::TENSOR_FLOAT16, {1, 1024}); 33 OperandType type1(Type::INT32, {}); 34 OperandType type2(Type::TENSOR_INT32, {2}); 35 OperandType type4(Type::TENSOR_INT32, {0, 0}); 36 // Phase 1, operands 37 auto input0 = model->addOperand(&type0); 38 auto sample_count = model->addOperand(&type1); 39 auto seeds = model->addOperand(&type2); 40 auto output = model->addOperand(&type4); 41 // Phase 2, operations 42 static int32_t sample_count_init[] = {128}; 43 model->setOperandValue(sample_count, sample_count_init, sizeof(int32_t) * 1); 44 static int32_t seeds_init[] = {37, 42}; 45 model->setOperandValue(seeds, seeds_init, sizeof(int32_t) * 2); 46 model->addOperation(ANEURALNETWORKS_RANDOM_MULTINOMIAL, {input0, sample_count, seeds}, {output}); 47 // Phase 3, inputs and outputs 48 model->identifyInputsAndOutputs( 49 {input0}, 50 {output}); 51 assert(model->isValid()); 52 } 53 54 inline bool is_ignored_dynamic_output_shape(int i) { 55 static std::set<int> ignore = {0}; 56 return ignore.find(i) != ignore.end(); 57 } 58 59