Compute Library
 21.02
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  NodeID id_mul_15_y = _graph.add_node<ConstNode>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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>(
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 
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>(
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>(
691  {
692  1, 1,
693  1, 1,
694  1, 1,
695  DimensionRoundingType::FLOOR },
696  1,
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>(
708  {
709  1, 1,
710  1, 1,
711  1, 1,
712  DimensionRoundingType::FLOOR },
713  1,
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>(
739  {
740  1, 1,
741  1, 1,
742  1, 1,
743  DimensionRoundingType::FLOOR },
744  1,
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>(
770  {
771  1, 1,
772  1, 1,
773  1, 1,
774  DimensionRoundingType::FLOOR },
775  1,
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>(
801  {
802  1, 1,
803  1, 1,
804  1, 1,
805  DimensionRoundingType::FLOOR },
806  1,
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>(
832  {
833  1, 1,
834  1, 1,
835  1, 1,
836  DimensionRoundingType::FLOOR },
837  1,
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>(
863  {
864  1, 1,
865  1, 1,
866  1, 1,
867  DimensionRoundingType::FLOOR },
868  1,
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>(
894  {
895  1, 1,
896  1, 1,
897  1, 1,
898  DimensionRoundingType::FLOOR },
899  1,
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>(
925  {
926  1, 1,
927  1, 1,
928  1, 1,
929  DimensionRoundingType::FLOOR },
930  1,
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>(
956  {
957  1, 1,
958  1, 1,
959  1, 1,
960  DimensionRoundingType::FLOOR },
961  1,
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>(
987  {
988  1, 1,
989  1, 1,
990  1, 1,
991  DimensionRoundingType::FLOOR },
992  1,
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>(
1018  {
1019  1, 1,
1020  1, 1,
1021  1, 1,
1022  DimensionRoundingType::FLOOR },
1023  1,
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>(
1049  {
1050  1, 1,
1051  1, 1,
1052  1, 1,
1053  DimensionRoundingType::FLOOR },
1054  1,
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>(
1080  {
1081  1, 1,
1082  1, 1,
1083  1, 1,
1084  DimensionRoundingType::FLOOR },
1085  1,
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>(
1111  {
1112  1, 1,
1113  1, 1,
1114  1, 1,
1115  DimensionRoundingType::FLOOR },
1116  1,
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>(
1142  {
1143  1, 1,
1144  1, 1,
1145  1, 1,
1146  DimensionRoundingType::FLOOR },
1147  1,
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>(
1173  {
1174  1, 1,
1175  1, 1,
1176  1, 1,
1177  DimensionRoundingType::FLOOR },
1178  1,
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>(
1204  {
1205  1, 1,
1206  1, 1,
1207  1, 1,
1208  DimensionRoundingType::FLOOR },
1209  1,
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>(
1228  {
1229  1, 1,
1230  1, 1,
1231  1, 1,
1232  DimensionRoundingType::FLOOR },
1233  1,
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>(
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);
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 
1270  {
1271  return _graph;
1272  }
1273 
1274 private:
1276 };
1277 
1278 #endif /* ARM_COMPUTE_GRAPH_EDSR_H */
Common node parameters.
Definition: Types.h:211
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
Includes all the Graph headers at once.
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-2021 Arm Limited.
Quantization information.
TensorShape input_shape
Validate test suite is to test ARM_COMPUTE_RETURN_ON_* macros we use to check the validity of given a...
Node interface.
Definition: INode.h:45
Output Layer node.
Definition: OutputNode.h:34
Padding and stride information class.
Definition: Types.h:722
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:1269
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
Default approach using internal heuristics.
TensorShape & set(size_t dimension, size_t value, bool apply_dim_correction=true, bool increase_dim_unit=true)
Accessor to set the value of one of the dimensions.
Definition: TensorShape.h:79