Home | History | Annotate | Download | only in models
      1 // clang-format off
      2 // Generated file (from: rnn_state_relaxed.mod.py). Do not edit
      3 void CreateModel(Model *model) {
      4   OperandType type0(Type::TENSOR_FLOAT32, {2, 8});
      5   OperandType type1(Type::TENSOR_FLOAT32, {16, 8});
      6   OperandType type2(Type::TENSOR_FLOAT32, {16, 16});
      7   OperandType type3(Type::TENSOR_FLOAT32, {16});
      8   OperandType type4(Type::TENSOR_FLOAT32, {2, 16});
      9   OperandType type5(Type::INT32, {});
     10   // Phase 1, operands
     11   auto input = model->addOperand(&type0);
     12   auto weights = model->addOperand(&type1);
     13   auto recurrent_weights = model->addOperand(&type2);
     14   auto bias = model->addOperand(&type3);
     15   auto hidden_state_in = model->addOperand(&type4);
     16   auto activation_param = model->addOperand(&type5);
     17   auto hidden_state_out = model->addOperand(&type4);
     18   auto output = model->addOperand(&type4);
     19   // Phase 2, operations
     20   static int32_t activation_param_init[] = {1};
     21   model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
     22   model->addOperation(ANEURALNETWORKS_RNN, {input, weights, recurrent_weights, bias, hidden_state_in, activation_param}, {hidden_state_out, output});
     23   // Phase 3, inputs and outputs
     24   model->identifyInputsAndOutputs(
     25     {input, weights, recurrent_weights, bias, hidden_state_in},
     26     {hidden_state_out, output});
     27   // Phase 4: set relaxed execution
     28   model->relaxComputationFloat32toFloat16(true);
     29   assert(model->isValid());
     30 }
     31 
     32 inline bool is_ignored(int i) {
     33   static std::set<int> ignore = {0};
     34   return ignore.find(i) != ignore.end();
     35 }
     36 
     37 void CreateModel_dynamic_output_shape(Model *model) {
     38   OperandType type0(Type::TENSOR_FLOAT32, {2, 8});
     39   OperandType type1(Type::TENSOR_FLOAT32, {16, 8});
     40   OperandType type2(Type::TENSOR_FLOAT32, {16, 16});
     41   OperandType type3(Type::TENSOR_FLOAT32, {16});
     42   OperandType type4(Type::TENSOR_FLOAT32, {2, 16});
     43   OperandType type5(Type::INT32, {});
     44   OperandType type6(Type::TENSOR_FLOAT32, {0, 0});
     45   // Phase 1, operands
     46   auto input = model->addOperand(&type0);
     47   auto weights = model->addOperand(&type1);
     48   auto recurrent_weights = model->addOperand(&type2);
     49   auto bias = model->addOperand(&type3);
     50   auto hidden_state_in = model->addOperand(&type4);
     51   auto activation_param = model->addOperand(&type5);
     52   auto hidden_state_out = model->addOperand(&type6);
     53   auto output = model->addOperand(&type6);
     54   // Phase 2, operations
     55   static int32_t activation_param_init[] = {1};
     56   model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
     57   model->addOperation(ANEURALNETWORKS_RNN, {input, weights, recurrent_weights, bias, hidden_state_in, activation_param}, {hidden_state_out, output});
     58   // Phase 3, inputs and outputs
     59   model->identifyInputsAndOutputs(
     60     {input, weights, recurrent_weights, bias, hidden_state_in},
     61     {hidden_state_out, output});
     62   // Phase 4: set relaxed execution
     63   model->relaxComputationFloat32toFloat16(true);
     64   assert(model->isValid());
     65 }
     66 
     67 inline bool is_ignored_dynamic_output_shape(int i) {
     68   static std::set<int> ignore = {0};
     69   return ignore.find(i) != ignore.end();
     70 }
     71 
     72