• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // clang-format off
2 // Generated file (from: bidirectional_sequence_lstm_norm_fw_output.mod.py). Do not edit
CreateModel(Model * model)3 void CreateModel(Model *model) {
4   OperandType type0(Type::TENSOR_FLOAT32, {3, 2, 5});
5   OperandType type1(Type::TENSOR_FLOAT32, {4, 5});
6   OperandType type10(Type::FLOAT32, {});
7   OperandType type11(Type::BOOL, {});
8   OperandType type2(Type::TENSOR_FLOAT32, {4, 3});
9   OperandType type3(Type::TENSOR_FLOAT32, {4});
10   OperandType type4(Type::TENSOR_FLOAT32, {3, 4});
11   OperandType type5(Type::TENSOR_FLOAT32, {3});
12   OperandType type6(Type::TENSOR_FLOAT32, {2, 3});
13   OperandType type7(Type::TENSOR_FLOAT32, {2, 4});
14   OperandType type8(Type::TENSOR_FLOAT32, {3, 2, 3});
15   OperandType type9(Type::INT32, {});
16   // Phase 1, operands
17   auto input = model->addOperand(&type0);
18   auto fw_input_to_input_weights = model->addOperand(&type1);
19   auto fw_input_to_forget_weights = model->addOperand(&type1);
20   auto fw_input_to_cell_weights = model->addOperand(&type1);
21   auto fw_input_to_output_weights = model->addOperand(&type1);
22   auto fw_recurrent_to_input_weights = model->addOperand(&type2);
23   auto fw_recurrent_to_forget_weights = model->addOperand(&type2);
24   auto fw_recurrent_to_cell_weights = model->addOperand(&type2);
25   auto fw_recurrent_to_output_weights = model->addOperand(&type2);
26   auto fw_cell_to_input_weights = model->addOperand(&type3);
27   auto fw_cell_to_forget_weights = model->addOperand(&type3);
28   auto fw_cell_to_output_weights = model->addOperand(&type3);
29   auto fw_input_gate_bias = model->addOperand(&type3);
30   auto fw_forget_gate_bias = model->addOperand(&type3);
31   auto fw_cell_bias = model->addOperand(&type3);
32   auto fw_output_gate_bias = model->addOperand(&type3);
33   auto fw_projection_weights = model->addOperand(&type4);
34   auto fw_projection_bias = model->addOperand(&type5);
35   auto bw_input_to_input_weights = model->addOperand(&type1);
36   auto bw_input_to_forget_weights = model->addOperand(&type1);
37   auto bw_input_to_cell_weights = model->addOperand(&type1);
38   auto bw_input_to_output_weights = model->addOperand(&type1);
39   auto bw_recurrent_to_input_weights = model->addOperand(&type2);
40   auto bw_recurrent_to_forget_weights = model->addOperand(&type2);
41   auto bw_recurrent_to_cell_weights = model->addOperand(&type2);
42   auto bw_recurrent_to_output_weights = model->addOperand(&type2);
43   auto bw_cell_to_input_weights = model->addOperand(&type3);
44   auto bw_cell_to_forget_weights = model->addOperand(&type3);
45   auto bw_cell_to_output_weights = model->addOperand(&type3);
46   auto bw_input_gate_bias = model->addOperand(&type3);
47   auto bw_forget_gate_bias = model->addOperand(&type3);
48   auto bw_cell_bias = model->addOperand(&type3);
49   auto bw_output_gate_bias = model->addOperand(&type3);
50   auto bw_projection_weights = model->addOperand(&type4);
51   auto bw_projection_bias = model->addOperand(&type5);
52   auto fw_activatiom_state = model->addOperand(&type6);
53   auto fw_cell_state = model->addOperand(&type7);
54   auto bw_activatiom_state = model->addOperand(&type6);
55   auto bw_cell_state = model->addOperand(&type7);
56   auto input1 = model->addOperand(&type0);
57   auto fw_aux_input_to_input_weights = model->addOperand(&type1);
58   auto fw_input_to_forget_weights1 = model->addOperand(&type1);
59   auto fw_aux_input_to_cell_weights = model->addOperand(&type1);
60   auto fw_aux_input_to_output_weights = model->addOperand(&type1);
61   auto bw_aux_input_to_input_weights = model->addOperand(&type1);
62   auto bw_input_to_forget_weights1 = model->addOperand(&type1);
63   auto bw_aux_input_to_cell_weights = model->addOperand(&type1);
64   auto bw_aux_input_to_output_weights = model->addOperand(&type1);
65   auto activation = model->addOperand(&type9);
66   auto cell_clip = model->addOperand(&type10);
67   auto proj_clip = model->addOperand(&type10);
68   auto merge_outputs = model->addOperand(&type11);
69   auto time_major = model->addOperand(&type11);
70   auto input_layer_norm_weights = model->addOperand(&type3);
71   auto forget_layer_norm_weights = model->addOperand(&type3);
72   auto cell_layer_norm_weights = model->addOperand(&type3);
73   auto output_layer_norm_weights = model->addOperand(&type3);
74   auto input_layer_norm_weights1 = model->addOperand(&type3);
75   auto forget_layer_norm_weights1 = model->addOperand(&type3);
76   auto cell_layer_norm_weights1 = model->addOperand(&type3);
77   auto output_layer_norm_weights1 = model->addOperand(&type3);
78   auto fw_output = model->addOperand(&type8);
79   auto bw_output = model->addOperand(&type8);
80   // Phase 2, operations
81   static int32_t activation_init[] = {4};
82   model->setOperandValue(activation, activation_init, sizeof(int32_t) * 1);
83   static float cell_clip_init[] = {0.0f};
84   model->setOperandValue(cell_clip, cell_clip_init, sizeof(float) * 1);
85   static float proj_clip_init[] = {0.0f};
86   model->setOperandValue(proj_clip, proj_clip_init, sizeof(float) * 1);
87   static bool8 merge_outputs_init[] = {false};
88   model->setOperandValue(merge_outputs, merge_outputs_init, sizeof(bool8) * 1);
89   static bool8 time_major_init[] = {true};
90   model->setOperandValue(time_major, time_major_init, sizeof(bool8) * 1);
91   model->addOperation(ANEURALNETWORKS_BIDIRECTIONAL_SEQUENCE_LSTM, {input, fw_input_to_input_weights, fw_input_to_forget_weights, fw_input_to_cell_weights, fw_input_to_output_weights, fw_recurrent_to_input_weights, fw_recurrent_to_forget_weights, fw_recurrent_to_cell_weights, fw_recurrent_to_output_weights, fw_cell_to_input_weights, fw_cell_to_forget_weights, fw_cell_to_output_weights, fw_input_gate_bias, fw_forget_gate_bias, fw_cell_bias, fw_output_gate_bias, fw_projection_weights, fw_projection_bias, bw_input_to_input_weights, bw_input_to_forget_weights, bw_input_to_cell_weights, bw_input_to_output_weights, bw_recurrent_to_input_weights, bw_recurrent_to_forget_weights, bw_recurrent_to_cell_weights, bw_recurrent_to_output_weights, bw_cell_to_input_weights, bw_cell_to_forget_weights, bw_cell_to_output_weights, bw_input_gate_bias, bw_forget_gate_bias, bw_cell_bias, bw_output_gate_bias, bw_projection_weights, bw_projection_bias, fw_activatiom_state, fw_cell_state, bw_activatiom_state, bw_cell_state, input1, fw_aux_input_to_input_weights, fw_input_to_forget_weights1, fw_aux_input_to_cell_weights, fw_aux_input_to_output_weights, bw_aux_input_to_input_weights, bw_input_to_forget_weights1, bw_aux_input_to_cell_weights, bw_aux_input_to_output_weights, activation, cell_clip, proj_clip, merge_outputs, time_major, input_layer_norm_weights, forget_layer_norm_weights, cell_layer_norm_weights, output_layer_norm_weights, input_layer_norm_weights1, forget_layer_norm_weights1, cell_layer_norm_weights1, output_layer_norm_weights1}, {fw_output, bw_output});
92   // Phase 3, inputs and outputs
93   model->identifyInputsAndOutputs(
94     {input, fw_input_to_input_weights, fw_input_to_forget_weights, fw_input_to_cell_weights, fw_input_to_output_weights, fw_recurrent_to_input_weights, fw_recurrent_to_forget_weights, fw_recurrent_to_cell_weights, fw_recurrent_to_output_weights, fw_cell_to_input_weights, fw_cell_to_forget_weights, fw_cell_to_output_weights, fw_input_gate_bias, fw_forget_gate_bias, fw_cell_bias, fw_output_gate_bias, fw_projection_weights, fw_projection_bias, bw_input_to_input_weights, bw_input_to_forget_weights, bw_input_to_cell_weights, bw_input_to_output_weights, bw_recurrent_to_input_weights, bw_recurrent_to_forget_weights, bw_recurrent_to_cell_weights, bw_recurrent_to_output_weights, bw_cell_to_input_weights, bw_cell_to_forget_weights, bw_cell_to_output_weights, bw_input_gate_bias, bw_forget_gate_bias, bw_cell_bias, bw_output_gate_bias, bw_projection_weights, bw_projection_bias, fw_activatiom_state, fw_cell_state, bw_activatiom_state, bw_cell_state, input1, fw_aux_input_to_input_weights, fw_input_to_forget_weights1, fw_aux_input_to_cell_weights, fw_aux_input_to_output_weights, bw_aux_input_to_input_weights, bw_input_to_forget_weights1, bw_aux_input_to_cell_weights, bw_aux_input_to_output_weights, input_layer_norm_weights, forget_layer_norm_weights, cell_layer_norm_weights, output_layer_norm_weights, input_layer_norm_weights1, forget_layer_norm_weights1, cell_layer_norm_weights1, output_layer_norm_weights1},
95     {fw_output, bw_output});
96   assert(model->isValid());
97 }
98 
is_ignored(int i)99 inline bool is_ignored(int i) {
100   static std::set<int> ignore = {1};
101   return ignore.find(i) != ignore.end();
102 }
103 
CreateModel_dynamic_output_shape(Model * model)104 void CreateModel_dynamic_output_shape(Model *model) {
105   OperandType type0(Type::TENSOR_FLOAT32, {3, 2, 5});
106   OperandType type1(Type::TENSOR_FLOAT32, {4, 5});
107   OperandType type10(Type::FLOAT32, {});
108   OperandType type11(Type::BOOL, {});
109   OperandType type12(Type::TENSOR_FLOAT32, {0, 0, 0});
110   OperandType type2(Type::TENSOR_FLOAT32, {4, 3});
111   OperandType type3(Type::TENSOR_FLOAT32, {4});
112   OperandType type4(Type::TENSOR_FLOAT32, {3, 4});
113   OperandType type5(Type::TENSOR_FLOAT32, {3});
114   OperandType type6(Type::TENSOR_FLOAT32, {2, 3});
115   OperandType type7(Type::TENSOR_FLOAT32, {2, 4});
116   OperandType type9(Type::INT32, {});
117   // Phase 1, operands
118   auto input = model->addOperand(&type0);
119   auto fw_input_to_input_weights = model->addOperand(&type1);
120   auto fw_input_to_forget_weights = model->addOperand(&type1);
121   auto fw_input_to_cell_weights = model->addOperand(&type1);
122   auto fw_input_to_output_weights = model->addOperand(&type1);
123   auto fw_recurrent_to_input_weights = model->addOperand(&type2);
124   auto fw_recurrent_to_forget_weights = model->addOperand(&type2);
125   auto fw_recurrent_to_cell_weights = model->addOperand(&type2);
126   auto fw_recurrent_to_output_weights = model->addOperand(&type2);
127   auto fw_cell_to_input_weights = model->addOperand(&type3);
128   auto fw_cell_to_forget_weights = model->addOperand(&type3);
129   auto fw_cell_to_output_weights = model->addOperand(&type3);
130   auto fw_input_gate_bias = model->addOperand(&type3);
131   auto fw_forget_gate_bias = model->addOperand(&type3);
132   auto fw_cell_bias = model->addOperand(&type3);
133   auto fw_output_gate_bias = model->addOperand(&type3);
134   auto fw_projection_weights = model->addOperand(&type4);
135   auto fw_projection_bias = model->addOperand(&type5);
136   auto bw_input_to_input_weights = model->addOperand(&type1);
137   auto bw_input_to_forget_weights = model->addOperand(&type1);
138   auto bw_input_to_cell_weights = model->addOperand(&type1);
139   auto bw_input_to_output_weights = model->addOperand(&type1);
140   auto bw_recurrent_to_input_weights = model->addOperand(&type2);
141   auto bw_recurrent_to_forget_weights = model->addOperand(&type2);
142   auto bw_recurrent_to_cell_weights = model->addOperand(&type2);
143   auto bw_recurrent_to_output_weights = model->addOperand(&type2);
144   auto bw_cell_to_input_weights = model->addOperand(&type3);
145   auto bw_cell_to_forget_weights = model->addOperand(&type3);
146   auto bw_cell_to_output_weights = model->addOperand(&type3);
147   auto bw_input_gate_bias = model->addOperand(&type3);
148   auto bw_forget_gate_bias = model->addOperand(&type3);
149   auto bw_cell_bias = model->addOperand(&type3);
150   auto bw_output_gate_bias = model->addOperand(&type3);
151   auto bw_projection_weights = model->addOperand(&type4);
152   auto bw_projection_bias = model->addOperand(&type5);
153   auto fw_activatiom_state = model->addOperand(&type6);
154   auto fw_cell_state = model->addOperand(&type7);
155   auto bw_activatiom_state = model->addOperand(&type6);
156   auto bw_cell_state = model->addOperand(&type7);
157   auto input1 = model->addOperand(&type0);
158   auto fw_aux_input_to_input_weights = model->addOperand(&type1);
159   auto fw_input_to_forget_weights1 = model->addOperand(&type1);
160   auto fw_aux_input_to_cell_weights = model->addOperand(&type1);
161   auto fw_aux_input_to_output_weights = model->addOperand(&type1);
162   auto bw_aux_input_to_input_weights = model->addOperand(&type1);
163   auto bw_input_to_forget_weights1 = model->addOperand(&type1);
164   auto bw_aux_input_to_cell_weights = model->addOperand(&type1);
165   auto bw_aux_input_to_output_weights = model->addOperand(&type1);
166   auto activation = model->addOperand(&type9);
167   auto cell_clip = model->addOperand(&type10);
168   auto proj_clip = model->addOperand(&type10);
169   auto merge_outputs = model->addOperand(&type11);
170   auto time_major = model->addOperand(&type11);
171   auto input_layer_norm_weights = model->addOperand(&type3);
172   auto forget_layer_norm_weights = model->addOperand(&type3);
173   auto cell_layer_norm_weights = model->addOperand(&type3);
174   auto output_layer_norm_weights = model->addOperand(&type3);
175   auto input_layer_norm_weights1 = model->addOperand(&type3);
176   auto forget_layer_norm_weights1 = model->addOperand(&type3);
177   auto cell_layer_norm_weights1 = model->addOperand(&type3);
178   auto output_layer_norm_weights1 = model->addOperand(&type3);
179   auto fw_output = model->addOperand(&type12);
180   auto bw_output = model->addOperand(&type12);
181   // Phase 2, operations
182   static int32_t activation_init[] = {4};
183   model->setOperandValue(activation, activation_init, sizeof(int32_t) * 1);
184   static float cell_clip_init[] = {0.0f};
185   model->setOperandValue(cell_clip, cell_clip_init, sizeof(float) * 1);
186   static float proj_clip_init[] = {0.0f};
187   model->setOperandValue(proj_clip, proj_clip_init, sizeof(float) * 1);
188   static bool8 merge_outputs_init[] = {false};
189   model->setOperandValue(merge_outputs, merge_outputs_init, sizeof(bool8) * 1);
190   static bool8 time_major_init[] = {true};
191   model->setOperandValue(time_major, time_major_init, sizeof(bool8) * 1);
192   model->addOperation(ANEURALNETWORKS_BIDIRECTIONAL_SEQUENCE_LSTM, {input, fw_input_to_input_weights, fw_input_to_forget_weights, fw_input_to_cell_weights, fw_input_to_output_weights, fw_recurrent_to_input_weights, fw_recurrent_to_forget_weights, fw_recurrent_to_cell_weights, fw_recurrent_to_output_weights, fw_cell_to_input_weights, fw_cell_to_forget_weights, fw_cell_to_output_weights, fw_input_gate_bias, fw_forget_gate_bias, fw_cell_bias, fw_output_gate_bias, fw_projection_weights, fw_projection_bias, bw_input_to_input_weights, bw_input_to_forget_weights, bw_input_to_cell_weights, bw_input_to_output_weights, bw_recurrent_to_input_weights, bw_recurrent_to_forget_weights, bw_recurrent_to_cell_weights, bw_recurrent_to_output_weights, bw_cell_to_input_weights, bw_cell_to_forget_weights, bw_cell_to_output_weights, bw_input_gate_bias, bw_forget_gate_bias, bw_cell_bias, bw_output_gate_bias, bw_projection_weights, bw_projection_bias, fw_activatiom_state, fw_cell_state, bw_activatiom_state, bw_cell_state, input1, fw_aux_input_to_input_weights, fw_input_to_forget_weights1, fw_aux_input_to_cell_weights, fw_aux_input_to_output_weights, bw_aux_input_to_input_weights, bw_input_to_forget_weights1, bw_aux_input_to_cell_weights, bw_aux_input_to_output_weights, activation, cell_clip, proj_clip, merge_outputs, time_major, input_layer_norm_weights, forget_layer_norm_weights, cell_layer_norm_weights, output_layer_norm_weights, input_layer_norm_weights1, forget_layer_norm_weights1, cell_layer_norm_weights1, output_layer_norm_weights1}, {fw_output, bw_output});
193   // Phase 3, inputs and outputs
194   model->identifyInputsAndOutputs(
195     {input, fw_input_to_input_weights, fw_input_to_forget_weights, fw_input_to_cell_weights, fw_input_to_output_weights, fw_recurrent_to_input_weights, fw_recurrent_to_forget_weights, fw_recurrent_to_cell_weights, fw_recurrent_to_output_weights, fw_cell_to_input_weights, fw_cell_to_forget_weights, fw_cell_to_output_weights, fw_input_gate_bias, fw_forget_gate_bias, fw_cell_bias, fw_output_gate_bias, fw_projection_weights, fw_projection_bias, bw_input_to_input_weights, bw_input_to_forget_weights, bw_input_to_cell_weights, bw_input_to_output_weights, bw_recurrent_to_input_weights, bw_recurrent_to_forget_weights, bw_recurrent_to_cell_weights, bw_recurrent_to_output_weights, bw_cell_to_input_weights, bw_cell_to_forget_weights, bw_cell_to_output_weights, bw_input_gate_bias, bw_forget_gate_bias, bw_cell_bias, bw_output_gate_bias, bw_projection_weights, bw_projection_bias, fw_activatiom_state, fw_cell_state, bw_activatiom_state, bw_cell_state, input1, fw_aux_input_to_input_weights, fw_input_to_forget_weights1, fw_aux_input_to_cell_weights, fw_aux_input_to_output_weights, bw_aux_input_to_input_weights, bw_input_to_forget_weights1, bw_aux_input_to_cell_weights, bw_aux_input_to_output_weights, input_layer_norm_weights, forget_layer_norm_weights, cell_layer_norm_weights, output_layer_norm_weights, input_layer_norm_weights1, forget_layer_norm_weights1, cell_layer_norm_weights1, output_layer_norm_weights1},
196     {fw_output, bw_output});
197   assert(model->isValid());
198 }
199 
is_ignored_dynamic_output_shape(int i)200 inline bool is_ignored_dynamic_output_shape(int i) {
201   static std::set<int> ignore = {1};
202   return ignore.find(i) != ignore.end();
203 }
204 
205