xref: /aosp_15_r20/external/ComputeLibrary/examples/graph_edsr.h (revision c217d954acce2dbc11938adb493fc0abd69584f3)
1 /*
2  * Copyright (c) 2020 Arm Limited.
3  *
4  * SPDX-License-Identifier: MIT
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to
8  * deal in the Software without restriction, including without limitation the
9  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10  * sell copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in all
14  * copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22  * SOFTWARE.
23  */
24 
25 #ifndef ARM_COMPUTE_GRAPH_EDSR_H
26 #define ARM_COMPUTE_GRAPH_EDSR_H
27 
28 #include "arm_compute/graph.h"
29 
30 #include "utils/GraphUtils.h"
31 
32 class GraphEdsr
33 {
34 public:
GraphEdsr()35     GraphEdsr()
36         : _graph(0, "EDSR")
37     {
38     }
39 
setup(const arm_compute::utils::CommonGraphParams & common_params,const arm_compute::utils::SimpleOption<std::string> & expected_output_filename)40     bool setup(const arm_compute::utils::CommonGraphParams &common_params, const arm_compute::utils::SimpleOption<std::string> &expected_output_filename)
41     {
42         using namespace arm_compute;
43         using namespace arm_compute::graph;
44         using namespace arm_compute::utils;
45         using namespace arm_compute::graph_utils;
46 
47         const auto &data_path = common_params.data_path;
48         const auto &target    = common_params.target;
49 
50         NodeID id_upscale_net_FakeQuantWithMinMaxVars_transposed = _graph.add_node<ConstNode>(
51                                                                        TensorDescriptor
52         {
53             TensorShape{ 12, 2, 2, 3 },
54             DataType::QASYMM8,
55             QuantizationInfo(0.00393533194437623, 1),
56             DataLayout::NHWC });
57         INode *node_upscale_net_FakeQuantWithMinMaxVars_transposed = _graph.node(id_upscale_net_FakeQuantWithMinMaxVars_transposed);
58         node_upscale_net_FakeQuantWithMinMaxVars_transposed->set_common_node_parameters(NodeParams{ "upscale_net_FakeQuantWithMinMaxVars_transposed", target });
59         node_upscale_net_FakeQuantWithMinMaxVars_transposed->output(0)->set_accessor(get_weights_accessor(data_path,
60                                                                                                           "/cnn_data/edsr_model/upscale_net_FakeQuantWithMinMaxVars_transposed.npy", DataLayout::NHWC));
61 
62         NodeID id_pre_upscale_Conv2D_bias = _graph.add_node<ConstNode>(
63                                                 TensorDescriptor
64         {
65             TensorShape{ 12 },
66             DataType::S32,
67             QuantizationInfo(2.9644968435604824e-06),
68             DataLayout::NHWC });
69         INode *node_pre_upscale_Conv2D_bias = _graph.node(id_pre_upscale_Conv2D_bias);
70         node_pre_upscale_Conv2D_bias->set_common_node_parameters(NodeParams{ "pre_upscale_Conv2D_bias", target });
71         node_pre_upscale_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/pre_upscale_Conv2D_bias.npy", DataLayout::NHWC));
72 
73         NodeID id_pre_upscale_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
74                                                             TensorDescriptor
75         {
76             TensorShape{ 256, 3, 3, 12 },
77             DataType::QASYMM8,
78             QuantizationInfo(0.000455576169770211, 128),
79             DataLayout::NHWC });
80         INode *node_pre_upscale_FakeQuantWithMinMaxVars = _graph.node(id_pre_upscale_FakeQuantWithMinMaxVars);
81         node_pre_upscale_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "pre_upscale_FakeQuantWithMinMaxVars", target });
82         node_pre_upscale_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/pre_upscale_FakeQuantWithMinMaxVars.npy",
83                                                                                                DataLayout::NHWC));
84 
85         NodeID id_post_residual_Conv2D_bias = _graph.add_node<ConstNode>(
86                                                   TensorDescriptor
87         {
88             TensorShape{ 256 },
89             DataType::S32,
90             QuantizationInfo(1.2760000345224398e-06),
91             DataLayout::NHWC });
92         INode *node_post_residual_Conv2D_bias = _graph.node(id_post_residual_Conv2D_bias);
93         node_post_residual_Conv2D_bias->set_common_node_parameters(NodeParams{ "post_residual_Conv2D_bias", target });
94         node_post_residual_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/post_residual_Conv2D_bias.npy", DataLayout::NHWC));
95 
96         NodeID id_post_residual_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
97                                                               TensorDescriptor
98         {
99             TensorShape{ 256, 3, 3, 256 },
100             DataType::QASYMM8,
101             QuantizationInfo(0.00036424631252884865, 129),
102             DataLayout::NHWC });
103         INode *node_post_residual_FakeQuantWithMinMaxVars = _graph.node(id_post_residual_FakeQuantWithMinMaxVars);
104         node_post_residual_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "post_residual_FakeQuantWithMinMaxVars", target });
105         node_post_residual_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/post_residual_FakeQuantWithMinMaxVars.npy",
106                                                                                                  DataLayout::NHWC));
107 
108         NodeID id_mul_15_y = _graph.add_node<ConstNode>(
109                                  TensorDescriptor
110         {
111             TensorShape{ 1 },
112             DataType::QASYMM8,
113             QuantizationInfo(0.0003921568568330258),
114             DataLayout::NHWC });
115         INode *node_mul_15_y = _graph.node(id_mul_15_y);
116         node_mul_15_y->set_common_node_parameters(NodeParams{ "mul_15_y", target });
117         node_mul_15_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_15_y.npy", DataLayout::NHWC));
118 
119         NodeID id_block_15_1_Conv2D_bias = _graph.add_node<ConstNode>(
120                                                TensorDescriptor
121         {
122             TensorShape{ 256 },
123             DataType::S32,
124             QuantizationInfo(1.2441644230420934e-06),
125             DataLayout::NHWC });
126         INode *node_block_15_1_Conv2D_bias = _graph.node(id_block_15_1_Conv2D_bias);
127         node_block_15_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_15_1_Conv2D_bias", target });
128         node_block_15_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_15_1_Conv2D_bias.npy", DataLayout::NHWC));
129 
130         NodeID id_block_15_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
131                                                            TensorDescriptor
132         {
133             TensorShape{ 256, 3, 3, 256 },
134             DataType::QASYMM8,
135             QuantizationInfo(0.00037038681330159307, 125),
136             DataLayout::NHWC });
137         INode *node_block_15_1_FakeQuantWithMinMaxVars = _graph.node(id_block_15_1_FakeQuantWithMinMaxVars);
138         node_block_15_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_15_1_FakeQuantWithMinMaxVars", target });
139         node_block_15_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_15_1_FakeQuantWithMinMaxVars.npy",
140                                                                                               DataLayout::NHWC));
141 
142         NodeID id_mul_14_y = _graph.add_node<ConstNode>(
143                                  TensorDescriptor
144         {
145             TensorShape{ 1 },
146             DataType::QASYMM8,
147             QuantizationInfo(0.0003921568568330258),
148             DataLayout::NHWC });
149         INode *node_mul_14_y = _graph.node(id_mul_14_y);
150         node_mul_14_y->set_common_node_parameters(NodeParams{ "mul_14_y", target });
151         node_mul_14_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_14_y.npy", DataLayout::NHWC));
152 
153         NodeID id_block_14_1_Conv2D_bias = _graph.add_node<ConstNode>(
154                                                TensorDescriptor
155         {
156             TensorShape{ 256 },
157             DataType::S32,
158             QuantizationInfo(1.3417260333881131e-06),
159             DataLayout::NHWC });
160         INode *node_block_14_1_Conv2D_bias = _graph.node(id_block_14_1_Conv2D_bias);
161         node_block_14_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_14_1_Conv2D_bias", target });
162         node_block_14_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_14_1_Conv2D_bias.npy", DataLayout::NHWC));
163 
164         NodeID id_block_14_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
165                                                            TensorDescriptor
166         {
167             TensorShape{ 256, 3, 3, 256 },
168             DataType::QASYMM8,
169             QuantizationInfo(0.00040307495510205626, 127),
170             DataLayout::NHWC });
171         INode *node_block_14_1_FakeQuantWithMinMaxVars = _graph.node(id_block_14_1_FakeQuantWithMinMaxVars);
172         node_block_14_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_14_1_FakeQuantWithMinMaxVars", target });
173         node_block_14_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_14_1_FakeQuantWithMinMaxVars.npy",
174                                                                                               DataLayout::NHWC));
175 
176         NodeID id_mul_13_y = _graph.add_node<ConstNode>(
177                                  TensorDescriptor
178         {
179             TensorShape{ 1 },
180             DataType::QASYMM8,
181             QuantizationInfo(0.0003921568568330258),
182             DataLayout::NHWC });
183         INode *node_mul_13_y = _graph.node(id_mul_13_y);
184         node_mul_13_y->set_common_node_parameters(NodeParams{ "mul_13_y", target });
185         node_mul_13_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_13_y.npy", DataLayout::NHWC));
186 
187         NodeID id_block_13_1_Conv2D_bias = _graph.add_node<ConstNode>(
188                                                TensorDescriptor
189         {
190             TensorShape{ 256 },
191             DataType::S32,
192             QuantizationInfo(1.2636977544389083e-06),
193             DataLayout::NHWC });
194         INode *node_block_13_1_Conv2D_bias = _graph.node(id_block_13_1_Conv2D_bias);
195         node_block_13_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_13_1_Conv2D_bias", target });
196         node_block_13_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_13_1_Conv2D_bias.npy", DataLayout::NHWC));
197 
198         NodeID id_block_13_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
199                                                            TensorDescriptor
200         {
201             TensorShape{ 256, 3, 3, 256 },
202             DataType::QASYMM8,
203             QuantizationInfo(0.0003858553245663643, 131),
204             DataLayout::NHWC });
205         INode *node_block_13_1_FakeQuantWithMinMaxVars = _graph.node(id_block_13_1_FakeQuantWithMinMaxVars);
206         node_block_13_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_13_1_FakeQuantWithMinMaxVars", target });
207         node_block_13_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_13_1_FakeQuantWithMinMaxVars.npy",
208                                                                                               DataLayout::NHWC));
209 
210         NodeID id_mul_12_y = _graph.add_node<ConstNode>(
211                                  TensorDescriptor
212         {
213             TensorShape{ 1 },
214             DataType::QASYMM8,
215             QuantizationInfo(0.0003921568568330258),
216             DataLayout::NHWC });
217         INode *node_mul_12_y = _graph.node(id_mul_12_y);
218         node_mul_12_y->set_common_node_parameters(NodeParams{ "mul_12_y", target });
219         node_mul_12_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_12_y.npy", DataLayout::NHWC));
220 
221         NodeID id_block_12_1_Conv2D_bias = _graph.add_node<ConstNode>(
222                                                TensorDescriptor
223         {
224             TensorShape{ 256 },
225             DataType::S32,
226             QuantizationInfo(1.3479783547154511e-06),
227             DataLayout::NHWC });
228         INode *node_block_12_1_Conv2D_bias = _graph.node(id_block_12_1_Conv2D_bias);
229         node_block_12_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_12_1_Conv2D_bias", target });
230         node_block_12_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_12_1_Conv2D_bias.npy", DataLayout::NHWC));
231 
232         NodeID id_block_12_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
233                                                            TensorDescriptor
234         {
235             TensorShape{ 256, 3, 3, 256 },
236             DataType::QASYMM8,
237             QuantizationInfo(0.00041212860378436744, 130),
238             DataLayout::NHWC });
239         INode *node_block_12_1_FakeQuantWithMinMaxVars = _graph.node(id_block_12_1_FakeQuantWithMinMaxVars);
240         node_block_12_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_12_1_FakeQuantWithMinMaxVars", target });
241         node_block_12_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_12_1_FakeQuantWithMinMaxVars.npy",
242                                                                                               DataLayout::NHWC));
243 
244         NodeID id_mul_11_y = _graph.add_node<ConstNode>(
245                                  TensorDescriptor
246         {
247             TensorShape{ 1 },
248             DataType::QASYMM8,
249             QuantizationInfo(0.0003921568568330258),
250             DataLayout::NHWC });
251         INode *node_mul_11_y = _graph.node(id_mul_11_y);
252         node_mul_11_y->set_common_node_parameters(NodeParams{ "mul_11_y", target });
253         node_mul_11_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_11_y.npy", DataLayout::NHWC));
254 
255         NodeID id_block_11_1_Conv2D_bias = _graph.add_node<ConstNode>(
256                                                TensorDescriptor
257         {
258             TensorShape{ 256 },
259             DataType::S32,
260             QuantizationInfo(1.2847248171965475e-06),
261             DataLayout::NHWC });
262         INode *node_block_11_1_Conv2D_bias = _graph.node(id_block_11_1_Conv2D_bias);
263         node_block_11_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_11_1_Conv2D_bias", target });
264         node_block_11_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_11_1_Conv2D_bias.npy", DataLayout::NHWC));
265 
266         NodeID id_block_11_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
267                                                            TensorDescriptor
268         {
269             TensorShape{ 256, 3, 3, 256 },
270             DataType::QASYMM8,
271             QuantizationInfo(0.00040296532097272575, 131),
272             DataLayout::NHWC });
273         INode *node_block_11_1_FakeQuantWithMinMaxVars = _graph.node(id_block_11_1_FakeQuantWithMinMaxVars);
274         node_block_11_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_11_1_FakeQuantWithMinMaxVars", target });
275         node_block_11_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_11_1_FakeQuantWithMinMaxVars.npy",
276                                                                                               DataLayout::NHWC));
277 
278         NodeID id_mul_10_y = _graph.add_node<ConstNode>(
279                                  TensorDescriptor
280         {
281             TensorShape{ 1 },
282             DataType::QASYMM8,
283             QuantizationInfo(0.0003921568568330258),
284             DataLayout::NHWC });
285         INode *node_mul_10_y = _graph.node(id_mul_10_y);
286         node_mul_10_y->set_common_node_parameters(NodeParams{ "mul_10_y", target });
287         node_mul_10_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_10_y.npy", DataLayout::NHWC));
288 
289         NodeID id_block_10_1_Conv2D_bias = _graph.add_node<ConstNode>(
290                                                TensorDescriptor
291         {
292             TensorShape{ 256 },
293             DataType::S32,
294             QuantizationInfo(1.1997129831797793e-06),
295             DataLayout::NHWC });
296         INode *node_block_10_1_Conv2D_bias = _graph.node(id_block_10_1_Conv2D_bias);
297         node_block_10_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_10_1_Conv2D_bias", target });
298         node_block_10_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_10_1_Conv2D_bias.npy", DataLayout::NHWC));
299 
300         NodeID id_block_10_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
301                                                            TensorDescriptor
302         {
303             TensorShape{ 256, 3, 3, 256 },
304             DataType::QASYMM8,
305             QuantizationInfo(0.00036640543839894235, 129),
306             DataLayout::NHWC });
307         INode *node_block_10_1_FakeQuantWithMinMaxVars = _graph.node(id_block_10_1_FakeQuantWithMinMaxVars);
308         node_block_10_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_10_1_FakeQuantWithMinMaxVars", target });
309         node_block_10_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_10_1_FakeQuantWithMinMaxVars.npy",
310                                                                                               DataLayout::NHWC));
311 
312         NodeID id_mul_9_y = _graph.add_node<ConstNode>(
313                                 TensorDescriptor
314         {
315             TensorShape{ 1 },
316             DataType::QASYMM8,
317             QuantizationInfo(0.0003921568568330258),
318             DataLayout::NHWC });
319         INode *node_mul_9_y = _graph.node(id_mul_9_y);
320         node_mul_9_y->set_common_node_parameters(NodeParams{ "mul_9_y", target });
321         node_mul_9_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_9_y.npy", DataLayout::NHWC));
322 
323         NodeID id_block_9_1_Conv2D_bias = _graph.add_node<ConstNode>(
324                                               TensorDescriptor
325         {
326             TensorShape{ 256 },
327             DataType::S32,
328             QuantizationInfo(1.1920226370421005e-06),
329             DataLayout::NHWC });
330         INode *node_block_9_1_Conv2D_bias = _graph.node(id_block_9_1_Conv2D_bias);
331         node_block_9_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_9_1_Conv2D_bias", target });
332         node_block_9_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_9_1_Conv2D_bias.npy", DataLayout::NHWC));
333 
334         NodeID id_block_9_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
335                                                           TensorDescriptor
336         {
337             TensorShape{ 256, 3, 3, 256 },
338             DataType::QASYMM8,
339             QuantizationInfo(0.0003706997958943248, 129),
340             DataLayout::NHWC });
341         INode *node_block_9_1_FakeQuantWithMinMaxVars = _graph.node(id_block_9_1_FakeQuantWithMinMaxVars);
342         node_block_9_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_9_1_FakeQuantWithMinMaxVars", target });
343         node_block_9_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_9_1_FakeQuantWithMinMaxVars.npy",
344                                                                                              DataLayout::NHWC));
345 
346         NodeID id_mul_8_y = _graph.add_node<ConstNode>(
347                                 TensorDescriptor
348         {
349             TensorShape{ 1 },
350             DataType::QASYMM8,
351             QuantizationInfo(0.0003921568568330258),
352             DataLayout::NHWC });
353         INode *node_mul_8_y = _graph.node(id_mul_8_y);
354         node_mul_8_y->set_common_node_parameters(NodeParams{ "mul_8_y", target });
355         node_mul_8_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_8_y.npy", DataLayout::NHWC));
356 
357         NodeID id_block_8_1_Conv2D_bias = _graph.add_node<ConstNode>(
358                                               TensorDescriptor
359         {
360             TensorShape{ 256 },
361             DataType::S32,
362             QuantizationInfo(1.218903321387188e-06),
363             DataLayout::NHWC });
364         INode *node_block_8_1_Conv2D_bias = _graph.node(id_block_8_1_Conv2D_bias);
365         node_block_8_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_8_1_Conv2D_bias", target });
366         node_block_8_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_8_1_Conv2D_bias.npy", DataLayout::NHWC));
367 
368         NodeID id_block_8_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
369                                                           TensorDescriptor
370         {
371             TensorShape{ 256, 3, 3, 256 },
372             DataType::QASYMM8,
373             QuantizationInfo(0.00038377835880964994, 127),
374             DataLayout::NHWC });
375         INode *node_block_8_1_FakeQuantWithMinMaxVars = _graph.node(id_block_8_1_FakeQuantWithMinMaxVars);
376         node_block_8_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_8_1_FakeQuantWithMinMaxVars", target });
377         node_block_8_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_8_1_FakeQuantWithMinMaxVars.npy",
378                                                                                              DataLayout::NHWC));
379 
380         NodeID id_mul_7_y = _graph.add_node<ConstNode>(
381                                 TensorDescriptor
382         {
383             TensorShape{ 1 },
384             DataType::QASYMM8,
385             QuantizationInfo(0.0003921568568330258),
386             DataLayout::NHWC });
387         INode *node_mul_7_y = _graph.node(id_mul_7_y);
388         node_mul_7_y->set_common_node_parameters(NodeParams{ "mul_7_y", target });
389         node_mul_7_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_7_y.npy", DataLayout::NHWC));
390 
391         NodeID id_block_7_1_Conv2D_bias = _graph.add_node<ConstNode>(
392                                               TensorDescriptor
393         {
394             TensorShape{ 256 },
395             DataType::S32,
396             QuantizationInfo(1.257252392861119e-06),
397             DataLayout::NHWC });
398         INode *node_block_7_1_Conv2D_bias = _graph.node(id_block_7_1_Conv2D_bias);
399         node_block_7_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_7_1_Conv2D_bias", target });
400         node_block_7_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_7_1_Conv2D_bias.npy", DataLayout::NHWC));
401 
402         NodeID id_block_7_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
403                                                           TensorDescriptor
404         {
405             TensorShape{ 256, 3, 3, 256 },
406             DataType::QASYMM8,
407             QuantizationInfo(0.00039844686398282647, 129),
408             DataLayout::NHWC });
409         INode *node_block_7_1_FakeQuantWithMinMaxVars = _graph.node(id_block_7_1_FakeQuantWithMinMaxVars);
410         node_block_7_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_7_1_FakeQuantWithMinMaxVars", target });
411         node_block_7_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_7_1_FakeQuantWithMinMaxVars.npy",
412                                                                                              DataLayout::NHWC));
413 
414         NodeID id_mul_6_y = _graph.add_node<ConstNode>(
415                                 TensorDescriptor
416         {
417             TensorShape{ 1 },
418             DataType::QASYMM8,
419             QuantizationInfo(0.0003921568568330258),
420             DataLayout::NHWC });
421         INode *node_mul_6_y = _graph.node(id_mul_6_y);
422         node_mul_6_y->set_common_node_parameters(NodeParams{ "mul_6_y", target });
423         node_mul_6_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_6_y.npy", DataLayout::NHWC));
424 
425         NodeID id_block_6_1_Conv2D_bias = _graph.add_node<ConstNode>(
426                                               TensorDescriptor
427         {
428             TensorShape{ 256 },
429             DataType::S32,
430             QuantizationInfo(1.244850636794581e-06),
431             DataLayout::NHWC });
432         INode *node_block_6_1_Conv2D_bias = _graph.node(id_block_6_1_Conv2D_bias);
433         node_block_6_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_6_1_Conv2D_bias", target });
434         node_block_6_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_6_1_Conv2D_bias.npy", DataLayout::NHWC));
435 
436         NodeID id_block_6_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
437                                                           TensorDescriptor
438         {
439             TensorShape{ 256, 3, 3, 256 },
440             DataType::QASYMM8,
441             QuantizationInfo(0.00040187727427110076, 132),
442             DataLayout::NHWC });
443         INode *node_block_6_1_FakeQuantWithMinMaxVars = _graph.node(id_block_6_1_FakeQuantWithMinMaxVars);
444         node_block_6_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_6_1_FakeQuantWithMinMaxVars", target });
445         node_block_6_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_6_1_FakeQuantWithMinMaxVars.npy",
446                                                                                              DataLayout::NHWC));
447 
448         NodeID id_mul_5_y = _graph.add_node<ConstNode>(
449                                 TensorDescriptor
450         {
451             TensorShape{ 1 },
452             DataType::QASYMM8,
453             QuantizationInfo(0.0003921568568330258),
454             DataLayout::NHWC });
455         INode *node_mul_5_y = _graph.node(id_mul_5_y);
456         node_mul_5_y->set_common_node_parameters(NodeParams{ "mul_5_y", target });
457         node_mul_5_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_5_y.npy", DataLayout::NHWC));
458 
459         NodeID id_block_5_1_Conv2D_bias = _graph.add_node<ConstNode>(
460                                               TensorDescriptor
461         {
462             TensorShape{ 256 },
463             DataType::S32,
464             QuantizationInfo(1.241092718373693e-06),
465             DataLayout::NHWC });
466         INode *node_block_5_1_Conv2D_bias = _graph.node(id_block_5_1_Conv2D_bias);
467         node_block_5_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_5_1_Conv2D_bias", target });
468         node_block_5_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_5_1_Conv2D_bias.npy", DataLayout::NHWC));
469 
470         NodeID id_block_5_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
471                                                           TensorDescriptor
472         {
473             TensorShape{ 256, 3, 3, 256 },
474             DataType::QASYMM8,
475             QuantizationInfo(0.0003938926674891263, 129),
476             DataLayout::NHWC });
477         INode *node_block_5_1_FakeQuantWithMinMaxVars = _graph.node(id_block_5_1_FakeQuantWithMinMaxVars);
478         node_block_5_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_5_1_FakeQuantWithMinMaxVars", target });
479         node_block_5_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_5_1_FakeQuantWithMinMaxVars.npy",
480                                                                                              DataLayout::NHWC));
481 
482         NodeID id_mul_4_y = _graph.add_node<ConstNode>(
483                                 TensorDescriptor
484         {
485             TensorShape{ 1 },
486             DataType::QASYMM8,
487             QuantizationInfo(0.0003921568568330258),
488             DataLayout::NHWC });
489         INode *node_mul_4_y = _graph.node(id_mul_4_y);
490         node_mul_4_y->set_common_node_parameters(NodeParams{ "mul_4_y", target });
491         node_mul_4_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_4_y.npy", DataLayout::NHWC));
492 
493         NodeID id_block_4_1_Conv2D_bias = _graph.add_node<ConstNode>(
494                                               TensorDescriptor
495         {
496             TensorShape{ 256 },
497             DataType::S32,
498             QuantizationInfo(1.1748390988941537e-06),
499             DataLayout::NHWC });
500         INode *node_block_4_1_Conv2D_bias = _graph.node(id_block_4_1_Conv2D_bias);
501         node_block_4_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_4_1_Conv2D_bias", target });
502         node_block_4_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_4_1_Conv2D_bias.npy", DataLayout::NHWC));
503 
504         NodeID id_block_4_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
505                                                           TensorDescriptor
506         {
507             TensorShape{ 256, 3, 3, 256 },
508             DataType::QASYMM8,
509             QuantizationInfo(0.0003788181929849088, 129),
510             DataLayout::NHWC });
511         INode *node_block_4_1_FakeQuantWithMinMaxVars = _graph.node(id_block_4_1_FakeQuantWithMinMaxVars);
512         node_block_4_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_4_1_FakeQuantWithMinMaxVars", target });
513         node_block_4_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_4_1_FakeQuantWithMinMaxVars.npy",
514                                                                                              DataLayout::NHWC));
515 
516         NodeID id_mul_3_y = _graph.add_node<ConstNode>(
517                                 TensorDescriptor
518         {
519             TensorShape{ 1 },
520             DataType::QASYMM8,
521             QuantizationInfo(0.0003921568568330258),
522             DataLayout::NHWC });
523         INode *node_mul_3_y = _graph.node(id_mul_3_y);
524         node_mul_3_y->set_common_node_parameters(NodeParams{ "mul_3_y", target });
525         node_mul_3_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_3_y.npy", DataLayout::NHWC));
526 
527         NodeID id_block_3_1_Conv2D_bias = _graph.add_node<ConstNode>(
528                                               TensorDescriptor
529         {
530             TensorShape{ 256 },
531             DataType::S32,
532             QuantizationInfo(1.1937011095142225e-06),
533             DataLayout::NHWC });
534         INode *node_block_3_1_Conv2D_bias = _graph.node(id_block_3_1_Conv2D_bias);
535         node_block_3_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_3_1_Conv2D_bias", target });
536         node_block_3_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_3_1_Conv2D_bias.npy", DataLayout::NHWC));
537 
538         NodeID id_block_3_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
539                                                           TensorDescriptor
540         {
541             TensorShape{ 256, 3, 3, 256 },
542             DataType::QASYMM8,
543             QuantizationInfo(0.0003944312920793891, 129),
544             DataLayout::NHWC });
545         INode *node_block_3_1_FakeQuantWithMinMaxVars = _graph.node(id_block_3_1_FakeQuantWithMinMaxVars);
546         node_block_3_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_3_1_FakeQuantWithMinMaxVars", target });
547         node_block_3_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_3_1_FakeQuantWithMinMaxVars.npy",
548                                                                                              DataLayout::NHWC));
549 
550         NodeID id_mul_2_y = _graph.add_node<ConstNode>(
551                                 TensorDescriptor
552         {
553             TensorShape{ 1 },
554             DataType::QASYMM8,
555             QuantizationInfo(0.0003921568568330258),
556             DataLayout::NHWC });
557         INode *node_mul_2_y = _graph.node(id_mul_2_y);
558         node_mul_2_y->set_common_node_parameters(NodeParams{ "mul_2_y", target });
559         node_mul_2_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_2_y.npy", DataLayout::NHWC));
560 
561         NodeID id_block_2_1_Conv2D_bias = _graph.add_node<ConstNode>(
562                                               TensorDescriptor
563         {
564             TensorShape{ 256 },
565             DataType::S32,
566             QuantizationInfo(1.1634580232566805e-06),
567             DataLayout::NHWC });
568         INode *node_block_2_1_Conv2D_bias = _graph.node(id_block_2_1_Conv2D_bias);
569         node_block_2_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_2_1_Conv2D_bias", target });
570         node_block_2_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_2_1_Conv2D_bias.npy", DataLayout::NHWC));
571 
572         NodeID id_block_2_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
573                                                           TensorDescriptor
574         {
575             TensorShape{ 256, 3, 3, 256 },
576             DataType::QASYMM8,
577             QuantizationInfo(0.0003789655165746808, 132),
578             DataLayout::NHWC });
579         INode *node_block_2_1_FakeQuantWithMinMaxVars = _graph.node(id_block_2_1_FakeQuantWithMinMaxVars);
580         node_block_2_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_2_1_FakeQuantWithMinMaxVars", target });
581         node_block_2_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_2_1_FakeQuantWithMinMaxVars.npy",
582                                                                                              DataLayout::NHWC));
583 
584         NodeID id_mul_1_y = _graph.add_node<ConstNode>(
585                                 TensorDescriptor
586         {
587             TensorShape{ 1 },
588             DataType::QASYMM8,
589             QuantizationInfo(0.0003921568568330258),
590             DataLayout::NHWC });
591         INode *node_mul_1_y = _graph.node(id_mul_1_y);
592         node_mul_1_y->set_common_node_parameters(NodeParams{ "mul_1_y", target });
593         node_mul_1_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_1_y.npy", DataLayout::NHWC));
594 
595         NodeID id_block_1_1_Conv2D_bias = _graph.add_node<ConstNode>(
596                                               TensorDescriptor
597         {
598             TensorShape{ 256 },
599             DataType::S32,
600             QuantizationInfo(1.197920255435747e-06),
601             DataLayout::NHWC });
602         INode *node_block_1_1_Conv2D_bias = _graph.node(id_block_1_1_Conv2D_bias);
603         node_block_1_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_1_1_Conv2D_bias", target });
604         node_block_1_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_1_1_Conv2D_bias.npy", DataLayout::NHWC));
605 
606         NodeID id_block_1_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
607                                                           TensorDescriptor
608         {
609             TensorShape{ 256, 3, 3, 256 },
610             DataType::QASYMM8,
611             QuantizationInfo(0.00038527738070115447, 132),
612             DataLayout::NHWC });
613         INode *node_block_1_1_FakeQuantWithMinMaxVars = _graph.node(id_block_1_1_FakeQuantWithMinMaxVars);
614         node_block_1_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_1_1_FakeQuantWithMinMaxVars", target });
615         node_block_1_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_1_1_FakeQuantWithMinMaxVars.npy",
616                                                                                              DataLayout::NHWC));
617 
618         NodeID id_mul_y = _graph.add_node<ConstNode>(
619                               TensorDescriptor
620         {
621             TensorShape{ 1 },
622             DataType::QASYMM8,
623             QuantizationInfo(0.0003921568568330258),
624             DataLayout::NHWC });
625         INode *node_mul_y = _graph.node(id_mul_y);
626         node_mul_y->set_common_node_parameters(NodeParams{ "mul_y", target });
627         node_mul_y->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/mul_y.npy", DataLayout::NHWC));
628 
629         NodeID id_block_0_1_Conv2D_bias = _graph.add_node<ConstNode>(
630                                               TensorDescriptor
631         {
632             TensorShape{ 256 },
633             DataType::S32,
634             QuantizationInfo(1.315485519626236e-06),
635             DataLayout::NHWC });
636         INode *node_block_0_1_Conv2D_bias = _graph.node(id_block_0_1_Conv2D_bias);
637         node_block_0_1_Conv2D_bias->set_common_node_parameters(NodeParams{ "block_0_1_Conv2D_bias", target });
638         node_block_0_1_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_0_1_Conv2D_bias.npy", DataLayout::NHWC));
639 
640         NodeID id_block_0_1_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
641                                                           TensorDescriptor
642         {
643             TensorShape{ 256, 3, 3, 256 },
644             DataType::QASYMM8,
645             QuantizationInfo(0.00039420535904355347, 129),
646             DataLayout::NHWC });
647         INode *node_block_0_1_FakeQuantWithMinMaxVars = _graph.node(id_block_0_1_FakeQuantWithMinMaxVars);
648         node_block_0_1_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "block_0_1_FakeQuantWithMinMaxVars", target });
649         node_block_0_1_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/block_0_1_FakeQuantWithMinMaxVars.npy",
650                                                                                              DataLayout::NHWC));
651 
652         NodeID id_pre_residual_Conv2D_bias = _graph.add_node<ConstNode>(
653                                                  TensorDescriptor
654         {
655             TensorShape{ 256 },
656             DataType::S32,
657             QuantizationInfo(1.7214160834555514e-06),
658             DataLayout::NHWC });
659         INode *node_pre_residual_Conv2D_bias = _graph.node(id_pre_residual_Conv2D_bias);
660         node_pre_residual_Conv2D_bias->set_common_node_parameters(NodeParams{ "pre_residual_Conv2D_bias", target });
661         node_pre_residual_Conv2D_bias->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/pre_residual_Conv2D_bias.npy", DataLayout::NHWC));
662 
663         NodeID id_pre_residual_FakeQuantWithMinMaxVars = _graph.add_node<ConstNode>(
664                                                              TensorDescriptor
665         {
666             TensorShape{ 3, 3, 3, 256 },
667             DataType::QASYMM8,
668             QuantizationInfo(0.0004389610840007663, 127),
669             DataLayout::NHWC });
670         INode *node_pre_residual_FakeQuantWithMinMaxVars = _graph.node(id_pre_residual_FakeQuantWithMinMaxVars);
671         node_pre_residual_FakeQuantWithMinMaxVars->set_common_node_parameters(NodeParams{ "pre_residual_FakeQuantWithMinMaxVars", target });
672         node_pre_residual_FakeQuantWithMinMaxVars->output(0)->set_accessor(get_weights_accessor(data_path, "/cnn_data/edsr_model/pre_residual_FakeQuantWithMinMaxVars.npy",
673                                                                                                 DataLayout::NHWC));
674 
675         TensorShape input_shape{};
676         input_shape.set(0, 3, false).set(1, 360, false).set(2, 640, false).set(3, 1, false);
677 
678         NodeID id_input = _graph.add_node<InputNode>(
679                               TensorDescriptor
680         {
681             input_shape,
682             DataType::QASYMM8,
683             QuantizationInfo(0.003921568859368563),
684             DataLayout::NHWC });
685         INode *node_input = _graph.node(id_input);
686         node_input->set_common_node_parameters(NodeParams{ "input", target });
687         node_input->output(0)->set_accessor(get_input_accessor(common_params));
688 
689         NodeID id_pre_residual_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
690                                              PadStrideInfo
691         {
692             1, 1,
693             1, 1,
694             1, 1,
695             DimensionRoundingType::FLOOR },
696         1,
697         arm_compute::graph::ConvolutionMethod::Default,
698         FastMathHint::Disabled,
699         QuantizationInfo(0.0033370566088706255, 96));
700         INode *node_pre_residual_BiasAdd = _graph.node(id_pre_residual_BiasAdd);
701         node_pre_residual_BiasAdd->set_common_node_parameters(NodeParams{ "pre_residual_BiasAdd", target });
702         _graph.add_connection(id_input, 0, id_pre_residual_BiasAdd, 0);
703         _graph.add_connection(id_pre_residual_FakeQuantWithMinMaxVars, 0, id_pre_residual_BiasAdd, 1);
704         _graph.add_connection(id_pre_residual_Conv2D_bias, 0, id_pre_residual_BiasAdd, 2);
705 
706         NodeID id_block_0_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
707                                           PadStrideInfo
708         {
709             1, 1,
710             1, 1,
711             1, 1,
712             DimensionRoundingType::FLOOR },
713         1,
714         arm_compute::graph::ConvolutionMethod::Default,
715         FastMathHint::Disabled,
716         QuantizationInfo(0.007344874087721109, 185));
717         INode *node_block_0_1_BiasAdd = _graph.node(id_block_0_1_BiasAdd);
718         node_block_0_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_0_1_BiasAdd", target });
719         _graph.add_connection(id_pre_residual_BiasAdd, 0, id_block_0_1_BiasAdd, 0);
720         _graph.add_connection(id_block_0_1_FakeQuantWithMinMaxVars, 0, id_block_0_1_BiasAdd, 1);
721         _graph.add_connection(id_block_0_1_Conv2D_bias, 0, id_block_0_1_BiasAdd, 2);
722 
723         NodeID id_mul = _graph.add_node<EltwiseLayerNode>(
724                             descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0006341293919831514, 174 } });
725         INode *node_mul = _graph.node(id_mul);
726         node_mul->set_common_node_parameters(NodeParams{ "mul", target });
727         _graph.add_connection(id_block_0_1_BiasAdd, 0, id_mul, 0);
728         _graph.add_connection(id_mul_y, 0, id_mul, 1);
729 
730         NodeID id_add = _graph.add_node<EltwiseLayerNode>(
731                             descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0031092411372810602, 95 } });
732         INode *node_add = _graph.node(id_add);
733         node_add->set_common_node_parameters(NodeParams{ "add", target });
734         _graph.add_connection(id_pre_residual_BiasAdd, 0, id_add, 0);
735         _graph.add_connection(id_mul, 0, id_add, 1);
736 
737         NodeID id_block_1_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
738                                           PadStrideInfo
739         {
740             1, 1,
741             1, 1,
742             1, 1,
743             DimensionRoundingType::FLOOR },
744         1,
745         arm_compute::graph::ConvolutionMethod::Default,
746         FastMathHint::Disabled,
747         QuantizationInfo(0.005333727691322565, 117));
748         INode *node_block_1_1_BiasAdd = _graph.node(id_block_1_1_BiasAdd);
749         node_block_1_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_1_1_BiasAdd", target });
750         _graph.add_connection(id_add, 0, id_block_1_1_BiasAdd, 0);
751         _graph.add_connection(id_block_1_1_FakeQuantWithMinMaxVars, 0, id_block_1_1_BiasAdd, 1);
752         _graph.add_connection(id_block_1_1_Conv2D_bias, 0, id_block_1_1_BiasAdd, 2);
753 
754         NodeID id_mul_1 = _graph.add_node<EltwiseLayerNode>(
755                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004965941770933568, 122 } });
756         INode *node_mul_1 = _graph.node(id_mul_1);
757         node_mul_1->set_common_node_parameters(NodeParams{ "mul_1", target });
758         _graph.add_connection(id_block_1_1_BiasAdd, 0, id_mul_1, 0);
759         _graph.add_connection(id_mul_1_y, 0, id_mul_1, 1);
760 
761         NodeID id_add_1 = _graph.add_node<EltwiseLayerNode>(
762                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0030700892675668, 96 } });
763         INode *node_add_1 = _graph.node(id_add_1);
764         node_add_1->set_common_node_parameters(NodeParams{ "add_1", target });
765         _graph.add_connection(id_add, 0, id_add_1, 0);
766         _graph.add_connection(id_mul_1, 0, id_add_1, 1);
767 
768         NodeID id_block_2_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
769                                           PadStrideInfo
770         {
771             1, 1,
772             1, 1,
773             1, 1,
774             DimensionRoundingType::FLOOR },
775         1,
776         arm_compute::graph::ConvolutionMethod::Default,
777         FastMathHint::Disabled,
778         QuantizationInfo(0.004199742339551449, 132));
779         INode *node_block_2_1_BiasAdd = _graph.node(id_block_2_1_BiasAdd);
780         node_block_2_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_2_1_BiasAdd", target });
781         _graph.add_connection(id_add_1, 0, id_block_2_1_BiasAdd, 0);
782         _graph.add_connection(id_block_2_1_FakeQuantWithMinMaxVars, 0, id_block_2_1_BiasAdd, 1);
783         _graph.add_connection(id_block_2_1_Conv2D_bias, 0, id_block_2_1_BiasAdd, 2);
784 
785         NodeID id_mul_2 = _graph.add_node<EltwiseLayerNode>(
786                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004133903712499887, 130 } });
787         INode *node_mul_2 = _graph.node(id_mul_2);
788         node_mul_2->set_common_node_parameters(NodeParams{ "mul_2", target });
789         _graph.add_connection(id_block_2_1_BiasAdd, 0, id_mul_2, 0);
790         _graph.add_connection(id_mul_2_y, 0, id_mul_2, 1);
791 
792         NodeID id_add_2 = _graph.add_node<EltwiseLayerNode>(
793                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.003026385325938463, 94 } });
794         INode *node_add_2 = _graph.node(id_add_2);
795         node_add_2->set_common_node_parameters(NodeParams{ "add_2", target });
796         _graph.add_connection(id_add_1, 0, id_add_2, 0);
797         _graph.add_connection(id_mul_2, 0, id_add_2, 1);
798 
799         NodeID id_block_3_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
800                                           PadStrideInfo
801         {
802             1, 1,
803             1, 1,
804             1, 1,
805             DimensionRoundingType::FLOOR },
806         1,
807         arm_compute::graph::ConvolutionMethod::Default,
808         FastMathHint::Disabled,
809         QuantizationInfo(0.003977528307586908, 142));
810         INode *node_block_3_1_BiasAdd = _graph.node(id_block_3_1_BiasAdd);
811         node_block_3_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_3_1_BiasAdd", target });
812         _graph.add_connection(id_add_2, 0, id_block_3_1_BiasAdd, 0);
813         _graph.add_connection(id_block_3_1_FakeQuantWithMinMaxVars, 0, id_block_3_1_BiasAdd, 1);
814         _graph.add_connection(id_block_3_1_Conv2D_bias, 0, id_block_3_1_BiasAdd, 2);
815 
816         NodeID id_mul_3 = _graph.add_node<EltwiseLayerNode>(
817                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0003943995980080217, 141 } });
818         INode *node_mul_3 = _graph.node(id_mul_3);
819         node_mul_3->set_common_node_parameters(NodeParams{ "mul_3", target });
820         _graph.add_connection(id_block_3_1_BiasAdd, 0, id_mul_3, 0);
821         _graph.add_connection(id_mul_3_y, 0, id_mul_3, 1);
822 
823         NodeID id_add_3 = _graph.add_node<EltwiseLayerNode>(
824                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.003101327223703265, 98 } });
825         INode *node_add_3 = _graph.node(id_add_3);
826         node_add_3->set_common_node_parameters(NodeParams{ "add_3", target });
827         _graph.add_connection(id_add_2, 0, id_add_3, 0);
828         _graph.add_connection(id_mul_3, 0, id_add_3, 1);
829 
830         NodeID id_block_4_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
831                                           PadStrideInfo
832         {
833             1, 1,
834             1, 1,
835             1, 1,
836             DimensionRoundingType::FLOOR },
837         1,
838         arm_compute::graph::ConvolutionMethod::Default,
839         FastMathHint::Disabled,
840         QuantizationInfo(0.0045388080179691315, 146));
841         INode *node_block_4_1_BiasAdd = _graph.node(id_block_4_1_BiasAdd);
842         node_block_4_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_4_1_BiasAdd", target });
843         _graph.add_connection(id_add_3, 0, id_block_4_1_BiasAdd, 0);
844         _graph.add_connection(id_block_4_1_FakeQuantWithMinMaxVars, 0, id_block_4_1_BiasAdd, 1);
845         _graph.add_connection(id_block_4_1_Conv2D_bias, 0, id_block_4_1_BiasAdd, 2);
846 
847         NodeID id_mul_4 = _graph.add_node<EltwiseLayerNode>(
848                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00044342130422592163, 143 } });
849         INode *node_mul_4 = _graph.node(id_mul_4);
850         node_mul_4->set_common_node_parameters(NodeParams{ "mul_4", target });
851         _graph.add_connection(id_block_4_1_BiasAdd, 0, id_mul_4, 0);
852         _graph.add_connection(id_mul_4_y, 0, id_mul_4, 1);
853 
854         NodeID id_add_4 = _graph.add_node<EltwiseLayerNode>(
855                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.003150839824229479, 98 } });
856         INode *node_add_4 = _graph.node(id_add_4);
857         node_add_4->set_common_node_parameters(NodeParams{ "add_4", target });
858         _graph.add_connection(id_add_3, 0, id_add_4, 0);
859         _graph.add_connection(id_mul_4, 0, id_add_4, 1);
860 
861         NodeID id_block_5_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
862                                           PadStrideInfo
863         {
864             1, 1,
865             1, 1,
866             1, 1,
867             DimensionRoundingType::FLOOR },
868         1,
869         arm_compute::graph::ConvolutionMethod::Default,
870         FastMathHint::Disabled,
871         QuantizationInfo(0.00402890844270587, 132));
872         INode *node_block_5_1_BiasAdd = _graph.node(id_block_5_1_BiasAdd);
873         node_block_5_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_5_1_BiasAdd", target });
874         _graph.add_connection(id_add_4, 0, id_block_5_1_BiasAdd, 0);
875         _graph.add_connection(id_block_5_1_FakeQuantWithMinMaxVars, 0, id_block_5_1_BiasAdd, 1);
876         _graph.add_connection(id_block_5_1_Conv2D_bias, 0, id_block_5_1_BiasAdd, 2);
877 
878         NodeID id_mul_5 = _graph.add_node<EltwiseLayerNode>(
879                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004023382789455354, 132 } });
880         INode *node_mul_5 = _graph.node(id_mul_5);
881         node_mul_5->set_common_node_parameters(NodeParams{ "mul_5", target });
882         _graph.add_connection(id_block_5_1_BiasAdd, 0, id_mul_5, 0);
883         _graph.add_connection(id_mul_5_y, 0, id_mul_5, 1);
884 
885         NodeID id_add_5 = _graph.add_node<EltwiseLayerNode>(
886                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0030975888948887587, 94 } });
887         INode *node_add_5 = _graph.node(id_add_5);
888         node_add_5->set_common_node_parameters(NodeParams{ "add_5", target });
889         _graph.add_connection(id_add_4, 0, id_add_5, 0);
890         _graph.add_connection(id_mul_5, 0, id_add_5, 1);
891 
892         NodeID id_block_6_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
893                                           PadStrideInfo
894         {
895             1, 1,
896             1, 1,
897             1, 1,
898             DimensionRoundingType::FLOOR },
899         1,
900         arm_compute::graph::ConvolutionMethod::Default,
901         FastMathHint::Disabled,
902         QuantizationInfo(0.00421866774559021, 125));
903         INode *node_block_6_1_BiasAdd = _graph.node(id_block_6_1_BiasAdd);
904         node_block_6_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_6_1_BiasAdd", target });
905         _graph.add_connection(id_add_5, 0, id_block_6_1_BiasAdd, 0);
906         _graph.add_connection(id_block_6_1_FakeQuantWithMinMaxVars, 0, id_block_6_1_BiasAdd, 1);
907         _graph.add_connection(id_block_6_1_Conv2D_bias, 0, id_block_6_1_BiasAdd, 2);
908 
909         NodeID id_mul_6 = _graph.add_node<EltwiseLayerNode>(
910                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00041950203012675047, 125 } });
911         INode *node_mul_6 = _graph.node(id_mul_6);
912         node_mul_6->set_common_node_parameters(NodeParams{ "mul_6", target });
913         _graph.add_connection(id_block_6_1_BiasAdd, 0, id_mul_6, 0);
914         _graph.add_connection(id_mul_6_y, 0, id_mul_6, 1);
915 
916         NodeID id_add_6 = _graph.add_node<EltwiseLayerNode>(
917                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.003155382815748453, 92 } });
918         INode *node_add_6 = _graph.node(id_add_6);
919         node_add_6->set_common_node_parameters(NodeParams{ "add_6", target });
920         _graph.add_connection(id_add_5, 0, id_add_6, 0);
921         _graph.add_connection(id_mul_6, 0, id_add_6, 1);
922 
923         NodeID id_block_7_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
924                                           PadStrideInfo
925         {
926             1, 1,
927             1, 1,
928             1, 1,
929             DimensionRoundingType::FLOOR },
930         1,
931         arm_compute::graph::ConvolutionMethod::Default,
932         FastMathHint::Disabled,
933         QuantizationInfo(0.004250136204063892, 143));
934         INode *node_block_7_1_BiasAdd = _graph.node(id_block_7_1_BiasAdd);
935         node_block_7_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_7_1_BiasAdd", target });
936         _graph.add_connection(id_add_6, 0, id_block_7_1_BiasAdd, 0);
937         _graph.add_connection(id_block_7_1_FakeQuantWithMinMaxVars, 0, id_block_7_1_BiasAdd, 1);
938         _graph.add_connection(id_block_7_1_Conv2D_bias, 0, id_block_7_1_BiasAdd, 2);
939 
940         NodeID id_mul_7 = _graph.add_node<EltwiseLayerNode>(
941                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00042401350219734013, 142 } });
942         INode *node_mul_7 = _graph.node(id_mul_7);
943         node_mul_7->set_common_node_parameters(NodeParams{ "mul_7", target });
944         _graph.add_connection(id_block_7_1_BiasAdd, 0, id_mul_7, 0);
945         _graph.add_connection(id_mul_7_y, 0, id_mul_7, 1);
946 
947         NodeID id_add_7 = _graph.add_node<EltwiseLayerNode>(
948                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0031760605052113533, 86 } });
949         INode *node_add_7 = _graph.node(id_add_7);
950         node_add_7->set_common_node_parameters(NodeParams{ "add_7", target });
951         _graph.add_connection(id_add_6, 0, id_add_7, 0);
952         _graph.add_connection(id_mul_7, 0, id_add_7, 1);
953 
954         NodeID id_block_8_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
955                                           PadStrideInfo
956         {
957             1, 1,
958             1, 1,
959             1, 1,
960             DimensionRoundingType::FLOOR },
961         1,
962         arm_compute::graph::ConvolutionMethod::Default,
963         FastMathHint::Disabled,
964         QuantizationInfo(0.004277155734598637, 123));
965         INode *node_block_8_1_BiasAdd = _graph.node(id_block_8_1_BiasAdd);
966         node_block_8_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_8_1_BiasAdd", target });
967         _graph.add_connection(id_add_7, 0, id_block_8_1_BiasAdd, 0);
968         _graph.add_connection(id_block_8_1_FakeQuantWithMinMaxVars, 0, id_block_8_1_BiasAdd, 1);
969         _graph.add_connection(id_block_8_1_Conv2D_bias, 0, id_block_8_1_BiasAdd, 2);
970 
971         NodeID id_mul_8 = _graph.add_node<EltwiseLayerNode>(
972                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00042673019925132394, 123 } });
973         INode *node_mul_8 = _graph.node(id_mul_8);
974         node_mul_8->set_common_node_parameters(NodeParams{ "mul_8", target });
975         _graph.add_connection(id_block_8_1_BiasAdd, 0, id_mul_8, 0);
976         _graph.add_connection(id_mul_8_y, 0, id_mul_8, 1);
977 
978         NodeID id_add_8 = _graph.add_node<EltwiseLayerNode>(
979                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0032156009692698717, 86 } });
980         INode *node_add_8 = _graph.node(id_add_8);
981         node_add_8->set_common_node_parameters(NodeParams{ "add_8", target });
982         _graph.add_connection(id_add_7, 0, id_add_8, 0);
983         _graph.add_connection(id_mul_8, 0, id_add_8, 1);
984 
985         NodeID id_block_9_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
986                                           PadStrideInfo
987         {
988             1, 1,
989             1, 1,
990             1, 1,
991             DimensionRoundingType::FLOOR },
992         1,
993         arm_compute::graph::ConvolutionMethod::Default,
994         FastMathHint::Disabled,
995         QuantizationInfo(0.00445037754252553, 129));
996         INode *node_block_9_1_BiasAdd = _graph.node(id_block_9_1_BiasAdd);
997         node_block_9_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_9_1_BiasAdd", target });
998         _graph.add_connection(id_add_8, 0, id_block_9_1_BiasAdd, 0);
999         _graph.add_connection(id_block_9_1_FakeQuantWithMinMaxVars, 0, id_block_9_1_BiasAdd, 1);
1000         _graph.add_connection(id_block_9_1_Conv2D_bias, 0, id_block_9_1_BiasAdd, 2);
1001 
1002         NodeID id_mul_9 = _graph.add_node<EltwiseLayerNode>(
1003                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004448975087143481, 129 } });
1004         INode *node_mul_9 = _graph.node(id_mul_9);
1005         node_mul_9->set_common_node_parameters(NodeParams{ "mul_9", target });
1006         _graph.add_connection(id_block_9_1_BiasAdd, 0, id_mul_9, 0);
1007         _graph.add_connection(id_mul_9_y, 0, id_mul_9, 1);
1008 
1009         NodeID id_add_9 = _graph.add_node<EltwiseLayerNode>(
1010                               descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0032742770854383707, 80 } });
1011         INode *node_add_9 = _graph.node(id_add_9);
1012         node_add_9->set_common_node_parameters(NodeParams{ "add_9", target });
1013         _graph.add_connection(id_add_8, 0, id_add_9, 0);
1014         _graph.add_connection(id_mul_9, 0, id_add_9, 1);
1015 
1016         NodeID id_block_10_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
1017                                            PadStrideInfo
1018         {
1019             1, 1,
1020             1, 1,
1021             1, 1,
1022             DimensionRoundingType::FLOOR },
1023         1,
1024         arm_compute::graph::ConvolutionMethod::Default,
1025         FastMathHint::Disabled,
1026         QuantizationInfo(0.003614710411056876, 131));
1027         INode *node_block_10_1_BiasAdd = _graph.node(id_block_10_1_BiasAdd);
1028         node_block_10_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_10_1_BiasAdd", target });
1029         _graph.add_connection(id_add_9, 0, id_block_10_1_BiasAdd, 0);
1030         _graph.add_connection(id_block_10_1_FakeQuantWithMinMaxVars, 0, id_block_10_1_BiasAdd, 1);
1031         _graph.add_connection(id_block_10_1_Conv2D_bias, 0, id_block_10_1_BiasAdd, 2);
1032 
1033         NodeID id_mul_10 = _graph.add_node<EltwiseLayerNode>(
1034                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00036083892337046564, 130 } });
1035         INode *node_mul_10 = _graph.node(id_mul_10);
1036         node_mul_10->set_common_node_parameters(NodeParams{ "mul_10", target });
1037         _graph.add_connection(id_block_10_1_BiasAdd, 0, id_mul_10, 0);
1038         _graph.add_connection(id_mul_10_y, 0, id_mul_10, 1);
1039 
1040         NodeID id_add_10 = _graph.add_node<EltwiseLayerNode>(
1041                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0031881770119071007, 81 } });
1042         INode *node_add_10 = _graph.node(id_add_10);
1043         node_add_10->set_common_node_parameters(NodeParams{ "add_10", target });
1044         _graph.add_connection(id_add_9, 0, id_add_10, 0);
1045         _graph.add_connection(id_mul_10, 0, id_add_10, 1);
1046 
1047         NodeID id_block_11_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
1048                                            PadStrideInfo
1049         {
1050             1, 1,
1051             1, 1,
1052             1, 1,
1053             DimensionRoundingType::FLOOR },
1054         1,
1055         arm_compute::graph::ConvolutionMethod::Default,
1056         FastMathHint::Disabled,
1057         QuantizationInfo(0.003969002980738878, 133));
1058         INode *node_block_11_1_BiasAdd = _graph.node(id_block_11_1_BiasAdd);
1059         node_block_11_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_11_1_BiasAdd", target });
1060         _graph.add_connection(id_add_10, 0, id_block_11_1_BiasAdd, 0);
1061         _graph.add_connection(id_block_11_1_FakeQuantWithMinMaxVars, 0, id_block_11_1_BiasAdd, 1);
1062         _graph.add_connection(id_block_11_1_Conv2D_bias, 0, id_block_11_1_BiasAdd, 2);
1063 
1064         NodeID id_mul_11 = _graph.add_node<EltwiseLayerNode>(
1065                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0003968806122429669, 133 } });
1066         INode *node_mul_11 = _graph.node(id_mul_11);
1067         node_mul_11->set_common_node_parameters(NodeParams{ "mul_11", target });
1068         _graph.add_connection(id_block_11_1_BiasAdd, 0, id_mul_11, 0);
1069         _graph.add_connection(id_mul_11_y, 0, id_mul_11, 1);
1070 
1071         NodeID id_add_11 = _graph.add_node<EltwiseLayerNode>(
1072                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0032707711216062307, 80 } });
1073         INode *node_add_11 = _graph.node(id_add_11);
1074         node_add_11->set_common_node_parameters(NodeParams{ "add_11", target });
1075         _graph.add_connection(id_add_10, 0, id_add_11, 0);
1076         _graph.add_connection(id_mul_11, 0, id_add_11, 1);
1077 
1078         NodeID id_block_12_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
1079                                            PadStrideInfo
1080         {
1081             1, 1,
1082             1, 1,
1083             1, 1,
1084             DimensionRoundingType::FLOOR },
1085         1,
1086         arm_compute::graph::ConvolutionMethod::Default,
1087         FastMathHint::Disabled,
1088         QuantizationInfo(0.004366801120340824, 110));
1089         INode *node_block_12_1_BiasAdd = _graph.node(id_block_12_1_BiasAdd);
1090         node_block_12_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_12_1_BiasAdd", target });
1091         _graph.add_connection(id_add_11, 0, id_block_12_1_BiasAdd, 0);
1092         _graph.add_connection(id_block_12_1_FakeQuantWithMinMaxVars, 0, id_block_12_1_BiasAdd, 1);
1093         _graph.add_connection(id_block_12_1_Conv2D_bias, 0, id_block_12_1_BiasAdd, 2);
1094 
1095         NodeID id_mul_12 = _graph.add_node<EltwiseLayerNode>(
1096                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004365936329122633, 110 } });
1097         INode *node_mul_12 = _graph.node(id_mul_12);
1098         node_mul_12->set_common_node_parameters(NodeParams{ "mul_12", target });
1099         _graph.add_connection(id_block_12_1_BiasAdd, 0, id_mul_12, 0);
1100         _graph.add_connection(id_mul_12_y, 0, id_mul_12, 1);
1101 
1102         NodeID id_add_12 = _graph.add_node<EltwiseLayerNode>(
1103                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.003275055903941393, 79 } });
1104         INode *node_add_12 = _graph.node(id_add_12);
1105         node_add_12->set_common_node_parameters(NodeParams{ "add_12", target });
1106         _graph.add_connection(id_add_11, 0, id_add_12, 0);
1107         _graph.add_connection(id_mul_12, 0, id_add_12, 1);
1108 
1109         NodeID id_block_13_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
1110                                            PadStrideInfo
1111         {
1112             1, 1,
1113             1, 1,
1114             1, 1,
1115             DimensionRoundingType::FLOOR },
1116         1,
1117         arm_compute::graph::ConvolutionMethod::Default,
1118         FastMathHint::Disabled,
1119         QuantizationInfo(0.004386766813695431, 139));
1120         INode *node_block_13_1_BiasAdd = _graph.node(id_block_13_1_BiasAdd);
1121         node_block_13_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_13_1_BiasAdd", target });
1122         _graph.add_connection(id_add_12, 0, id_block_13_1_BiasAdd, 0);
1123         _graph.add_connection(id_block_13_1_FakeQuantWithMinMaxVars, 0, id_block_13_1_BiasAdd, 1);
1124         _graph.add_connection(id_block_13_1_Conv2D_bias, 0, id_block_13_1_BiasAdd, 2);
1125 
1126         NodeID id_mul_13 = _graph.add_node<EltwiseLayerNode>(
1127                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004385628562886268, 139 } });
1128         INode *node_mul_13 = _graph.node(id_mul_13);
1129         node_mul_13->set_common_node_parameters(NodeParams{ "mul_13", target });
1130         _graph.add_connection(id_block_13_1_BiasAdd, 0, id_mul_13, 0);
1131         _graph.add_connection(id_mul_13_y, 0, id_mul_13, 1);
1132 
1133         NodeID id_add_13 = _graph.add_node<EltwiseLayerNode>(
1134                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0033287261612713337, 78 } });
1135         INode *node_add_13 = _graph.node(id_add_13);
1136         node_add_13->set_common_node_parameters(NodeParams{ "add_13", target });
1137         _graph.add_connection(id_add_12, 0, id_add_13, 0);
1138         _graph.add_connection(id_mul_13, 0, id_add_13, 1);
1139 
1140         NodeID id_block_14_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
1141                                            PadStrideInfo
1142         {
1143             1, 1,
1144             1, 1,
1145             1, 1,
1146             DimensionRoundingType::FLOOR },
1147         1,
1148         arm_compute::graph::ConvolutionMethod::Default,
1149         FastMathHint::Disabled,
1150         QuantizationInfo(0.0038069337606430054, 130));
1151         INode *node_block_14_1_BiasAdd = _graph.node(id_block_14_1_BiasAdd);
1152         node_block_14_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_14_1_BiasAdd", target });
1153         _graph.add_connection(id_add_13, 0, id_block_14_1_BiasAdd, 0);
1154         _graph.add_connection(id_block_14_1_FakeQuantWithMinMaxVars, 0, id_block_14_1_BiasAdd, 1);
1155         _graph.add_connection(id_block_14_1_Conv2D_bias, 0, id_block_14_1_BiasAdd, 2);
1156 
1157         NodeID id_mul_14 = _graph.add_node<EltwiseLayerNode>(
1158                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.00037829321809113026, 130 } });
1159         INode *node_mul_14 = _graph.node(id_mul_14);
1160         node_mul_14->set_common_node_parameters(NodeParams{ "mul_14", target });
1161         _graph.add_connection(id_block_14_1_BiasAdd, 0, id_mul_14, 0);
1162         _graph.add_connection(id_mul_14_y, 0, id_mul_14, 1);
1163 
1164         NodeID id_add_14 = _graph.add_node<EltwiseLayerNode>(
1165                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0033590947277843952, 77 } });
1166         INode *node_add_14 = _graph.node(id_add_14);
1167         node_add_14->set_common_node_parameters(NodeParams{ "add_14", target });
1168         _graph.add_connection(id_add_13, 0, id_add_14, 0);
1169         _graph.add_connection(id_mul_14, 0, id_add_14, 1);
1170 
1171         NodeID id_block_15_1_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
1172                                            PadStrideInfo
1173         {
1174             1, 1,
1175             1, 1,
1176             1, 1,
1177             DimensionRoundingType::FLOOR },
1178         1,
1179         arm_compute::graph::ConvolutionMethod::Default,
1180         FastMathHint::Disabled,
1181         QuantizationInfo(0.004009159281849861, 130));
1182         INode *node_block_15_1_BiasAdd = _graph.node(id_block_15_1_BiasAdd);
1183         node_block_15_1_BiasAdd->set_common_node_parameters(NodeParams{ "block_15_1_BiasAdd", target });
1184         _graph.add_connection(id_add_14, 0, id_block_15_1_BiasAdd, 0);
1185         _graph.add_connection(id_block_15_1_FakeQuantWithMinMaxVars, 0, id_block_15_1_BiasAdd, 1);
1186         _graph.add_connection(id_block_15_1_Conv2D_bias, 0, id_block_15_1_BiasAdd, 2);
1187 
1188         NodeID id_mul_15 = _graph.add_node<EltwiseLayerNode>(
1189                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Mul, QuantizationInfo{ 0.0004008286341559142, 130 } });
1190         INode *node_mul_15 = _graph.node(id_mul_15);
1191         node_mul_15->set_common_node_parameters(NodeParams{ "mul_15", target });
1192         _graph.add_connection(id_block_15_1_BiasAdd, 0, id_mul_15, 0);
1193         _graph.add_connection(id_mul_15_y, 0, id_mul_15, 1);
1194 
1195         NodeID id_add_15 = _graph.add_node<EltwiseLayerNode>(
1196                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0035031239967793226, 78 } });
1197         INode *node_add_15 = _graph.node(id_add_15);
1198         node_add_15->set_common_node_parameters(NodeParams{ "add_15", target });
1199         _graph.add_connection(id_add_14, 0, id_add_15, 0);
1200         _graph.add_connection(id_mul_15, 0, id_add_15, 1);
1201 
1202         NodeID id_post_residual_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
1203                                               PadStrideInfo
1204         {
1205             1, 1,
1206             1, 1,
1207             1, 1,
1208             DimensionRoundingType::FLOOR },
1209         1,
1210         arm_compute::graph::ConvolutionMethod::Default,
1211         FastMathHint::Disabled,
1212         QuantizationInfo(0.005167999770492315, 112));
1213         INode *node_post_residual_BiasAdd = _graph.node(id_post_residual_BiasAdd);
1214         node_post_residual_BiasAdd->set_common_node_parameters(NodeParams{ "post_residual_BiasAdd", target });
1215         _graph.add_connection(id_add_15, 0, id_post_residual_BiasAdd, 0);
1216         _graph.add_connection(id_post_residual_FakeQuantWithMinMaxVars, 0, id_post_residual_BiasAdd, 1);
1217         _graph.add_connection(id_post_residual_Conv2D_bias, 0, id_post_residual_BiasAdd, 2);
1218 
1219         NodeID id_add_16 = _graph.add_node<EltwiseLayerNode>(
1220                                descriptors::EltwiseLayerDescriptor{ EltwiseOperation::Add, QuantizationInfo{ 0.0065071373246610165, 89 } });
1221         INode *node_add_16 = _graph.node(id_add_16);
1222         node_add_16->set_common_node_parameters(NodeParams{ "add_16", target });
1223         _graph.add_connection(id_post_residual_BiasAdd, 0, id_add_16, 0);
1224         _graph.add_connection(id_pre_residual_BiasAdd, 0, id_add_16, 1);
1225 
1226         NodeID id_pre_upscale_BiasAdd = _graph.add_node<ConvolutionLayerNode>(
1227                                             PadStrideInfo
1228         {
1229             1, 1,
1230             1, 1,
1231             1, 1,
1232             DimensionRoundingType::FLOOR },
1233         1,
1234         arm_compute::graph::ConvolutionMethod::Default,
1235         FastMathHint::Disabled,
1236         QuantizationInfo(0.005013593938201666, 26));
1237         INode *node_pre_upscale_BiasAdd = _graph.node(id_pre_upscale_BiasAdd);
1238         node_pre_upscale_BiasAdd->set_common_node_parameters(NodeParams{ "pre_upscale_BiasAdd", target });
1239         _graph.add_connection(id_add_16, 0, id_pre_upscale_BiasAdd, 0);
1240         _graph.add_connection(id_pre_upscale_FakeQuantWithMinMaxVars, 0, id_pre_upscale_BiasAdd, 1);
1241         _graph.add_connection(id_pre_upscale_Conv2D_bias, 0, id_pre_upscale_BiasAdd, 2);
1242 
1243         NodeID id_upscale_net_FakeQuantWithMinMaxVars_1 = _graph.add_node<DeconvolutionLayerNode>(
1244                                                               descriptors::DeconvolutionLayerDescriptor
1245         {
1246             PadStrideInfo{
1247                 2, 2,
1248                 0, 0,
1249                 0, 0,
1250                 DimensionRoundingType::FLOOR },
1251             QuantizationInfo{ 0.004990961868315935, 26 } });
1252         INode *node_upscale_net_FakeQuantWithMinMaxVars_1 = _graph.node(id_upscale_net_FakeQuantWithMinMaxVars_1);
1253         node_upscale_net_FakeQuantWithMinMaxVars_1->set_common_node_parameters(NodeParams{ "upscale_net_FakeQuantWithMinMaxVars_1", target });
1254         _graph.add_connection(id_pre_upscale_BiasAdd, 0, id_upscale_net_FakeQuantWithMinMaxVars_1, 0);
1255         _graph.add_connection(id_upscale_net_FakeQuantWithMinMaxVars_transposed, 0, id_upscale_net_FakeQuantWithMinMaxVars_1, 1);
1256         TensorShape output_shape;
1257         output_shape.set(0, 3, false).set(1, 720, false).set(2, 1280, false).set(3, 1, false);
1258 
1259         NodeID id_output_140211982446376   = _graph.add_node<OutputNode>();
1260         INode *node_output_140211982446376 = _graph.node(id_output_140211982446376);
1261         node_output_140211982446376->set_common_node_parameters(NodeParams{ "output_140211982446376", target });
1262         _graph.add_connection(id_upscale_net_FakeQuantWithMinMaxVars_1, 0, id_output_140211982446376, 0);
1263         node_output_140211982446376->input(0)->set_accessor(get_npy_output_accessor(expected_output_filename.value(), output_shape, common_params.data_type,
1264                                                                                     common_params.data_layout));
1265 
1266         return true;
1267     }
1268 
graph()1269     arm_compute::graph::Graph &graph()
1270     {
1271         return _graph;
1272     }
1273 
1274 private:
1275     arm_compute::graph::Graph _graph;
1276 };
1277 
1278 #endif /* ARM_COMPUTE_GRAPH_EDSR_H */
1279