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