blob: 065c64c8b1f0279096ea3d154780f057cc67e149 [file] [log] [blame]
Ryan OSheade36e4a2020-03-13 16:26:19 +00001<!-- Copyright (c) 2020 ARM Limited. -->
2<!-- -->
3<!-- SPDX-License-Identifier: MIT -->
4<!-- -->
5<!-- HTML header for doxygen 1.8.13-->
6<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
7<html xmlns="http://www.w3.org/1999/xhtml">
8<head>
9<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
10<meta http-equiv="X-UA-Compatible" content="IE=9"/>
11<meta name="generator" content="Doxygen 1.8.13"/>
12<meta name="robots" content="NOINDEX, NOFOLLOW" />
13<meta name="viewport" content="width=device-width, initial-scale=1"/>
14<title>ArmNN: armnnUtils Namespace Reference</title>
15<link href="tabs.css" rel="stylesheet" type="text/css"/>
16<script type="text/javascript" src="jquery.js"></script>
17<script type="text/javascript" src="dynsections.js"></script>
18<link href="navtree.css" rel="stylesheet" type="text/css"/>
19<script type="text/javascript" src="resize.js"></script>
20<script type="text/javascript" src="navtreedata.js"></script>
21<script type="text/javascript" src="navtree.js"></script>
22<script type="text/javascript">
23 $(document).ready(initResizable);
24</script>
25<link href="search/search.css" rel="stylesheet" type="text/css"/>
26<script type="text/javascript" src="search/searchdata.js"></script>
27<script type="text/javascript" src="search/search.js"></script>
28<script type="text/x-mathjax-config">
29 MathJax.Hub.Config({
30 extensions: ["tex2jax.js"],
31 jax: ["input/TeX","output/HTML-CSS"],
32});
33</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
34<link href="doxygen.css" rel="stylesheet" type="text/css" />
35<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
36</head>
37<body>
38<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
39<div id="titlearea">
40<table cellspacing="0" cellpadding="0">
41 <tbody>
42 <tr style="height: 56px;">
43 <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
44 <td style="padding-left: 0.5em;">
45 <div id="projectname">
46 &#160;<span id="projectnumber">20.02</span>
47 </div>
48 </td>
49 </tr>
50 </tbody>
51</table>
52</div>
53<!-- end header part -->
54<!-- Generated by Doxygen 1.8.13 -->
55<script type="text/javascript">
56var searchBox = new SearchBox("searchBox", "search",false,'Search');
57</script>
58<script type="text/javascript" src="menudata.js"></script>
59<script type="text/javascript" src="menu.js"></script>
60<script type="text/javascript">
61$(function() {
62 initMenu('',true,false,'search.php','Search');
63 $(document).ready(function() { init_search(); });
64});
65</script>
66<div id="main-nav"></div>
67</div><!-- top -->
68<div id="side-nav" class="ui-resizable side-nav-resizable">
69 <div id="nav-tree">
70 <div id="nav-tree-contents">
71 <div id="nav-sync" class="sync"></div>
72 </div>
73 </div>
74 <div id="splitbar" style="-moz-user-select:none;"
75 class="ui-resizable-handle">
76 </div>
77</div>
78<script type="text/javascript">
79$(document).ready(function(){initNavTree('namespacearmnn_utils.xhtml','');});
80</script>
81<div id="doc-content">
82<!-- window showing the filter options -->
83<div id="MSearchSelectWindow"
84 onmouseover="return searchBox.OnSearchSelectShow()"
85 onmouseout="return searchBox.OnSearchSelectHide()"
86 onkeydown="return searchBox.OnSearchSelectKey(event)">
87</div>
88
89<!-- iframe showing the search results (closed by default) -->
90<div id="MSearchResultsWindow">
91<iframe src="javascript:void(0)" frameborder="0"
92 name="MSearchResults" id="MSearchResults">
93</iframe>
94</div>
95
96<div class="header">
97 <div class="summary">
98<a href="#namespaces">Namespaces</a> &#124;
99<a href="#nested-classes">Classes</a> &#124;
100<a href="#typedef-members">Typedefs</a> &#124;
101<a href="#func-members">Functions</a> &#124;
102<a href="#var-members">Variables</a> </div>
103 <div class="headertitle">
104<div class="title">armnnUtils Namespace Reference</div> </div>
105</div><!--header-->
106<div class="contents">
107<table class="memberdecls">
108<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
109Namespaces</h2></td></tr>
110<tr class="memitem:namespacearmnn_utils_1_1_filesystem"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils_1_1_filesystem.xhtml">Filesystem</a></td></tr>
111<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
112<tr class="memitem:namespacearmnn_utils_1_1_processes"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils_1_1_processes.xhtml">Processes</a></td></tr>
113<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
114<tr class="memitem:namespacearmnn_utils_1_1_sockets"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils_1_1_sockets.xhtml">Sockets</a></td></tr>
115<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
116</table><table class="memberdecls">
117<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
118Classes</h2></td></tr>
119<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_utils_1_1_csv_reader.xhtml">CsvReader</a></td></tr>
120<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
121<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_utils_1_1_csv_row.xhtml">CsvRow</a></td></tr>
122<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
123<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_utils_1_1_data_layout_indexed.xhtml">DataLayoutIndexed</a></td></tr>
124<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the appropriate indexes for Channels, Height and Width based on DataLayout. <a href="classarmnn_utils_1_1_data_layout_indexed.xhtml#details">More...</a><br /></td></tr>
125<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
126<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_utils_1_1_floating_point_converter.xhtml">FloatingPointConverter</a></td></tr>
127<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
128<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_utils_1_1_is_floating_point_iterator.xhtml">IsFloatingPointIterator</a></td></tr>
129<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
130<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_utils_1_1_model_accuracy_checker.xhtml">ModelAccuracyChecker</a></td></tr>
131<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
132<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_utils_1_1_parser_prototxt_fixture.xhtml">ParserPrototxtFixture</a></td></tr>
133<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
134<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_utils_1_1_selective_quantizer.xhtml">SelectiveQuantizer</a></td></tr>
135<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
136<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_utils_1_1_selective_quantizer_3_01armnn_1_1_b_float16_00_01false_01_4.xhtml">SelectiveQuantizer&lt; armnn::BFloat16, false &gt;</a></td></tr>
137<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
138<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_utils_1_1_selective_quantizer_3_01armnn_1_1_half_00_01false_01_4.xhtml">SelectiveQuantizer&lt; armnn::Half, false &gt;</a></td></tr>
139<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
140<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarmnn_utils_1_1_selective_quantizer_3_01_t_00_01false_01_4.xhtml">SelectiveQuantizer&lt; T, false &gt;</a></td></tr>
141<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
142</table><table class="memberdecls">
143<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
144Typedefs</h2></td></tr>
145<tr class="memitem:ab175d8bf2482d5a39c2331d1f0ddcece"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#ab175d8bf2482d5a39c2331d1f0ddcece">LabelCategoryNames</a> = std::vector&lt; std::string &gt;</td></tr>
146<tr class="separator:ab175d8bf2482d5a39c2331d1f0ddcece"><td class="memSeparator" colspan="2">&#160;</td></tr>
147</table><table class="memberdecls">
148<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
149Functions</h2></td></tr>
150<tr class="memitem:a49ba5984d8cde4299d8ef15c9e556587"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a49ba5984d8cde4299d8ef15c9e556587">operator==</a> (const <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> &amp;dataLayout, const <a class="el" href="classarmnn_utils_1_1_data_layout_indexed.xhtml">DataLayoutIndexed</a> &amp;indexed)</td></tr>
151<tr class="memdesc:a49ba5984d8cde4299d8ef15c9e556587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality methods. <a href="#a49ba5984d8cde4299d8ef15c9e556587">More...</a><br /></td></tr>
152<tr class="separator:a49ba5984d8cde4299d8ef15c9e556587"><td class="memSeparator" colspan="2">&#160;</td></tr>
153<tr class="memitem:a0448088ed94f810bd2464f3afd1859f0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a0448088ed94f810bd2464f3afd1859f0">operator==</a> (const <a class="el" href="classarmnn_utils_1_1_data_layout_indexed.xhtml">DataLayoutIndexed</a> &amp;indexed, const <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> &amp;dataLayout)</td></tr>
154<tr class="separator:a0448088ed94f810bd2464f3afd1859f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
155<tr class="memitem:abeaf4f6785039866fd075f4569ba8e84"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#abeaf4f6785039866fd075f4569ba8e84">Permuted</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;srcShape, const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;mappings)</td></tr>
156<tr class="separator:abeaf4f6785039866fd075f4569ba8e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
157<tr class="memitem:a2ba6f6f40c7382b61b00ac02f961ba22"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a2ba6f6f40c7382b61b00ac02f961ba22">Permuted</a> (const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;info, const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;mappings)</td></tr>
158<tr class="separator:a2ba6f6f40c7382b61b00ac02f961ba22"><td class="memSeparator" colspan="2">&#160;</td></tr>
159<tr class="memitem:af3c74017185773dd61d8ca6662d65d43"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#af3c74017185773dd61d8ca6662d65d43">Permute</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;dstShape, const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;mappings, const void *src, void *dst, size_t dataTypeSize)</td></tr>
160<tr class="separator:af3c74017185773dd61d8ca6662d65d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
161<tr class="memitem:ab53d94ea22b51c6bcdf9584644bd67bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#ab53d94ea22b51c6bcdf9584644bd67bb">GetTensorShape</a> (unsigned int numberOfBatches, unsigned int numberOfChannels, unsigned int height, unsigned int width, const <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> dataLayout)</td></tr>
162<tr class="separator:ab53d94ea22b51c6bcdf9584644bd67bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
163<tr class="memitem:acee63cd08da47910fc166a1990988fa8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#acee63cd08da47910fc166a1990988fa8">GetTensorInfo</a> (unsigned int numberOfBatches, unsigned int numberOfChannels, unsigned int height, unsigned int width, const <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> dataLayout, const <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">armnn::DataType</a> dataType)</td></tr>
164<tr class="separator:acee63cd08da47910fc166a1990988fa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
165<tr class="memitem:a1c9097ab13afc54b48c503c6487aaee1"><td class="memItemLeft" align="right" valign="top">std::pair&lt; float, float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a1c9097ab13afc54b48c503c6487aaee1">FindMinMax</a> (<a class="el" href="classarmnn_1_1_i_tensor_handle.xhtml">armnn::ITensorHandle</a> *tensorHandle)</td></tr>
166<tr class="separator:a1c9097ab13afc54b48c503c6487aaee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
167<tr class="memitem:a0d3b1be320610515e0cac8d745d9f8c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a0d3b1be320610515e0cac8d745d9f8c2">ExpandDims</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;tensorShape, int axis)</td></tr>
168<tr class="separator:a0d3b1be320610515e0cac8d745d9f8c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
169<tr class="memitem:af57864f5e03358d14c2988edae912b8b"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#af57864f5e03358d14c2988edae912b8b">GetNumElementsBetween</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;shape, unsigned int firstAxisInclusive, unsigned int lastAxisExclusive)</td></tr>
170<tr class="separator:af57864f5e03358d14c2988edae912b8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
171<tr class="memitem:ac93cb1365b4bcb67df2a3164606096c5"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#ac93cb1365b4bcb67df2a3164606096c5">GetUnsignedAxis</a> (const unsigned int inputDimension, const int axis)</td></tr>
172<tr class="separator:ac93cb1365b4bcb67df2a3164606096c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
173<tr class="memitem:a276aac5f7a8bdc3db4f62203870ca13b"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a276aac5f7a8bdc3db4f62203870ca13b">GetNumElementsAfter</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;shape, unsigned int axis)</td></tr>
174<tr class="separator:a276aac5f7a8bdc3db4f62203870ca13b"><td class="memSeparator" colspan="2">&#160;</td></tr>
175<tr class="memitem:a1826e433f7e6817976a8175b4ef8296c"><td class="memItemLeft" align="right" valign="top">std::pair&lt; unsigned int, std::vector&lt; float &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a1826e433f7e6817976a8175b4ef8296c">GetPerAxisParams</a> (const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;info)</td></tr>
176<tr class="separator:a1826e433f7e6817976a8175b4ef8296c"><td class="memSeparator" colspan="2">&#160;</td></tr>
177<tr class="memitem:a428a9a6ffdf0e8d723b50c038c56c336"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a428a9a6ffdf0e8d723b50c038c56c336">TransposeTensorShape</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;srcShape, const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;mappings)</td></tr>
178<tr class="separator:a428a9a6ffdf0e8d723b50c038c56c336"><td class="memSeparator" colspan="2">&#160;</td></tr>
179<tr class="memitem:a49e3aa80e05abc7b4643aad600e8d827"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a49e3aa80e05abc7b4643aad600e8d827">TransposeTensorShape</a> (const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;info, const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;mappings)</td></tr>
180<tr class="separator:a49e3aa80e05abc7b4643aad600e8d827"><td class="memSeparator" colspan="2">&#160;</td></tr>
181<tr class="memitem:a405d5f966ec992d1717711e5a2d7909d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a405d5f966ec992d1717711e5a2d7909d">Transpose</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;dstShape, const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;mappings, const void *src, void *dst, size_t dataTypeSize)</td></tr>
182<tr class="separator:a405d5f966ec992d1717711e5a2d7909d"><td class="memSeparator" colspan="2">&#160;</td></tr>
183<tr class="memitem:aed9a30e912d18171e93fcf58e0f219cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_utils_1_1_csv_row.xhtml">CsvRow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#aed9a30e912d18171e93fcf58e0f219cb">ParseLine</a> (const std::string &amp;csvLine)</td></tr>
184<tr class="separator:aed9a30e912d18171e93fcf58e0f219cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
185<tr class="memitem:a662b45b5a4d48a01e967c0b28b6a552b"><td class="memTemplParams" colspan="2">template&lt;typename TNodeId , typename TTargetNodes &gt; </td></tr>
186<tr class="memitem:a662b45b5a4d48a01e967c0b28b6a552b"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a662b45b5a4d48a01e967c0b28b6a552b">GraphTopologicalSort</a> (const TTargetNodes &amp;targetNodes, std::function&lt; std::vector&lt; TNodeId &gt;(TNodeId)&gt; getIncomingEdges, std::vector&lt; TNodeId &gt; &amp;outSorted)</td></tr>
187<tr class="separator:a662b45b5a4d48a01e967c0b28b6a552b"><td class="memSeparator" colspan="2">&#160;</td></tr>
188<tr class="memitem:a158a68b143d2564fa1ca047646cf4185"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a158a68b143d2564fa1ca047646cf4185">SplitBy</a> (const std::string &amp;originalString, const std::string &amp;delimiter=&quot; &quot;, bool includeEmptyToken=<a class="el" href="_ref_layer_tests_8cpp.xhtml#af3b727ae5a13ff472892ab8bda2eb1b5">false</a>)</td></tr>
189<tr class="memdesc:a158a68b143d2564fa1ca047646cf4185"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split a string into tokens by a delimiter. <a href="#a158a68b143d2564fa1ca047646cf4185">More...</a><br /></td></tr>
190<tr class="separator:a158a68b143d2564fa1ca047646cf4185"><td class="memSeparator" colspan="2">&#160;</td></tr>
191<tr class="memitem:a14be0364a6fc0975d45e84737dfe21bc"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a14be0364a6fc0975d45e84737dfe21bc">Strip</a> (const std::string &amp;originalString, const std::string &amp;characterSet=&quot; &quot;)</td></tr>
192<tr class="memdesc:a14be0364a6fc0975d45e84737dfe21bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove any preceding and trailing character specified in the characterSet. <a href="#a14be0364a6fc0975d45e84737dfe21bc">More...</a><br /></td></tr>
193<tr class="separator:a14be0364a6fc0975d45e84737dfe21bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
194<tr class="memitem:a523deabeb7d0a884028b35eebfd1cb6c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a523deabeb7d0a884028b35eebfd1cb6c">ProcessConcatInputTensorInfo</a> (<a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;inputTensorInfo, <a class="el" href="structarmnn_1_1_origins_descriptor.xhtml">armnn::OriginsDescriptor</a> &amp;concatDescriptor, const unsigned int &amp;concatAxis, unsigned int inputIndex, unsigned int &amp;mergeDimOrigin)</td></tr>
195<tr class="separator:a523deabeb7d0a884028b35eebfd1cb6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
196<tr class="memitem:aac34adc5b96d744ae53eac580213f855"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#aac34adc5b96d744ae53eac580213f855">CalculateReducedOutputTensoInfo</a> (const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;inputTensorInfo, const std::set&lt; unsigned int &gt; &amp;axisSet, bool keepDims, <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;outputTensorInfo)</td></tr>
197<tr class="memdesc:aac34adc5b96d744ae53eac580213f855"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a tensor info after reducing the dimensions mentioned in axisData. <a href="#aac34adc5b96d744ae53eac580213f855">More...</a><br /></td></tr>
198<tr class="separator:aac34adc5b96d744ae53eac580213f855"><td class="memSeparator" colspan="2">&#160;</td></tr>
199<tr class="memitem:a9300450bab29bb951d6f8755b7d9d3a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a9300450bab29bb951d6f8755b7d9d3a8">CalculateStridedSliceOutputTensorInfo</a> (const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;inputTensorInfo, const <a class="el" href="structarmnn_1_1_strided_slice_descriptor.xhtml">armnn::StridedSliceDescriptor</a> &amp;desc, <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;outputTensorInfo)</td></tr>
200<tr class="memdesc:a9300450bab29bb951d6f8755b7d9d3a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create output tensor info for a StridedSlice operator. <a href="#a9300450bab29bb951d6f8755b7d9d3a8">More...</a><br /></td></tr>
201<tr class="separator:a9300450bab29bb951d6f8755b7d9d3a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
202<tr class="memitem:ab4a89c3d0ff243bdabae3e404248d04a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#ab4a89c3d0ff243bdabae3e404248d04a">ConvertInt32ToOctalString</a> (int value)</td></tr>
203<tr class="memdesc:ab4a89c3d0ff243bdabae3e404248d04a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an int value into the Prototxt octal representation. <a href="#ab4a89c3d0ff243bdabae3e404248d04a">More...</a><br /></td></tr>
204<tr class="separator:ab4a89c3d0ff243bdabae3e404248d04a"><td class="memSeparator" colspan="2">&#160;</td></tr>
205<tr class="memitem:a78f149bb07186307e19e00015a8d151c"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a78f149bb07186307e19e00015a8d151c">ConvertTensorShapeToString</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;shape)</td></tr>
206<tr class="memdesc:a78f149bb07186307e19e00015a8d151c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an TensorShape into Prototxt representation. <a href="#a78f149bb07186307e19e00015a8d151c">More...</a><br /></td></tr>
207<tr class="separator:a78f149bb07186307e19e00015a8d151c"><td class="memSeparator" colspan="2">&#160;</td></tr>
208<tr class="memitem:a21b249bca87a5ad47359abd9ec7acada"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
209<tr class="memitem:a21b249bca87a5ad47359abd9ec7acada"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a21b249bca87a5ad47359abd9ec7acada">SelectiveQuantize</a> (float value, float scale, int32_t offset)</td></tr>
210<tr class="separator:a21b249bca87a5ad47359abd9ec7acada"><td class="memSeparator" colspan="2">&#160;</td></tr>
211<tr class="memitem:a5135dc1ce7a8aeb97623c1a92c5a3543"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
212<tr class="memitem:a5135dc1ce7a8aeb97623c1a92c5a3543"><td class="memTemplItemLeft" align="right" valign="top">float&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a5135dc1ce7a8aeb97623c1a92c5a3543">SelectiveDequantize</a> (T value, float scale, int32_t offset)</td></tr>
213<tr class="separator:a5135dc1ce7a8aeb97623c1a92c5a3543"><td class="memSeparator" colspan="2">&#160;</td></tr>
214<tr class="memitem:afb0aab92dc5b9bc5d7ebe2ea036f3809"><td class="memTemplParams" colspan="2">template&lt;typename T , typename FloatIt , typename std::enable_if&lt; IsFloatingPointIterator&lt; FloatIt &gt;::value, int &gt;::type = 0&gt; </td></tr>
215<tr class="memitem:afb0aab92dc5b9bc5d7ebe2ea036f3809"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#afb0aab92dc5b9bc5d7ebe2ea036f3809">QuantizedVector</a> (FloatIt first, FloatIt last, float qScale, int32_t qOffset)</td></tr>
216<tr class="separator:afb0aab92dc5b9bc5d7ebe2ea036f3809"><td class="memSeparator" colspan="2">&#160;</td></tr>
217<tr class="memitem:ad10541679f7d9740ba7a3c96b9843456"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
218<tr class="memitem:ad10541679f7d9740ba7a3c96b9843456"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#ad10541679f7d9740ba7a3c96b9843456">QuantizedVector</a> (const std::vector&lt; float &gt; &amp;array, float qScale=1.f, int32_t qOffset=0)</td></tr>
219<tr class="separator:ad10541679f7d9740ba7a3c96b9843456"><td class="memSeparator" colspan="2">&#160;</td></tr>
220<tr class="memitem:af29a7b903bf7ae9639ea29bc05ccb289"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
221<tr class="memitem:af29a7b903bf7ae9639ea29bc05ccb289"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#af29a7b903bf7ae9639ea29bc05ccb289">QuantizedVector</a> (std::initializer_list&lt; float &gt; array, float qScale=1.f, int32_t qOffset=0)</td></tr>
222<tr class="separator:af29a7b903bf7ae9639ea29bc05ccb289"><td class="memSeparator" colspan="2">&#160;</td></tr>
223<tr class="memitem:ad5310a199d4969927169ed084b1f6c28"><td class="memTemplParams" colspan="2">template&lt;typename TContainer &gt; </td></tr>
224<tr class="memitem:ad5310a199d4969927169ed084b1f6c28"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.xhtml#aa01bce88f89975a5a031db4cc8861527">armnn::InputTensors</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#ad5310a199d4969927169ed084b1f6c28">MakeInputTensors</a> (const std::vector&lt; <a class="el" href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a> &gt; &amp;inputBindings, const std::vector&lt; <a class="el" href="namespacearmnn.xhtml#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a> &gt; &amp;inputDataContainers)</td></tr>
225<tr class="separator:ad5310a199d4969927169ed084b1f6c28"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<tr class="memitem:ad4efd5a7fa660df5246466d83517220d"><td class="memTemplParams" colspan="2">template&lt;typename TContainer &gt; </td></tr>
227<tr class="memitem:ad4efd5a7fa660df5246466d83517220d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.xhtml#a8f091a512915d1cb29a4ebf13dfc53ea">armnn::OutputTensors</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#ad4efd5a7fa660df5246466d83517220d">MakeOutputTensors</a> (const std::vector&lt; <a class="el" href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a> &gt; &amp;outputBindings, std::vector&lt; <a class="el" href="namespacearmnn.xhtml#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a> &gt; &amp;outputDataContainers)</td></tr>
228<tr class="separator:ad4efd5a7fa660df5246466d83517220d"><td class="memSeparator" colspan="2">&#160;</td></tr>
229<tr class="memitem:a97dc68ae76f04b81c833184724836c9a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a97dc68ae76f04b81c833184724836c9a">CheckValidSize</a> (std::initializer_list&lt; size_t &gt; validInputCounts, size_t actualValue, const char *validExpr, const char *actualExpr, const <a class="el" href="structarmnn_1_1_check_location.xhtml">CheckLocation</a> &amp;location)</td></tr>
230<tr class="separator:a97dc68ae76f04b81c833184724836c9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
231<tr class="memitem:ab075020544612cd151ebdd08db537396"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#ab075020544612cd151ebdd08db537396">NonNegative</a> (const char *expr, int32_t value, const <a class="el" href="structarmnn_1_1_check_location.xhtml">CheckLocation</a> &amp;location)</td></tr>
232<tr class="separator:ab075020544612cd151ebdd08db537396"><td class="memSeparator" colspan="2">&#160;</td></tr>
233<tr class="memitem:a2e0aa273755368a1bf5fc65102df4a92"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a2e0aa273755368a1bf5fc65102df4a92">VerifyInt32</a> (const char *expr, int64_t value, const <a class="el" href="structarmnn_1_1_check_location.xhtml">armnn::CheckLocation</a> &amp;location)</td></tr>
234<tr class="separator:a2e0aa273755368a1bf5fc65102df4a92"><td class="memSeparator" colspan="2">&#160;</td></tr>
235</table><table class="memberdecls">
236<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
237Variables</h2></td></tr>
238<tr class="memitem:a12124184ac6aec018beb98b9715330c7"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a12124184ac6aec018beb98b9715330c7">NHWCToArmNN</a> = { 0, 2, 3, 1 }</td></tr>
239<tr class="separator:a12124184ac6aec018beb98b9715330c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
240<tr class="memitem:a59cbccbfbae7633020d200f8c23fe69e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.xhtml#a59cbccbfbae7633020d200f8c23fe69e">ArmNNToNHWC</a> = { 0, 3, 1, 2 }</td></tr>
241<tr class="separator:a59cbccbfbae7633020d200f8c23fe69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
242</table>
243<h2 class="groupheader">Typedef Documentation</h2>
244<a id="ab175d8bf2482d5a39c2331d1f0ddcece"></a>
245<h2 class="memtitle"><span class="permalink"><a href="#ab175d8bf2482d5a39c2331d1f0ddcece">&#9670;&nbsp;</a></span>LabelCategoryNames</h2>
246
247<div class="memitem">
248<div class="memproto">
249 <table class="memname">
250 <tr>
251 <td class="memname">using <a class="el" href="namespacearmnn_utils.xhtml#ab175d8bf2482d5a39c2331d1f0ddcece">LabelCategoryNames</a> = std::vector&lt;std::string&gt;</td>
252 </tr>
253 </table>
254</div><div class="memdoc">
255
256<p class="definition">Definition at line <a class="el" href="_model_accuracy_checker_8hpp_source.xhtml#l00025">25</a> of file <a class="el" href="_model_accuracy_checker_8hpp_source.xhtml">ModelAccuracyChecker.hpp</a>.</p>
257
258</div>
259</div>
260<h2 class="groupheader">Function Documentation</h2>
261<a id="aac34adc5b96d744ae53eac580213f855"></a>
262<h2 class="memtitle"><span class="permalink"><a href="#aac34adc5b96d744ae53eac580213f855">&#9670;&nbsp;</a></span>CalculateReducedOutputTensoInfo()</h2>
263
264<div class="memitem">
265<div class="memproto">
266 <table class="memname">
267 <tr>
268 <td class="memname">void CalculateReducedOutputTensoInfo </td>
269 <td>(</td>
270 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;&#160;</td>
271 <td class="paramname"><em>inputTensorInfo</em>, </td>
272 </tr>
273 <tr>
274 <td class="paramkey"></td>
275 <td></td>
276 <td class="paramtype">const std::set&lt; unsigned int &gt; &amp;&#160;</td>
277 <td class="paramname"><em>axisSet</em>, </td>
278 </tr>
279 <tr>
280 <td class="paramkey"></td>
281 <td></td>
282 <td class="paramtype">bool&#160;</td>
283 <td class="paramname"><em>keepDims</em>, </td>
284 </tr>
285 <tr>
286 <td class="paramkey"></td>
287 <td></td>
288 <td class="paramtype"><a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;&#160;</td>
289 <td class="paramname"><em>outputTensorInfo</em>&#160;</td>
290 </tr>
291 <tr>
292 <td></td>
293 <td>)</td>
294 <td></td><td></td>
295 </tr>
296 </table>
297</div><div class="memdoc">
298
299<p>Creates a tensor info after reducing the dimensions mentioned in axisData. </p>
300
301<p class="definition">Definition at line <a class="el" href="_parser_helper_8cpp_source.xhtml#l00054">54</a> of file <a class="el" href="_parser_helper_8cpp_source.xhtml">ParserHelper.cpp</a>.</p>
302
303<p class="reference">References <a class="el" href="_tensor_8hpp_source.xhtml#l00095">TensorInfo::GetDataType()</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00092">TensorInfo::GetNumDimensions()</a>, and <a class="el" href="_tensor_8hpp_source.xhtml#l00088">TensorInfo::GetShape()</a>.</p>
304
305<p class="reference">Referenced by <a class="el" href="_parser_helper_test_8cpp_source.xhtml#l00019">BOOST_AUTO_TEST_CASE()</a>, and <a class="el" href="_tf_parser_8cpp_source.xhtml#l02463">armnnTfParser::OutputShapeOfSqueeze()</a>.</p>
306<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::vector&lt;unsigned int&gt; outputShapeVector;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">bool</span> dimensionFound = <span class="keyword">false</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size = 1;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(); ++i)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; dimensionFound = <span class="keyword">false</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> axis: axisSet)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span> (axis == i)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; dimensionFound = <span class="keyword">true</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> (!dimensionFound)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; size *= inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>()[i];</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (keepDims)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; outputShapeVector.push_back(inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>()[i]);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (keepDims)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; outputShapeVector.push_back(1);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (keepDims)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> outputTensorShape(inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(), &amp;outputShapeVector[0]);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; outputTensorInfo = <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(outputTensorShape, inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>());</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; outputTensorInfo = <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>({size}, inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>());</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">armnn::TensorInfo::GetShape</a></div><div class="ttdeci">const TensorShape &amp; GetShape() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00088">Tensor.hpp:88</a></div></div>
307<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00053">Tensor.hpp:53</a></div></div>
308<div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00020">Tensor.hpp:20</a></div></div>
309<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_aea909c7327109228ef618d459015def3"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">armnn::TensorInfo::GetDataType</a></div><div class="ttdeci">DataType GetDataType() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00095">Tensor.hpp:95</a></div></div>
310<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorInfo::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00092">Tensor.hpp:92</a></div></div>
311</div><!-- fragment -->
312</div>
313</div>
314<a id="a9300450bab29bb951d6f8755b7d9d3a8"></a>
315<h2 class="memtitle"><span class="permalink"><a href="#a9300450bab29bb951d6f8755b7d9d3a8">&#9670;&nbsp;</a></span>CalculateStridedSliceOutputTensorInfo()</h2>
316
317<div class="memitem">
318<div class="memproto">
319 <table class="memname">
320 <tr>
321 <td class="memname">void CalculateStridedSliceOutputTensorInfo </td>
322 <td>(</td>
323 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;&#160;</td>
324 <td class="paramname"><em>inputTensorInfo</em>, </td>
325 </tr>
326 <tr>
327 <td class="paramkey"></td>
328 <td></td>
329 <td class="paramtype">const <a class="el" href="structarmnn_1_1_strided_slice_descriptor.xhtml">armnn::StridedSliceDescriptor</a> &amp;&#160;</td>
330 <td class="paramname"><em>desc</em>, </td>
331 </tr>
332 <tr>
333 <td class="paramkey"></td>
334 <td></td>
335 <td class="paramtype"><a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;&#160;</td>
336 <td class="paramname"><em>outputTensorInfo</em>&#160;</td>
337 </tr>
338 <tr>
339 <td></td>
340 <td>)</td>
341 <td></td><td></td>
342 </tr>
343 </table>
344</div><div class="memdoc">
345
346<p>Create output tensor info for a StridedSlice operator. </p>
347
348<p class="definition">Definition at line <a class="el" href="_parser_helper_8cpp_source.xhtml#l00105">105</a> of file <a class="el" href="_parser_helper_8cpp_source.xhtml">ParserHelper.cpp</a>.</p>
349
350<p class="reference">References <a class="el" href="_tensor_8hpp_source.xhtml#l00095">TensorInfo::GetDataType()</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00092">TensorInfo::GetNumDimensions()</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_descriptors_8cpp_source.xhtml#l00358">StridedSliceDescriptor::GetStartForAxis()</a>, <a class="el" href="_descriptors_8cpp_source.xhtml#l00385">StridedSliceDescriptor::GetStopForAxis()</a>, <a class="el" href="_descriptors_8hpp_source.xhtml#l01054">StridedSliceDescriptor::m_ShrinkAxisMask</a>, and <a class="el" href="_descriptors_8hpp_source.xhtml#l01045">StridedSliceDescriptor::m_Stride</a>.</p>
351
352<p class="reference">Referenced by <a class="el" href="_tf_parser_8cpp_source.xhtml#l02463">armnnTfParser::OutputShapeOfSqueeze()</a>.</p>
353<div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>&amp; inputShape = inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; std::vector&lt;unsigned int&gt; outputShapeVector;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(); i++)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span> (desc.<a class="code" href="structarmnn_1_1_strided_slice_descriptor.xhtml#a6d0384878432cfc9652b7ae8bc59506f">m_ShrinkAxisMask</a> &amp; (1 &lt;&lt; i))</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">int</span> stride = desc.<a class="code" href="structarmnn_1_1_strided_slice_descriptor.xhtml#a0d53caff836b84204adbd1c28752a201">m_Stride</a>[i];</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">int</span> start = desc.<a class="code" href="structarmnn_1_1_strided_slice_descriptor.xhtml#add849c1188ee7ff60774755b746aa526">GetStartForAxis</a>(inputShape, i);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">int</span> stop = desc.<a class="code" href="structarmnn_1_1_strided_slice_descriptor.xhtml#afc4731b55776f71af1e14c799c6e6e2c">GetStopForAxis</a>(inputShape, i, start);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">int</span> newSize = stride &gt; 0 ? ((stop - start) + stride - 1) / stride :</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; ((start - stop) - stride - 1) / -stride;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; newSize = std::max(0, newSize);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; outputShapeVector.push_back(static_cast&lt;unsigned int&gt;(newSize));</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> outputTensorShape(inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(), &amp;outputShapeVector[0]);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; outputTensorInfo = <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a>(outputTensorShape), inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>());</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">armnn::TensorInfo::GetShape</a></div><div class="ttdeci">const TensorShape &amp; GetShape() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00088">Tensor.hpp:88</a></div></div>
354<div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_xhtml_a6d0384878432cfc9652b7ae8bc59506f"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.xhtml#a6d0384878432cfc9652b7ae8bc59506f">armnn::StridedSliceDescriptor::m_ShrinkAxisMask</a></div><div class="ttdeci">int32_t m_ShrinkAxisMask</div><div class="ttdoc">Shrink axis mask value. If set, the nth specification shrinks the dimensionality by 1...</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01054">Descriptors.hpp:1054</a></div></div>
355<div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_xhtml_add849c1188ee7ff60774755b746aa526"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.xhtml#add849c1188ee7ff60774755b746aa526">armnn::StridedSliceDescriptor::GetStartForAxis</a></div><div class="ttdeci">int GetStartForAxis(const TensorShape &amp;inputShape, unsigned int axis) const</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00358">Descriptors.cpp:358</a></div></div>
356<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00053">Tensor.hpp:53</a></div></div>
357<div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00020">Tensor.hpp:20</a></div></div>
358<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_aea909c7327109228ef618d459015def3"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">armnn::TensorInfo::GetDataType</a></div><div class="ttdeci">DataType GetDataType() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00095">Tensor.hpp:95</a></div></div>
359<div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_xhtml_a0d53caff836b84204adbd1c28752a201"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.xhtml#a0d53caff836b84204adbd1c28752a201">armnn::StridedSliceDescriptor::m_Stride</a></div><div class="ttdeci">std::vector&lt; int &gt; m_Stride</div><div class="ttdoc">Stride values for the input that will be sliced. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l01045">Descriptors.hpp:1045</a></div></div>
360<div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_xhtml_afc4731b55776f71af1e14c799c6e6e2c"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.xhtml#afc4731b55776f71af1e14c799c6e6e2c">armnn::StridedSliceDescriptor::GetStopForAxis</a></div><div class="ttdeci">int GetStopForAxis(const TensorShape &amp;inputShape, unsigned int axis, int startForAxis) const</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00385">Descriptors.cpp:385</a></div></div>
361<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorInfo::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00092">Tensor.hpp:92</a></div></div>
362</div><!-- fragment -->
363</div>
364</div>
365<a id="a97dc68ae76f04b81c833184724836c9a"></a>
366<h2 class="memtitle"><span class="permalink"><a href="#a97dc68ae76f04b81c833184724836c9a">&#9670;&nbsp;</a></span>CheckValidSize()</h2>
367
368<div class="memitem">
369<div class="memproto">
370 <table class="memname">
371 <tr>
372 <td class="memname">void CheckValidSize </td>
373 <td>(</td>
374 <td class="paramtype">std::initializer_list&lt; size_t &gt;&#160;</td>
375 <td class="paramname"><em>validInputCounts</em>, </td>
376 </tr>
377 <tr>
378 <td class="paramkey"></td>
379 <td></td>
380 <td class="paramtype">size_t&#160;</td>
381 <td class="paramname"><em>actualValue</em>, </td>
382 </tr>
383 <tr>
384 <td class="paramkey"></td>
385 <td></td>
386 <td class="paramtype">const char *&#160;</td>
387 <td class="paramname"><em>validExpr</em>, </td>
388 </tr>
389 <tr>
390 <td class="paramkey"></td>
391 <td></td>
392 <td class="paramtype">const char *&#160;</td>
393 <td class="paramname"><em>actualExpr</em>, </td>
394 </tr>
395 <tr>
396 <td class="paramkey"></td>
397 <td></td>
398 <td class="paramtype">const <a class="el" href="structarmnn_1_1_check_location.xhtml">CheckLocation</a> &amp;&#160;</td>
399 <td class="paramname"><em>location</em>&#160;</td>
400 </tr>
401 <tr>
402 <td></td>
403 <td>)</td>
404 <td></td><td></td>
405 </tr>
406 </table>
407</div><div class="memdoc">
408
409<p class="definition">Definition at line <a class="el" href="_verification_helpers_8cpp_source.xhtml#l00015">15</a> of file <a class="el" href="_verification_helpers_8cpp_source.xhtml">VerificationHelpers.cpp</a>.</p>
410
411<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00029">CheckLocation::AsString()</a>.</p>
412<div class="fragment"><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;{</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">bool</span> isValid = std::any_of(validInputCounts.begin(),</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; validInputCounts.end(),</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; [&amp;actualValue](<span class="keywordtype">size_t</span> x) { <span class="keywordflow">return</span> x == actualValue; } );</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span> (!isValid)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_parse_exception.xhtml">ParseException</a>(</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; boost::str(</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; boost::format(<span class="stringliteral">&quot;%1% = %2% is not valid, not in {%3%}. %4%&quot;</span>) %</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; actualExpr %</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; actualValue %</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; validExpr %</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; location.<a class="code" href="structarmnn_1_1_check_location.xhtml#a5e3562cda960da001597e7dd5679b140">AsString</a>()));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div><div class="ttc" id="structarmnn_1_1_check_location_xhtml_a5e3562cda960da001597e7dd5679b140"><div class="ttname"><a href="structarmnn_1_1_check_location.xhtml#a5e3562cda960da001597e7dd5679b140">armnn::CheckLocation::AsString</a></div><div class="ttdeci">std::string AsString() const</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00029">Exceptions.hpp:29</a></div></div>
413<div class="ttc" id="classarmnn_1_1_parse_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_parse_exception.xhtml">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00092">Exceptions.hpp:92</a></div></div>
414</div><!-- fragment -->
415</div>
416</div>
417<a id="ab4a89c3d0ff243bdabae3e404248d04a"></a>
418<h2 class="memtitle"><span class="permalink"><a href="#ab4a89c3d0ff243bdabae3e404248d04a">&#9670;&nbsp;</a></span>ConvertInt32ToOctalString()</h2>
419
420<div class="memitem">
421<div class="memproto">
422 <table class="memname">
423 <tr>
424 <td class="memname">std::string ConvertInt32ToOctalString </td>
425 <td>(</td>
426 <td class="paramtype">int&#160;</td>
427 <td class="paramname"><em>value</em></td><td>)</td>
428 <td></td>
429 </tr>
430 </table>
431</div><div class="memdoc">
432
433<p>Converts an int value into the Prototxt octal representation. </p>
434
435<p class="definition">Definition at line <a class="el" href="_prototxt_conversions_8cpp_source.xhtml#l00019">19</a> of file <a class="el" href="_prototxt_conversions_8cpp_source.xhtml">PrototxtConversions.cpp</a>.</p>
436
437<p class="reference">Referenced by <a class="el" href="_prototxt_conversions_test_8cpp_source.xhtml#l00013">BOOST_AUTO_TEST_CASE()</a>.</p>
438<div class="fragment"><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;{</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; std::stringstream ss;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; std::string returnString;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4; ++i)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; ss &lt;&lt; <span class="stringliteral">&quot;\\&quot;</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; ss &lt;&lt; std::setw(3) &lt;&lt; std::setfill(&#39;0&#39;) &lt;&lt; std::oct &lt;&lt; ((value &gt;&gt; (i * 8)) &amp; 0xFF);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; }</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; ss &gt;&gt; returnString;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">return</span> returnString;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}</div></div><!-- fragment -->
439</div>
440</div>
441<a id="a78f149bb07186307e19e00015a8d151c"></a>
442<h2 class="memtitle"><span class="permalink"><a href="#a78f149bb07186307e19e00015a8d151c">&#9670;&nbsp;</a></span>ConvertTensorShapeToString()</h2>
443
444<div class="memitem">
445<div class="memproto">
446 <table class="memname">
447 <tr>
448 <td class="memname">std::string ConvertTensorShapeToString </td>
449 <td>(</td>
450 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;&#160;</td>
451 <td class="paramname"><em>shape</em></td><td>)</td>
452 <td></td>
453 </tr>
454 </table>
455</div><div class="memdoc">
456
457<p>Converts an TensorShape into Prototxt representation. </p>
458
459<p class="definition">Definition at line <a class="el" href="_prototxt_conversions_8cpp_source.xhtml#l00034">34</a> of file <a class="el" href="_prototxt_conversions_8cpp_source.xhtml">PrototxtConversions.cpp</a>.</p>
460
461<p class="reference">References <a class="el" href="_tensor_8hpp_source.xhtml#l00043">TensorShape::GetNumDimensions()</a>.</p>
462
463<p class="reference">Referenced by <a class="el" href="_prototxt_conversions_test_8cpp_source.xhtml#l00042">BOOST_AUTO_TEST_CASE()</a>.</p>
464<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; std::stringstream ss;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0 ; i &lt; shape.<a class="code" href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() ; i++)</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; ss &lt;&lt; <span class="stringliteral">&quot;dim {\n&quot;</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; ss &lt;&lt; <span class="stringliteral">&quot;size: &quot;</span> &lt;&lt; std::to_string(shape[i]) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; ss &lt;&lt; <span class="stringliteral">&quot;}\n&quot;</span>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">return</span> ss.str();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorShape::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00043">Tensor.hpp:43</a></div></div>
465</div><!-- fragment -->
466</div>
467</div>
468<a id="a0d3b1be320610515e0cac8d745d9f8c2"></a>
469<h2 class="memtitle"><span class="permalink"><a href="#a0d3b1be320610515e0cac8d745d9f8c2">&#9670;&nbsp;</a></span>ExpandDims()</h2>
470
471<div class="memitem">
472<div class="memproto">
473 <table class="memname">
474 <tr>
475 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a> ExpandDims </td>
476 <td>(</td>
477 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;&#160;</td>
478 <td class="paramname"><em>tensorShape</em>, </td>
479 </tr>
480 <tr>
481 <td class="paramkey"></td>
482 <td></td>
483 <td class="paramtype">int&#160;</td>
484 <td class="paramname"><em>axis</em>&#160;</td>
485 </tr>
486 <tr>
487 <td></td>
488 <td>)</td>
489 <td></td><td></td>
490 </tr>
491 </table>
492</div><div class="memdoc">
493
494<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.xhtml#l00085">85</a> of file <a class="el" href="_tensor_utils_8cpp_source.xhtml">TensorUtils.cpp</a>.</p>
495
496<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00043">TensorShape::GetNumDimensions()</a>, and <a class="el" href="_numeric_cast_8hpp_source.xhtml#l00033">armnn::numeric_cast()</a>.</p>
497
498<p class="reference">Referenced by <a class="el" href="_tensor_utils_test_8cpp_source.xhtml#l00017">BOOST_AUTO_TEST_CASE()</a>.</p>
499<div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> outputDim = tensorShape.<a class="code" href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() + 1;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (axis &lt; -boost::numeric_cast&lt;int&gt;(outputDim) || axis &gt; boost::numeric_cast&lt;int&gt;(tensorShape.<a class="code" href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>()))</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; boost::str(boost::format(<span class="stringliteral">&quot;Invalid expansion axis %1% for %2%D input tensor. %3%&quot;</span>) %</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; axis %</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; tensorShape.<a class="code" href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() %</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> (axis &lt; 0)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; axis = <a class="code" href="namespacearmnn.xhtml#a37fa39012e90d568df7f774cd6d1e956">boost::numeric_cast</a>&lt;<span class="keywordtype">int</span>&gt;(outputDim) + axis;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; std::vector&lt;unsigned int&gt; outputShape;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; tensorShape.<a class="code" href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>(); ++i)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; outputShape.push_back(tensorShape[i]);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; outputShape.insert(outputShape.begin() + axis, 1);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a>(outputDim, outputShape.data());</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00020">Tensor.hpp:20</a></div></div>
500<div class="ttc" id="namespacearmnn_xhtml_a37fa39012e90d568df7f774cd6d1e956"><div class="ttname"><a href="namespacearmnn.xhtml#a37fa39012e90d568df7f774cd6d1e956">armnn::numeric_cast</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_unsigned&lt; Source &gt;::value &amp;&amp;std::is_unsigned&lt; Dest &gt;::value, Dest &gt; numeric_cast(Source source)</div><div class="ttdef"><b>Definition:</b> <a href="_numeric_cast_8hpp_source.xhtml#l00033">NumericCast.hpp:33</a></div></div>
501<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
502<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
503<div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorShape::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00043">Tensor.hpp:43</a></div></div>
504</div><!-- fragment -->
505</div>
506</div>
507<a id="a1c9097ab13afc54b48c503c6487aaee1"></a>
508<h2 class="memtitle"><span class="permalink"><a href="#a1c9097ab13afc54b48c503c6487aaee1">&#9670;&nbsp;</a></span>FindMinMax()</h2>
509
510<div class="memitem">
511<div class="memproto">
512 <table class="memname">
513 <tr>
514 <td class="memname">std::pair&lt; float, float &gt; FindMinMax </td>
515 <td>(</td>
516 <td class="paramtype"><a class="el" href="classarmnn_1_1_i_tensor_handle.xhtml">armnn::ITensorHandle</a> *&#160;</td>
517 <td class="paramname"><em>tensorHandle</em></td><td>)</td>
518 <td></td>
519 </tr>
520 </table>
521</div><div class="memdoc">
522
523<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.xhtml#l00058">58</a> of file <a class="el" href="_tensor_utils_8cpp_source.xhtml">TensorUtils.cpp</a>.</p>
524
525<p class="reference">References <a class="el" href="_tensor_8cpp_source.xhtml#l00106">TensorShape::GetNumElements()</a>, <a class="el" href="classarmnn_1_1_i_tensor_handle.xhtml#affd5aae75cad90f472f96cfd25a13f29">ITensorHandle::GetShape()</a>, <a class="el" href="classarmnn_1_1_i_tensor_handle.xhtml#a9afbc055a017adf1bc38ee137bca6e90">ITensorHandle::Map()</a>, and <a class="el" href="classarmnn_1_1_i_tensor_handle.xhtml#a563609828050f1b3a7868c23f3365923">ITensorHandle::Unmap()</a>.</p>
526
527<p class="reference">Referenced by <a class="el" href="_network_quantizer_8cpp_source.xhtml#l00060">NetworkQuantizer::Refine()</a>.</p>
528<div class="fragment"><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">auto</span> tensor_data = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">float</span> *<span class="keyword">&gt;</span>(tensorHandle-&gt;<a class="code" href="classarmnn_1_1_i_tensor_handle.xhtml#a9afbc055a017adf1bc38ee137bca6e90">Map</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">auto</span> tensor_size = tensorHandle-&gt;<a class="code" href="classarmnn_1_1_i_tensor_handle.xhtml#affd5aae75cad90f472f96cfd25a13f29">GetShape</a>().<a class="code" href="classarmnn_1_1_tensor_shape.xhtml#a8846406ac37fbd2204f0be16ee05d5b7">GetNumElements</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Set min/max initially to first value in tensor</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">float</span> min = tensor_data[0];</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">float</span> max = tensor_data[0];</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Loop over rest of tensor and update min/max if necessary</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> val = 1; val &lt; tensor_size; val++)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span> (tensor_data[val] &lt; min)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; min = tensor_data[val];</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (tensor_data[val] &gt; max)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; max = tensor_data[val];</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; tensorHandle-&gt;<a class="code" href="classarmnn_1_1_i_tensor_handle.xhtml#a563609828050f1b3a7868c23f3365923">Unmap</a>();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> std::make_pair(min, max);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml_a8846406ac37fbd2204f0be16ee05d5b7"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml#a8846406ac37fbd2204f0be16ee05d5b7">armnn::TensorShape::GetNumElements</a></div><div class="ttdeci">unsigned int GetNumElements() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8cpp_source.xhtml#l00106">Tensor.cpp:106</a></div></div>
529<div class="ttc" id="classarmnn_1_1_i_tensor_handle_xhtml_affd5aae75cad90f472f96cfd25a13f29"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle.xhtml#affd5aae75cad90f472f96cfd25a13f29">armnn::ITensorHandle::GetShape</a></div><div class="ttdeci">virtual TensorShape GetShape() const =0</div><div class="ttdoc">Get the number of elements for each dimension ordered from slowest iterating dimension to fastest ite...</div></div>
530<div class="ttc" id="classarmnn_1_1_i_tensor_handle_xhtml_a9afbc055a017adf1bc38ee137bca6e90"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle.xhtml#a9afbc055a017adf1bc38ee137bca6e90">armnn::ITensorHandle::Map</a></div><div class="ttdeci">virtual const void * Map(bool blocking=true) const =0</div><div class="ttdoc">Map the tensor data for access. </div></div>
531<div class="ttc" id="classarmnn_1_1_i_tensor_handle_xhtml_a563609828050f1b3a7868c23f3365923"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle.xhtml#a563609828050f1b3a7868c23f3365923">armnn::ITensorHandle::Unmap</a></div><div class="ttdeci">virtual void Unmap() const =0</div><div class="ttdoc">Unmap the tensor data. </div></div>
532</div><!-- fragment -->
533</div>
534</div>
535<a id="a276aac5f7a8bdc3db4f62203870ca13b"></a>
536<h2 class="memtitle"><span class="permalink"><a href="#a276aac5f7a8bdc3db4f62203870ca13b">&#9670;&nbsp;</a></span>GetNumElementsAfter()</h2>
537
538<div class="memitem">
539<div class="memproto">
540 <table class="memname">
541 <tr>
542 <td class="memname">unsigned int GetNumElementsAfter </td>
543 <td>(</td>
544 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;&#160;</td>
545 <td class="paramname"><em>shape</em>, </td>
546 </tr>
547 <tr>
548 <td class="paramkey"></td>
549 <td></td>
550 <td class="paramtype">unsigned int&#160;</td>
551 <td class="paramname"><em>axis</em>&#160;</td>
552 </tr>
553 <tr>
554 <td></td>
555 <td>)</td>
556 <td></td><td></td>
557 </tr>
558 </table>
559</div><div class="memdoc">
560
561<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.xhtml#l00140">140</a> of file <a class="el" href="_tensor_utils_8cpp_source.xhtml">TensorUtils.cpp</a>.</p>
562
563<p class="reference">References <a class="el" href="_tensor_8hpp_source.xhtml#l00043">TensorShape::GetNumDimensions()</a>.</p>
564
565<p class="reference">Referenced by <a class="el" href="_tensor_utils_8cpp_source.xhtml#l00152">GetPerAxisParams()</a>.</p>
566<div class="fragment"><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numDim = shape.<a class="code" href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; BOOST_ASSERT(axis &lt;= numDim - 1);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count = 1;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = axis; i &lt; numDim; i++)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; count *= shape[i];</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> count;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorShape::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00043">Tensor.hpp:43</a></div></div>
567</div><!-- fragment -->
568</div>
569</div>
570<a id="af57864f5e03358d14c2988edae912b8b"></a>
571<h2 class="memtitle"><span class="permalink"><a href="#af57864f5e03358d14c2988edae912b8b">&#9670;&nbsp;</a></span>GetNumElementsBetween()</h2>
572
573<div class="memitem">
574<div class="memproto">
575 <table class="memname">
576 <tr>
577 <td class="memname">unsigned int GetNumElementsBetween </td>
578 <td>(</td>
579 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;&#160;</td>
580 <td class="paramname"><em>shape</em>, </td>
581 </tr>
582 <tr>
583 <td class="paramkey"></td>
584 <td></td>
585 <td class="paramtype">unsigned int&#160;</td>
586 <td class="paramname"><em>firstAxisInclusive</em>, </td>
587 </tr>
588 <tr>
589 <td class="paramkey"></td>
590 <td></td>
591 <td class="paramtype">unsigned int&#160;</td>
592 <td class="paramname"><em>lastAxisExclusive</em>&#160;</td>
593 </tr>
594 <tr>
595 <td></td>
596 <td>)</td>
597 <td></td><td></td>
598 </tr>
599 </table>
600</div><div class="memdoc">
601
602<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.xhtml#l00113">113</a> of file <a class="el" href="_tensor_utils_8cpp_source.xhtml">TensorUtils.cpp</a>.</p>
603
604<p class="reference">References <a class="el" href="_tensor_8hpp_source.xhtml#l00043">TensorShape::GetNumDimensions()</a>.</p>
605
606<p class="reference">Referenced by <a class="el" href="_arg_min_max_8cpp_source.xhtml#l00015">armnn::ArgMinMax()</a>, <a class="el" href="_log_softmax_8cpp_source.xhtml#l00030">armnn::LogSoftmax()</a>, and <a class="el" href="backends_2reference_2workloads_2_softmax_8cpp_source.xhtml#l00017">armnn::Softmax()</a>.</p>
607<div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; BOOST_ASSERT(firstAxisInclusive &lt;= lastAxisExclusive);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; BOOST_ASSERT(lastAxisExclusive &lt;= shape.<a class="code" href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>());</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count = 1;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = firstAxisInclusive; i &lt; lastAxisExclusive; i++)</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; count *= shape[i];</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> count;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorShape::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00043">Tensor.hpp:43</a></div></div>
608</div><!-- fragment -->
609</div>
610</div>
611<a id="a1826e433f7e6817976a8175b4ef8296c"></a>
612<h2 class="memtitle"><span class="permalink"><a href="#a1826e433f7e6817976a8175b4ef8296c">&#9670;&nbsp;</a></span>GetPerAxisParams()</h2>
613
614<div class="memitem">
615<div class="memproto">
616 <table class="memname">
617 <tr>
618 <td class="memname">std::pair&lt; unsigned int, std::vector&lt; float &gt; &gt; GetPerAxisParams </td>
619 <td>(</td>
620 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;&#160;</td>
621 <td class="paramname"><em>info</em></td><td>)</td>
622 <td></td>
623 </tr>
624 </table>
625</div><div class="memdoc">
626
627<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.xhtml#l00152">152</a> of file <a class="el" href="_tensor_utils_8cpp_source.xhtml">TensorUtils.cpp</a>.</p>
628
629<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00095">TensorInfo::GetDataType()</a>, <a class="el" href="_types_utils_8hpp_source.xhtml#l00168">armnn::GetDataTypeName()</a>, <a class="el" href="_tensor_utils_8cpp_source.xhtml#l00140">GetNumElementsAfter()</a>, <a class="el" href="_tensor_8cpp_source.xhtml#l00280">TensorInfo::GetQuantizationDim()</a>, <a class="el" href="_tensor_8cpp_source.xhtml#l00237">TensorInfo::GetQuantizationScales()</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_tensor_8cpp_source.xhtml#l00232">TensorInfo::HasPerAxisQuantization()</a>, and <a class="el" href="_optional_8hpp_source.xhtml#l00146">OptionalReferenceSwitch&lt; IsReference, T &gt;::value()</a>.</p>
630
631<p class="reference">Referenced by <a class="el" href="_decoders_8hpp_source.xhtml#l00070">armnn::MakeDecoder()</a>, and <a class="el" href="_encoders_8hpp_source.xhtml#l00021">armnn::MakeEncoder()</a>.</p>
632<div class="fragment"><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">const</span> std::vector&lt;float&gt;&amp; scales = info.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8bc11f1fa23ef42532f9fdd04d355270">GetQuantizationScales</a>();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classarmnn_1_1_optional.xhtml">armnn::Optional&lt;unsigned int&gt;</a> quantizationDim = info.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8b8fc85ce966c035d789cf22db5088a1">GetQuantizationDim</a>();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (!info.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#ab85cd8cc10c96a7c99c14042c251fc48">HasPerAxisQuantization</a>())</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a>(</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; std::string(<span class="stringliteral">&quot;Per-axis quantization params not set for tensor of type &quot;</span>) +</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="namespacearmnn.xhtml#a81b5ff8545adad19a1c9d4ca076d552c">armnn::GetDataTypeName</a>(info.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">GetDataType</a>()), <a class="code" href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>());</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> axisFactor = <a class="code" href="namespacearmnn_utils.xhtml#a276aac5f7a8bdc3db4f62203870ca13b">GetNumElementsAfter</a>(info.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>(), quantizationDim.<a class="code" href="classarmnn_1_1_optional_reference_switch.xhtml#a77c7d528ac063d870b8c8426ec81c1c3">value</a>());</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> { axisFactor, scales };</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">armnn::TensorInfo::GetShape</a></div><div class="ttdeci">const TensorShape &amp; GetShape() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00088">Tensor.hpp:88</a></div></div>
633<div class="ttc" id="classarmnn_1_1_optional_xhtml"><div class="ttname"><a href="classarmnn_1_1_optional.xhtml">armnn::Optional&lt; unsigned int &gt;</a></div></div>
634<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_ab85cd8cc10c96a7c99c14042c251fc48"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#ab85cd8cc10c96a7c99c14042c251fc48">armnn::TensorInfo::HasPerAxisQuantization</a></div><div class="ttdeci">bool HasPerAxisQuantization() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8cpp_source.xhtml#l00232">Tensor.cpp:232</a></div></div>
635<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a8b8fc85ce966c035d789cf22db5088a1"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a8b8fc85ce966c035d789cf22db5088a1">armnn::TensorInfo::GetQuantizationDim</a></div><div class="ttdeci">Optional&lt; unsigned int &gt; GetQuantizationDim() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8cpp_source.xhtml#l00280">Tensor.cpp:280</a></div></div>
636<div class="ttc" id="classarmnn_1_1_optional_reference_switch_xhtml_a77c7d528ac063d870b8c8426ec81c1c3"><div class="ttname"><a href="classarmnn_1_1_optional_reference_switch.xhtml#a77c7d528ac063d870b8c8426ec81c1c3">armnn::OptionalReferenceSwitch::value</a></div><div class="ttdeci">const T &amp; value() const</div><div class="ttdef"><b>Definition:</b> <a href="_optional_8hpp_source.xhtml#l00146">Optional.hpp:146</a></div></div>
637<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a8bc11f1fa23ef42532f9fdd04d355270"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a8bc11f1fa23ef42532f9fdd04d355270">armnn::TensorInfo::GetQuantizationScales</a></div><div class="ttdeci">std::vector&lt; float &gt; GetQuantizationScales() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8cpp_source.xhtml#l00237">Tensor.cpp:237</a></div></div>
638<div class="ttc" id="namespacearmnn_xhtml_a81b5ff8545adad19a1c9d4ca076d552c"><div class="ttname"><a href="namespacearmnn.xhtml#a81b5ff8545adad19a1c9d4ca076d552c">armnn::GetDataTypeName</a></div><div class="ttdeci">constexpr const char * GetDataTypeName(DataType dataType)</div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8hpp_source.xhtml#l00168">TypesUtils.hpp:168</a></div></div>
639<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_aea909c7327109228ef618d459015def3"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#aea909c7327109228ef618d459015def3">armnn::TensorInfo::GetDataType</a></div><div class="ttdeci">DataType GetDataType() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00095">Tensor.hpp:95</a></div></div>
640<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
641<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
642<div class="ttc" id="namespacearmnn_utils_xhtml_a276aac5f7a8bdc3db4f62203870ca13b"><div class="ttname"><a href="namespacearmnn_utils.xhtml#a276aac5f7a8bdc3db4f62203870ca13b">armnnUtils::GetNumElementsAfter</a></div><div class="ttdeci">unsigned int GetNumElementsAfter(const armnn::TensorShape &amp;shape, unsigned int axis)</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_utils_8cpp_source.xhtml#l00140">TensorUtils.cpp:140</a></div></div>
643</div><!-- fragment -->
644</div>
645</div>
646<a id="acee63cd08da47910fc166a1990988fa8"></a>
647<h2 class="memtitle"><span class="permalink"><a href="#acee63cd08da47910fc166a1990988fa8">&#9670;&nbsp;</a></span>GetTensorInfo()</h2>
648
649<div class="memitem">
650<div class="memproto">
651 <table class="memname">
652 <tr>
653 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a> GetTensorInfo </td>
654 <td>(</td>
655 <td class="paramtype">unsigned int&#160;</td>
656 <td class="paramname"><em>numberOfBatches</em>, </td>
657 </tr>
658 <tr>
659 <td class="paramkey"></td>
660 <td></td>
661 <td class="paramtype">unsigned int&#160;</td>
662 <td class="paramname"><em>numberOfChannels</em>, </td>
663 </tr>
664 <tr>
665 <td class="paramkey"></td>
666 <td></td>
667 <td class="paramtype">unsigned int&#160;</td>
668 <td class="paramname"><em>height</em>, </td>
669 </tr>
670 <tr>
671 <td class="paramkey"></td>
672 <td></td>
673 <td class="paramtype">unsigned int&#160;</td>
674 <td class="paramname"><em>width</em>, </td>
675 </tr>
676 <tr>
677 <td class="paramkey"></td>
678 <td></td>
679 <td class="paramtype">const <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a>&#160;</td>
680 <td class="paramname"><em>dataLayout</em>, </td>
681 </tr>
682 <tr>
683 <td class="paramkey"></td>
684 <td></td>
685 <td class="paramtype">const <a class="el" href="namespacearmnn.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">armnn::DataType</a>&#160;</td>
686 <td class="paramname"><em>dataType</em>&#160;</td>
687 </tr>
688 <tr>
689 <td></td>
690 <td>)</td>
691 <td></td><td></td>
692 </tr>
693 </table>
694</div><div class="memdoc">
695
696<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.xhtml#l00038">38</a> of file <a class="el" href="_tensor_utils_8cpp_source.xhtml">TensorUtils.cpp</a>.</p>
697
698<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">armnn::NCHW</a>, and <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">armnn::NHWC</a>.</p>
699
700<p class="reference">Referenced by <a class="el" href="_caffe_parser_8cpp_source.xhtml#l00611">CaffeParserBase::AddConvLayerWithDepthwiseConv()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l00419">CaffeParserBase::AddConvLayerWithSplits()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.xhtml#l01381">DepthwiseConvolution2dAsymmetricTestImpl()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.xhtml#l01518">DepthwiseConvolution2dDepthMul1TestImpl()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.xhtml#l01671">DepthwiseConvolution2dTestImpl()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l01338">CaffeParserBase::ParseBatchNormLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l01277">CaffeParserBase::ParseConcatLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l00701">CaffeParserBase::ParseConvLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l01230">CaffeParserBase::ParseEltwiseLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l01134">CaffeParserBase::ParseInnerProductLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l01027">CaffeParserBase::ParseLRNLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l00883">CaffeParserBase::ParsePoolingLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l01001">CaffeParserBase::ParseReluLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l01404">CaffeParserBase::ParseScaleLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.xhtml#l01208">CaffeParserBase::ParseSoftmaxLayer()</a>, and <a class="el" href="_conv2d_test_impl_8cpp_source.xhtml#l00201">SimpleConvolution2dTestImpl()</a>.</p>
701<div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">switch</span> (dataLayout)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">case</span> DataLayout::NCHW:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>({numberOfBatches, numberOfChannels, height, width}, dataType);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">case</span> DataLayout::NHWC:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_tensor_info.xhtml">TensorInfo</a>({numberOfBatches, height, width, numberOfChannels}, dataType);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(<span class="stringliteral">&quot;Unknown data layout [&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; + std::to_string(static_cast&lt;int&gt;(dataLayout)) +</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="stringliteral">&quot;]&quot;</span>, <a class="code" href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>());</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00053">Tensor.hpp:53</a></div></div>
702<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
703<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
704</div><!-- fragment -->
705</div>
706</div>
707<a id="ab53d94ea22b51c6bcdf9584644bd67bb"></a>
708<h2 class="memtitle"><span class="permalink"><a href="#ab53d94ea22b51c6bcdf9584644bd67bb">&#9670;&nbsp;</a></span>GetTensorShape()</h2>
709
710<div class="memitem">
711<div class="memproto">
712 <table class="memname">
713 <tr>
714 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a> GetTensorShape </td>
715 <td>(</td>
716 <td class="paramtype">unsigned int&#160;</td>
717 <td class="paramname"><em>numberOfBatches</em>, </td>
718 </tr>
719 <tr>
720 <td class="paramkey"></td>
721 <td></td>
722 <td class="paramtype">unsigned int&#160;</td>
723 <td class="paramname"><em>numberOfChannels</em>, </td>
724 </tr>
725 <tr>
726 <td class="paramkey"></td>
727 <td></td>
728 <td class="paramtype">unsigned int&#160;</td>
729 <td class="paramname"><em>height</em>, </td>
730 </tr>
731 <tr>
732 <td class="paramkey"></td>
733 <td></td>
734 <td class="paramtype">unsigned int&#160;</td>
735 <td class="paramname"><em>width</em>, </td>
736 </tr>
737 <tr>
738 <td class="paramkey"></td>
739 <td></td>
740 <td class="paramtype">const <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a>&#160;</td>
741 <td class="paramname"><em>dataLayout</em>&#160;</td>
742 </tr>
743 <tr>
744 <td></td>
745 <td>)</td>
746 <td></td><td></td>
747 </tr>
748 </table>
749</div><div class="memdoc">
750
751<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.xhtml#l00019">19</a> of file <a class="el" href="_tensor_utils_8cpp_source.xhtml">TensorUtils.cpp</a>.</p>
752
753<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">armnn::NCHW</a>, and <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">armnn::NHWC</a>.</p>
754<div class="fragment"><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">switch</span> (dataLayout)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">case</span> DataLayout::NCHW:</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a>({numberOfBatches, numberOfChannels, height, width});</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">case</span> DataLayout::NHWC:</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a>({numberOfBatches, height, width, numberOfChannels});</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(<span class="stringliteral">&quot;Unknown data layout [&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; + std::to_string(static_cast&lt;int&gt;(dataLayout)) +</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="stringliteral">&quot;]&quot;</span>, <a class="code" href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>());</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00020">Tensor.hpp:20</a></div></div>
755<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
756<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
757</div><!-- fragment -->
758</div>
759</div>
760<a id="ac93cb1365b4bcb67df2a3164606096c5"></a>
761<h2 class="memtitle"><span class="permalink"><a href="#ac93cb1365b4bcb67df2a3164606096c5">&#9670;&nbsp;</a></span>GetUnsignedAxis()</h2>
762
763<div class="memitem">
764<div class="memproto">
765 <table class="memname">
766 <tr>
767 <td class="memname">unsigned int GetUnsignedAxis </td>
768 <td>(</td>
769 <td class="paramtype">const unsigned int&#160;</td>
770 <td class="paramname"><em>inputDimension</em>, </td>
771 </tr>
772 <tr>
773 <td class="paramkey"></td>
774 <td></td>
775 <td class="paramtype">const int&#160;</td>
776 <td class="paramname"><em>axis</em>&#160;</td>
777 </tr>
778 <tr>
779 <td></td>
780 <td>)</td>
781 <td></td><td></td>
782 </tr>
783 </table>
784</div><div class="memdoc">
785
786<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.xhtml#l00127">127</a> of file <a class="el" href="_tensor_utils_8cpp_source.xhtml">TensorUtils.cpp</a>.</p>
787
788<p class="reference">References <a class="el" href="_numeric_cast_8hpp_source.xhtml#l00033">armnn::numeric_cast()</a>.</p>
789
790<p class="reference">Referenced by <a class="el" href="_arg_min_max_8cpp_source.xhtml#l00015">armnn::ArgMinMax()</a>, <a class="el" href="_cl_arg_min_max_workload_8cpp_source.xhtml#l00054">ClArgMinMaxWorkload::ClArgMinMaxWorkload()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.xhtml#l00035">ArgMinMaxLayer::InferOutputShapes()</a>, <a class="el" href="_neon_arg_min_max_workload_8cpp_source.xhtml#l00053">NeonArgMinMaxWorkload::NeonArgMinMaxWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.xhtml#l00617">ArgMinMaxQueueDescriptor::Validate()</a>.</p>
791<div class="fragment"><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; BOOST_ASSERT_MSG(axis &lt; boost::numeric_cast&lt;int&gt;(inputDimension),</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="stringliteral">&quot;Required axis index greater than number of dimensions.&quot;</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; BOOST_ASSERT_MSG(axis &gt;= -boost::numeric_cast&lt;int&gt;(inputDimension),</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="stringliteral">&quot;Required axis index lower than negative of the number of dimensions&quot;</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uAxis = axis &lt; 0 ?</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; inputDimension - <a class="code" href="namespacearmnn.xhtml#a37fa39012e90d568df7f774cd6d1e956">boost::numeric_cast</a>&lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&gt;(<a class="code" href="structarmnn_1_1abs.xhtml">abs</a>(axis))</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; : boost::numeric_cast&lt;unsigned int&gt;(axis);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> uAxis;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}</div><div class="ttc" id="structarmnn_1_1abs_xhtml"><div class="ttname"><a href="structarmnn_1_1abs.xhtml">armnn::abs</a></div><div class="ttdef"><b>Definition:</b> <a href="_abs_8hpp_source.xhtml#l00013">Abs.hpp:13</a></div></div>
792<div class="ttc" id="namespacearmnn_xhtml_a37fa39012e90d568df7f774cd6d1e956"><div class="ttname"><a href="namespacearmnn.xhtml#a37fa39012e90d568df7f774cd6d1e956">armnn::numeric_cast</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_unsigned&lt; Source &gt;::value &amp;&amp;std::is_unsigned&lt; Dest &gt;::value, Dest &gt; numeric_cast(Source source)</div><div class="ttdef"><b>Definition:</b> <a href="_numeric_cast_8hpp_source.xhtml#l00033">NumericCast.hpp:33</a></div></div>
793</div><!-- fragment -->
794</div>
795</div>
796<a id="a662b45b5a4d48a01e967c0b28b6a552b"></a>
797<h2 class="memtitle"><span class="permalink"><a href="#a662b45b5a4d48a01e967c0b28b6a552b">&#9670;&nbsp;</a></span>GraphTopologicalSort()</h2>
798
799<div class="memitem">
800<div class="memproto">
801 <table class="memname">
802 <tr>
803 <td class="memname">bool armnnUtils::GraphTopologicalSort </td>
804 <td>(</td>
805 <td class="paramtype">const TTargetNodes &amp;&#160;</td>
806 <td class="paramname"><em>targetNodes</em>, </td>
807 </tr>
808 <tr>
809 <td class="paramkey"></td>
810 <td></td>
811 <td class="paramtype">std::function&lt; std::vector&lt; TNodeId &gt;(TNodeId)&gt;&#160;</td>
812 <td class="paramname"><em>getIncomingEdges</em>, </td>
813 </tr>
814 <tr>
815 <td class="paramkey"></td>
816 <td></td>
817 <td class="paramtype">std::vector&lt; TNodeId &gt; &amp;&#160;</td>
818 <td class="paramname"><em>outSorted</em>&#160;</td>
819 </tr>
820 <tr>
821 <td></td>
822 <td>)</td>
823 <td></td><td></td>
824 </tr>
825 </table>
826</div><div class="memdoc">
827
828<p class="definition">Definition at line <a class="el" href="_graph_topological_sort_8hpp_source.xhtml#l00111">111</a> of file <a class="el" href="_graph_topological_sort_8hpp_source.xhtml">GraphTopologicalSort.hpp</a>.</p>
829<div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; outSorted.clear();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; std::map&lt;TNodeId, NodeState&gt; nodeStates;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">for</span> (TNodeId targetNode : targetNodes)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (!TopologicallySort(targetNode, getIncomingEdges, outSorted, nodeStates))</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div></div><!-- fragment -->
830</div>
831</div>
832<a id="ad5310a199d4969927169ed084b1f6c28"></a>
833<h2 class="memtitle"><span class="permalink"><a href="#ad5310a199d4969927169ed084b1f6c28">&#9670;&nbsp;</a></span>MakeInputTensors()</h2>
834
835<div class="memitem">
836<div class="memproto">
837<table class="mlabels">
838 <tr>
839 <td class="mlabels-left">
840 <table class="memname">
841 <tr>
842 <td class="memname"><a class="el" href="namespacearmnn.xhtml#aa01bce88f89975a5a031db4cc8861527">armnn::InputTensors</a> armnnUtils::MakeInputTensors </td>
843 <td>(</td>
844 <td class="paramtype">const std::vector&lt; <a class="el" href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a> &gt; &amp;&#160;</td>
845 <td class="paramname"><em>inputBindings</em>, </td>
846 </tr>
847 <tr>
848 <td class="paramkey"></td>
849 <td></td>
850 <td class="paramtype">const std::vector&lt; <a class="el" href="namespacearmnn.xhtml#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a> &gt; &amp;&#160;</td>
851 <td class="paramname"><em>inputDataContainers</em>&#160;</td>
852 </tr>
853 <tr>
854 <td></td>
855 <td>)</td>
856 <td></td><td></td>
857 </tr>
858 </table>
859 </td>
860 <td class="mlabels-right">
861<span class="mlabels"><span class="mlabel">inline</span></span> </td>
862 </tr>
863</table>
864</div><div class="memdoc">
865
866<p class="definition">Definition at line <a class="el" href="_tensor_i_o_utils_8hpp_source.xhtml#l00017">17</a> of file <a class="el" href="_tensor_i_o_utils_8hpp_source.xhtml">TensorIOUtils.hpp</a>.</p>
867
868<p class="reference">Referenced by <a class="el" href="_inference_model_8hpp_source.xhtml#l00550">InferenceModel&lt; IParser, TDataType &gt;::GetAllQuantizationParams()</a>, <a class="el" href="_model_accuracy_tool-_armnn_8cpp_source.xhtml#l00049">main()</a>, and <a class="el" href="_inference_model_8hpp_source.xhtml#l00461">InferenceModel&lt; IParser, TDataType &gt;::Run()</a>.</p>
869<div class="fragment"><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;{</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="code" href="namespacearmnn.xhtml#aa01bce88f89975a5a031db4cc8861527">armnn::InputTensors</a> inputTensors;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> numInputs = inputBindings.size();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">if</span> (numInputs != inputDataContainers.size())</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_exception.xhtml">armnn::Exception</a>(boost::str(boost::format(<span class="stringliteral">&quot;The number of inputs does not match number of &quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="stringliteral">&quot;tensor data containers: %1% != %2%&quot;</span>)</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; % numInputs</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; % inputDataContainers.size()));</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; }</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; numInputs; i++)</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a>&amp; inputBinding = inputBindings[i];</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">const</span> <a class="code" href="_model_accuracy_checker_test_8cpp.xhtml#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a>&amp; inputData = inputDataContainers[i];</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; boost::apply_visitor([&amp;](<span class="keyword">auto</span>&amp;&amp; value)</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">if</span> (value.size() != inputBinding.second.GetNumElements())</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_exception.xhtml">armnn::Exception</a>(boost::str(boost::format(<span class="stringliteral">&quot;The input tensor has incorrect size &quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="stringliteral">&quot;(expected %1% got %2%)&quot;</span>)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; % inputBinding.second.GetNumElements()</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; % value.size()));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classarmnn_1_1_const_tensor.xhtml">armnn::ConstTensor</a> inputTensor(inputBinding.second, value.data());</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; inputTensors.push_back(std::make_pair(inputBinding.first, inputTensor));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; },</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; inputData);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> inputTensors;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="ttc" id="namespacearmnn_xhtml_aa01bce88f89975a5a031db4cc8861527"><div class="ttname"><a href="namespacearmnn.xhtml#aa01bce88f89975a5a031db4cc8861527">armnn::InputTensors</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; LayerBindingId, class ConstTensor &gt; &gt; InputTensors</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00225">Tensor.hpp:225</a></div></div>
870<div class="ttc" id="_model_accuracy_checker_test_8cpp_xhtml_a9eb69ebdaf4ceb8014e7c8a540266100"><div class="ttname"><a href="_model_accuracy_checker_test_8cpp.xhtml#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a></div><div class="ttdeci">boost::variant&lt; std::vector&lt; float &gt;, std::vector&lt; int &gt;, std::vector&lt; unsigned char &gt; &gt; TContainer</div><div class="ttdef"><b>Definition:</b> <a href="_model_accuracy_checker_test_8cpp_source.xhtml#l00059">ModelAccuracyCheckerTest.cpp:59</a></div></div>
871<div class="ttc" id="classarmnn_1_1_const_tensor_xhtml"><div class="ttname"><a href="classarmnn_1_1_const_tensor.xhtml">armnn::ConstTensor</a></div><div class="ttdoc">A tensor defined by a TensorInfo (shape and data type) and an immutable backing store. </div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00199">Tensor.hpp:199</a></div></div>
872<div class="ttc" id="namespacearmnn_xhtml_a280670a263dc4fd40491f6d0a2737f44"><div class="ttname"><a href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a></div><div class="ttdeci">std::pair&lt; armnn::LayerBindingId, armnn::TensorInfo &gt; BindingPointInfo</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00146">Tensor.hpp:146</a></div></div>
873<div class="ttc" id="classarmnn_1_1_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_exception.xhtml">armnn::Exception</a></div><div class="ttdoc">Base class for all ArmNN exceptions so that users can filter to just those. </div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00046">Exceptions.hpp:46</a></div></div>
874</div><!-- fragment -->
875</div>
876</div>
877<a id="ad4efd5a7fa660df5246466d83517220d"></a>
878<h2 class="memtitle"><span class="permalink"><a href="#ad4efd5a7fa660df5246466d83517220d">&#9670;&nbsp;</a></span>MakeOutputTensors()</h2>
879
880<div class="memitem">
881<div class="memproto">
882<table class="mlabels">
883 <tr>
884 <td class="mlabels-left">
885 <table class="memname">
886 <tr>
887 <td class="memname"><a class="el" href="namespacearmnn.xhtml#a8f091a512915d1cb29a4ebf13dfc53ea">armnn::OutputTensors</a> armnnUtils::MakeOutputTensors </td>
888 <td>(</td>
889 <td class="paramtype">const std::vector&lt; <a class="el" href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a> &gt; &amp;&#160;</td>
890 <td class="paramname"><em>outputBindings</em>, </td>
891 </tr>
892 <tr>
893 <td class="paramkey"></td>
894 <td></td>
895 <td class="paramtype">std::vector&lt; <a class="el" href="namespacearmnn.xhtml#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a> &gt; &amp;&#160;</td>
896 <td class="paramname"><em>outputDataContainers</em>&#160;</td>
897 </tr>
898 <tr>
899 <td></td>
900 <td>)</td>
901 <td></td><td></td>
902 </tr>
903 </table>
904 </td>
905 <td class="mlabels-right">
906<span class="mlabels"><span class="mlabel">inline</span></span> </td>
907 </tr>
908</table>
909</div><div class="memdoc">
910
911<p class="definition">Definition at line <a class="el" href="_tensor_i_o_utils_8hpp_source.xhtml#l00056">56</a> of file <a class="el" href="_tensor_i_o_utils_8hpp_source.xhtml">TensorIOUtils.hpp</a>.</p>
912
913<p class="reference">Referenced by <a class="el" href="_inference_model_8hpp_source.xhtml#l00550">InferenceModel&lt; IParser, TDataType &gt;::GetAllQuantizationParams()</a>, <a class="el" href="_model_accuracy_tool-_armnn_8cpp_source.xhtml#l00049">main()</a>, and <a class="el" href="_inference_model_8hpp_source.xhtml#l00461">InferenceModel&lt; IParser, TDataType &gt;::Run()</a>.</p>
914<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespacearmnn.xhtml#a8f091a512915d1cb29a4ebf13dfc53ea">armnn::OutputTensors</a> outputTensors;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> numOutputs = outputBindings.size();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span> (numOutputs != outputDataContainers.size())</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_exception.xhtml">armnn::Exception</a>(boost::str(boost::format(<span class="stringliteral">&quot;Number of outputs does not match number of &quot;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="stringliteral">&quot;tensor data containers: %1% != %2%&quot;</span>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; % numOutputs</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; % outputDataContainers.size()));</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; numOutputs; i++)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a>&amp; outputBinding = outputBindings[i];</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="_model_accuracy_checker_test_8cpp.xhtml#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a>&amp; outputData = outputDataContainers[i];</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; boost::apply_visitor([&amp;](<span class="keyword">auto</span>&amp;&amp; value)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (value.size() != outputBinding.second.GetNumElements())</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_exception.xhtml">armnn::Exception</a>(<span class="stringliteral">&quot;Output tensor has incorrect size&quot;</span>);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="classarmnn_1_1_tensor.xhtml">armnn::Tensor</a> outputTensor(outputBinding.second, value.data());</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; outputTensors.push_back(std::make_pair(outputBinding.first, outputTensor));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; },</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; outputData);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> outputTensors;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="ttc" id="_model_accuracy_checker_test_8cpp_xhtml_a9eb69ebdaf4ceb8014e7c8a540266100"><div class="ttname"><a href="_model_accuracy_checker_test_8cpp.xhtml#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a></div><div class="ttdeci">boost::variant&lt; std::vector&lt; float &gt;, std::vector&lt; int &gt;, std::vector&lt; unsigned char &gt; &gt; TContainer</div><div class="ttdef"><b>Definition:</b> <a href="_model_accuracy_checker_test_8cpp_source.xhtml#l00059">ModelAccuracyCheckerTest.cpp:59</a></div></div>
915<div class="ttc" id="classarmnn_1_1_tensor_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor.xhtml">armnn::Tensor</a></div><div class="ttdoc">A tensor defined by a TensorInfo (shape and data type) and a mutable backing store. </div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00191">Tensor.hpp:191</a></div></div>
916<div class="ttc" id="namespacearmnn_xhtml_a8f091a512915d1cb29a4ebf13dfc53ea"><div class="ttname"><a href="namespacearmnn.xhtml#a8f091a512915d1cb29a4ebf13dfc53ea">armnn::OutputTensors</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; LayerBindingId, class Tensor &gt; &gt; OutputTensors</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00226">Tensor.hpp:226</a></div></div>
917<div class="ttc" id="namespacearmnn_xhtml_a280670a263dc4fd40491f6d0a2737f44"><div class="ttname"><a href="namespacearmnn.xhtml#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a></div><div class="ttdeci">std::pair&lt; armnn::LayerBindingId, armnn::TensorInfo &gt; BindingPointInfo</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00146">Tensor.hpp:146</a></div></div>
918<div class="ttc" id="classarmnn_1_1_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_exception.xhtml">armnn::Exception</a></div><div class="ttdoc">Base class for all ArmNN exceptions so that users can filter to just those. </div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00046">Exceptions.hpp:46</a></div></div>
919</div><!-- fragment -->
920</div>
921</div>
922<a id="ab075020544612cd151ebdd08db537396"></a>
923<h2 class="memtitle"><span class="permalink"><a href="#ab075020544612cd151ebdd08db537396">&#9670;&nbsp;</a></span>NonNegative()</h2>
924
925<div class="memitem">
926<div class="memproto">
927 <table class="memname">
928 <tr>
929 <td class="memname">uint32_t NonNegative </td>
930 <td>(</td>
931 <td class="paramtype">const char *&#160;</td>
932 <td class="paramname"><em>expr</em>, </td>
933 </tr>
934 <tr>
935 <td class="paramkey"></td>
936 <td></td>
937 <td class="paramtype">int32_t&#160;</td>
938 <td class="paramname"><em>value</em>, </td>
939 </tr>
940 <tr>
941 <td class="paramkey"></td>
942 <td></td>
943 <td class="paramtype">const <a class="el" href="structarmnn_1_1_check_location.xhtml">CheckLocation</a> &amp;&#160;</td>
944 <td class="paramname"><em>location</em>&#160;</td>
945 </tr>
946 <tr>
947 <td></td>
948 <td>)</td>
949 <td></td><td></td>
950 </tr>
951 </table>
952</div><div class="memdoc">
953
954<p class="definition">Definition at line <a class="el" href="_verification_helpers_8cpp_source.xhtml#l00036">36</a> of file <a class="el" href="_verification_helpers_8cpp_source.xhtml">VerificationHelpers.cpp</a>.</p>
955
956<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00029">CheckLocation::AsString()</a>.</p>
957<div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">if</span> (value &lt; 0)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_parse_exception.xhtml">ParseException</a>(</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; boost::str(</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; boost::format(<span class="stringliteral">&quot;&#39;%1%&#39; must be non-negative, received: %2% at %3%&quot;</span>) %</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; expr %</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; value %</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; location.<a class="code" href="structarmnn_1_1_check_location.xhtml#a5e3562cda960da001597e7dd5679b140">AsString</a>() ));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(value);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="ttc" id="structarmnn_1_1_check_location_xhtml_a5e3562cda960da001597e7dd5679b140"><div class="ttname"><a href="structarmnn_1_1_check_location.xhtml#a5e3562cda960da001597e7dd5679b140">armnn::CheckLocation::AsString</a></div><div class="ttdeci">std::string AsString() const</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00029">Exceptions.hpp:29</a></div></div>
958<div class="ttc" id="classarmnn_1_1_parse_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_parse_exception.xhtml">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00092">Exceptions.hpp:92</a></div></div>
959</div><!-- fragment -->
960</div>
961</div>
962<a id="a49ba5984d8cde4299d8ef15c9e556587"></a>
963<h2 class="memtitle"><span class="permalink"><a href="#a49ba5984d8cde4299d8ef15c9e556587">&#9670;&nbsp;</a></span>operator==() <span class="overload">[1/2]</span></h2>
964
965<div class="memitem">
966<div class="memproto">
967 <table class="memname">
968 <tr>
969 <td class="memname">bool operator== </td>
970 <td>(</td>
971 <td class="paramtype">const <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> &amp;&#160;</td>
972 <td class="paramname"><em>dataLayout</em>, </td>
973 </tr>
974 <tr>
975 <td class="paramkey"></td>
976 <td></td>
977 <td class="paramtype">const <a class="el" href="classarmnn_utils_1_1_data_layout_indexed.xhtml">DataLayoutIndexed</a> &amp;&#160;</td>
978 <td class="paramname"><em>indexed</em>&#160;</td>
979 </tr>
980 <tr>
981 <td></td>
982 <td>)</td>
983 <td></td><td></td>
984 </tr>
985 </table>
986</div><div class="memdoc">
987
988<p>Equality methods. </p>
989
990<p class="definition">Definition at line <a class="el" href="_data_layout_indexed_8cpp_source.xhtml#l00034">34</a> of file <a class="el" href="_data_layout_indexed_8cpp_source.xhtml">DataLayoutIndexed.cpp</a>.</p>
991
992<p class="reference">References <a class="el" href="_data_layout_indexed_8hpp_source.xhtml#l00022">DataLayoutIndexed::GetDataLayout()</a>.</p>
993
994<p class="reference">Referenced by <a class="el" href="_optional_test_8cpp_source.xhtml#l00121">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_layer_8hpp_source.xhtml#l00151">OutputSlot::Disconnect()</a>, and <a class="el" href="_data_layout_indexed_8hpp_source.xhtml#l00027">DataLayoutIndexed::GetIndex()</a>.</p>
995<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">return</span> dataLayout == indexed.<a class="code" href="classarmnn_utils_1_1_data_layout_indexed.xhtml#a7d8b3d755b6ca8f5533657969efb06c4">GetDataLayout</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="ttc" id="classarmnn_utils_1_1_data_layout_indexed_xhtml_a7d8b3d755b6ca8f5533657969efb06c4"><div class="ttname"><a href="classarmnn_utils_1_1_data_layout_indexed.xhtml#a7d8b3d755b6ca8f5533657969efb06c4">armnnUtils::DataLayoutIndexed::GetDataLayout</a></div><div class="ttdeci">armnn::DataLayout GetDataLayout() const</div><div class="ttdef"><b>Definition:</b> <a href="_data_layout_indexed_8hpp_source.xhtml#l00022">DataLayoutIndexed.hpp:22</a></div></div>
996</div><!-- fragment -->
997</div>
998</div>
999<a id="a0448088ed94f810bd2464f3afd1859f0"></a>
1000<h2 class="memtitle"><span class="permalink"><a href="#a0448088ed94f810bd2464f3afd1859f0">&#9670;&nbsp;</a></span>operator==() <span class="overload">[2/2]</span></h2>
1001
1002<div class="memitem">
1003<div class="memproto">
1004 <table class="memname">
1005 <tr>
1006 <td class="memname">bool operator== </td>
1007 <td>(</td>
1008 <td class="paramtype">const <a class="el" href="classarmnn_utils_1_1_data_layout_indexed.xhtml">DataLayoutIndexed</a> &amp;&#160;</td>
1009 <td class="paramname"><em>indexed</em>, </td>
1010 </tr>
1011 <tr>
1012 <td class="paramkey"></td>
1013 <td></td>
1014 <td class="paramtype">const <a class="el" href="namespacearmnn.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> &amp;&#160;</td>
1015 <td class="paramname"><em>dataLayout</em>&#160;</td>
1016 </tr>
1017 <tr>
1018 <td></td>
1019 <td>)</td>
1020 <td></td><td></td>
1021 </tr>
1022 </table>
1023</div><div class="memdoc">
1024
1025<p class="definition">Definition at line <a class="el" href="_data_layout_indexed_8cpp_source.xhtml#l00039">39</a> of file <a class="el" href="_data_layout_indexed_8cpp_source.xhtml">DataLayoutIndexed.cpp</a>.</p>
1026
1027<p class="reference">References <a class="el" href="_data_layout_indexed_8hpp_source.xhtml#l00022">DataLayoutIndexed::GetDataLayout()</a>.</p>
1028<div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> indexed.<a class="code" href="classarmnn_utils_1_1_data_layout_indexed.xhtml#a7d8b3d755b6ca8f5533657969efb06c4">GetDataLayout</a>() == dataLayout;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="ttc" id="classarmnn_utils_1_1_data_layout_indexed_xhtml_a7d8b3d755b6ca8f5533657969efb06c4"><div class="ttname"><a href="classarmnn_utils_1_1_data_layout_indexed.xhtml#a7d8b3d755b6ca8f5533657969efb06c4">armnnUtils::DataLayoutIndexed::GetDataLayout</a></div><div class="ttdeci">armnn::DataLayout GetDataLayout() const</div><div class="ttdef"><b>Definition:</b> <a href="_data_layout_indexed_8hpp_source.xhtml#l00022">DataLayoutIndexed.hpp:22</a></div></div>
1029</div><!-- fragment -->
1030</div>
1031</div>
1032<a id="aed9a30e912d18171e93fcf58e0f219cb"></a>
1033<h2 class="memtitle"><span class="permalink"><a href="#aed9a30e912d18171e93fcf58e0f219cb">&#9670;&nbsp;</a></span>ParseLine()</h2>
1034
1035<div class="memitem">
1036<div class="memproto">
1037 <table class="memname">
1038 <tr>
1039 <td class="memname"><a class="el" href="structarmnn_utils_1_1_csv_row.xhtml">CsvRow</a> armnnUtils::ParseLine </td>
1040 <td>(</td>
1041 <td class="paramtype">const std::string &amp;&#160;</td>
1042 <td class="paramname"><em>csvLine</em></td><td>)</td>
1043 <td></td>
1044 </tr>
1045 </table>
1046</div><div class="memdoc">
1047
1048<p class="definition">Definition at line <a class="el" href="_csv_reader_8cpp_source.xhtml#l00020">20</a> of file <a class="el" href="_csv_reader_8cpp_source.xhtml">CsvReader.cpp</a>.</p>
1049
1050<p class="reference">References <a class="el" href="_csv_reader_8hpp_source.xhtml#l00015">CsvRow::values</a>.</p>
1051
1052<p class="reference">Referenced by <a class="el" href="_csv_reader_8cpp_source.xhtml#l00032">CsvReader::ParseFile()</a>, and <a class="el" href="_csv_reader_8cpp_source.xhtml#l00052">CsvReader::ParseVector()</a>.</p>
1053<div class="fragment"><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="_csv_reader_8cpp.xhtml#aafb3a3f74dda3391f17caeaaaca1c0c8">Tokenizer</a> tokenizer(csvLine);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; CsvRow entry;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;token : tokenizer)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; entry.values.push_back(boost::trim_copy(token));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> entry;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div><div class="ttc" id="_csv_reader_8cpp_xhtml_aafb3a3f74dda3391f17caeaaaca1c0c8"><div class="ttname"><a href="_csv_reader_8cpp.xhtml#aafb3a3f74dda3391f17caeaaaca1c0c8">Tokenizer</a></div><div class="ttdeci">boost::tokenizer&lt; boost::escaped_list_separator&lt; char &gt; &gt; Tokenizer</div><div class="ttdef"><b>Definition:</b> <a href="_csv_reader_8cpp_source.xhtml#l00015">CsvReader.cpp:15</a></div></div>
1054</div><!-- fragment -->
1055</div>
1056</div>
1057<a id="af3c74017185773dd61d8ca6662d65d43"></a>
1058<h2 class="memtitle"><span class="permalink"><a href="#af3c74017185773dd61d8ca6662d65d43">&#9670;&nbsp;</a></span>Permute()</h2>
1059
1060<div class="memitem">
1061<div class="memproto">
1062 <table class="memname">
1063 <tr>
1064 <td class="memname">void Permute </td>
1065 <td>(</td>
1066 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;&#160;</td>
1067 <td class="paramname"><em>dstShape</em>, </td>
1068 </tr>
1069 <tr>
1070 <td class="paramkey"></td>
1071 <td></td>
1072 <td class="paramtype">const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;&#160;</td>
1073 <td class="paramname"><em>mappings</em>, </td>
1074 </tr>
1075 <tr>
1076 <td class="paramkey"></td>
1077 <td></td>
1078 <td class="paramtype">const void *&#160;</td>
1079 <td class="paramname"><em>src</em>, </td>
1080 </tr>
1081 <tr>
1082 <td class="paramkey"></td>
1083 <td></td>
1084 <td class="paramtype">void *&#160;</td>
1085 <td class="paramname"><em>dst</em>, </td>
1086 </tr>
1087 <tr>
1088 <td class="paramkey"></td>
1089 <td></td>
1090 <td class="paramtype">size_t&#160;</td>
1091 <td class="paramname"><em>dataTypeSize</em>&#160;</td>
1092 </tr>
1093 <tr>
1094 <td></td>
1095 <td>)</td>
1096 <td></td><td></td>
1097 </tr>
1098 </table>
1099</div><div class="memdoc">
1100
1101<p class="definition">Definition at line <a class="el" href="_permute_8cpp_source.xhtml#l00121">121</a> of file <a class="el" href="_permute_8cpp_source.xhtml">Permute.cpp</a>.</p>
1102
1103<p class="reference">Referenced by <a class="el" href="_serializer_tests_8cpp_source.xhtml#l01882">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_tf_parser_8cpp_source.xhtml#l00933">armnnTfParser::ConvertTfTensorDataType()</a>, <a class="el" href="_depth_to_space_8cpp_source.xhtml#l00018">armnn::DepthToSpace()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.xhtml#l01381">DepthwiseConvolution2dAsymmetricTestImpl()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.xhtml#l01518">DepthwiseConvolution2dDepthMul1TestImpl()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.xhtml#l01671">DepthwiseConvolution2dTestImpl()</a>, <a class="el" href="_permute_layer_8cpp_source.xhtml#l00020">PermuteLayer::PermuteLayer()</a>, <a class="el" href="_data_layout_utils_8hpp_source.xhtml#l00014">PermuteTensorNchwToNhwc()</a>, <a class="el" href="_data_layout_utils_8hpp_source.xhtml#l00026">PermuteTensorNhwcToNchw()</a>, <a class="el" href="_image_tensor_generator_8hpp_source.xhtml#l00091">PrepareImageTensor&lt; float &gt;()</a>, and <a class="el" href="_conv2d_test_impl_8cpp_source.xhtml#l00201">SimpleConvolution2dTestImpl()</a>.</p>
1104<div class="fragment"><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; PermuteLoop(dstShape, mappings).Unroll(src, dst, dataTypeSize);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div></div><!-- fragment -->
1105</div>
1106</div>
1107<a id="abeaf4f6785039866fd075f4569ba8e84"></a>
1108<h2 class="memtitle"><span class="permalink"><a href="#abeaf4f6785039866fd075f4569ba8e84">&#9670;&nbsp;</a></span>Permuted() <span class="overload">[1/2]</span></h2>
1109
1110<div class="memitem">
1111<div class="memproto">
1112 <table class="memname">
1113 <tr>
1114 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> Permuted </td>
1115 <td>(</td>
1116 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;&#160;</td>
1117 <td class="paramname"><em>srcShape</em>, </td>
1118 </tr>
1119 <tr>
1120 <td class="paramkey"></td>
1121 <td></td>
1122 <td class="paramtype">const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;&#160;</td>
1123 <td class="paramname"><em>mappings</em>&#160;</td>
1124 </tr>
1125 <tr>
1126 <td></td>
1127 <td>)</td>
1128 <td></td><td></td>
1129 </tr>
1130 </table>
1131</div><div class="memdoc">
1132
1133<p class="definition">Definition at line <a class="el" href="_permute_8cpp_source.xhtml#l00098">98</a> of file <a class="el" href="_permute_8cpp_source.xhtml">Permute.cpp</a>.</p>
1134
1135<p class="reference">References <a class="el" href="_tensor_8hpp_source.xhtml#l00043">TensorShape::GetNumDimensions()</a>, <a class="el" href="_types_8hpp_source.xhtml#l00202">PermutationVector::GetSize()</a>, and <a class="el" href="_types_8hpp_source.xhtml#l00018">armnn::MaxNumOfTensorDimensions</a>.</p>
1136
1137<p class="reference">Referenced by <a class="el" href="_tf_parser_8cpp_source.xhtml#l00933">armnnTfParser::ConvertTfTensorDataType()</a>, <a class="el" href="_workload_utils_8cpp_source.xhtml#l00109">armnn::ConvertWeightTensorInfoFromArmnnToAcl()</a>, <a class="el" href="_permute_layer_8cpp_source.xhtml#l00036">PermuteLayer::InferOutputShapes()</a>, <a class="el" href="_permute_8cpp_source.xhtml#l00114">Permuted()</a>, <a class="el" href="_concat_test_impl_8cpp_source.xhtml#l00171">PermuteInputsForConcat()</a>, <a class="el" href="_workload_utils_8cpp_source.xhtml#l00013">armnn::PermuteTensor()</a>, <a class="el" href="_concat_test_impl_8cpp_source.xhtml#l00121">PermuteTensorData()</a>, <a class="el" href="_data_layout_utils_8hpp_source.xhtml#l00014">PermuteTensorNchwToNhwc()</a>, <a class="el" href="_data_layout_utils_8hpp_source.xhtml#l00026">PermuteTensorNhwcToNchw()</a>, and <a class="el" href="_move_permute_up_8hpp_source.xhtml#l00022">MovePermuteUpImpl::Run()</a>.</p>
1138<div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; assert(srcShape.<a class="code" href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() == mappings.<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a490ec6b59006d1fe1ec2ea30e69fb97c">GetSize</a>());</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numDims = mappings.<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a490ec6b59006d1fe1ec2ea30e69fb97c">GetSize</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> outDims[<a class="code" href="namespacearmnn.xhtml#abdcd184ed3bd648bb31d385040cafd5d">armnn::MaxNumOfTensorDimensions</a>];</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0U; i &lt; numDims; ++i)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; outDims[mappings[i]] = srcShape[i];</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> permutedShape(numDims, outDims);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> permutedShape;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00020">Tensor.hpp:20</a></div></div>
1139<div class="ttc" id="classarmnn_1_1_permutation_vector_xhtml_a490ec6b59006d1fe1ec2ea30e69fb97c"><div class="ttname"><a href="classarmnn_1_1_permutation_vector.xhtml#a490ec6b59006d1fe1ec2ea30e69fb97c">armnn::PermutationVector::GetSize</a></div><div class="ttdeci">SizeType GetSize() const</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00202">Types.hpp:202</a></div></div>
1140<div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorShape::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00043">Tensor.hpp:43</a></div></div>
1141<div class="ttc" id="namespacearmnn_xhtml_abdcd184ed3bd648bb31d385040cafd5d"><div class="ttname"><a href="namespacearmnn.xhtml#abdcd184ed3bd648bb31d385040cafd5d">armnn::MaxNumOfTensorDimensions</a></div><div class="ttdeci">constexpr unsigned int MaxNumOfTensorDimensions</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00018">Types.hpp:18</a></div></div>
1142</div><!-- fragment -->
1143</div>
1144</div>
1145<a id="a2ba6f6f40c7382b61b00ac02f961ba22"></a>
1146<h2 class="memtitle"><span class="permalink"><a href="#a2ba6f6f40c7382b61b00ac02f961ba22">&#9670;&nbsp;</a></span>Permuted() <span class="overload">[2/2]</span></h2>
1147
1148<div class="memitem">
1149<div class="memproto">
1150 <table class="memname">
1151 <tr>
1152 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> Permuted </td>
1153 <td>(</td>
1154 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;&#160;</td>
1155 <td class="paramname"><em>info</em>, </td>
1156 </tr>
1157 <tr>
1158 <td class="paramkey"></td>
1159 <td></td>
1160 <td class="paramtype">const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;&#160;</td>
1161 <td class="paramname"><em>mappings</em>&#160;</td>
1162 </tr>
1163 <tr>
1164 <td></td>
1165 <td>)</td>
1166 <td></td><td></td>
1167 </tr>
1168 </table>
1169</div><div class="memdoc">
1170
1171<p class="definition">Definition at line <a class="el" href="_permute_8cpp_source.xhtml#l00114">114</a> of file <a class="el" href="_permute_8cpp_source.xhtml">Permute.cpp</a>.</p>
1172
1173<p class="reference">References <a class="el" href="_tensor_8hpp_source.xhtml#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_permute_8cpp_source.xhtml#l00098">Permuted()</a>, and <a class="el" href="_tensor_8hpp_source.xhtml#l00090">TensorInfo::SetShape()</a>.</p>
1174<div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> outInfo(info);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; outInfo.SetShape(<a class="code" href="namespacearmnn_utils.xhtml#abeaf4f6785039866fd075f4569ba8e84">Permuted</a>(info.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>(), mappings));</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> outInfo;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">armnn::TensorInfo::GetShape</a></div><div class="ttdeci">const TensorShape &amp; GetShape() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00088">Tensor.hpp:88</a></div></div>
1175<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00053">Tensor.hpp:53</a></div></div>
1176<div class="ttc" id="namespacearmnn_utils_xhtml_abeaf4f6785039866fd075f4569ba8e84"><div class="ttname"><a href="namespacearmnn_utils.xhtml#abeaf4f6785039866fd075f4569ba8e84">armnnUtils::Permuted</a></div><div class="ttdeci">armnn::TensorShape Permuted(const armnn::TensorShape &amp;srcShape, const armnn::PermutationVector &amp;mappings)</div><div class="ttdef"><b>Definition:</b> <a href="_permute_8cpp_source.xhtml#l00098">Permute.cpp:98</a></div></div>
1177</div><!-- fragment -->
1178</div>
1179</div>
1180<a id="a523deabeb7d0a884028b35eebfd1cb6c"></a>
1181<h2 class="memtitle"><span class="permalink"><a href="#a523deabeb7d0a884028b35eebfd1cb6c">&#9670;&nbsp;</a></span>ProcessConcatInputTensorInfo()</h2>
1182
1183<div class="memitem">
1184<div class="memproto">
1185 <table class="memname">
1186 <tr>
1187 <td class="memname">void ProcessConcatInputTensorInfo </td>
1188 <td>(</td>
1189 <td class="paramtype"><a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;&#160;</td>
1190 <td class="paramname"><em>inputTensorInfo</em>, </td>
1191 </tr>
1192 <tr>
1193 <td class="paramkey"></td>
1194 <td></td>
1195 <td class="paramtype"><a class="el" href="structarmnn_1_1_origins_descriptor.xhtml">armnn::OriginsDescriptor</a> &amp;&#160;</td>
1196 <td class="paramname"><em>concatDescriptor</em>, </td>
1197 </tr>
1198 <tr>
1199 <td class="paramkey"></td>
1200 <td></td>
1201 <td class="paramtype">const unsigned int &amp;&#160;</td>
1202 <td class="paramname"><em>concatAxis</em>, </td>
1203 </tr>
1204 <tr>
1205 <td class="paramkey"></td>
1206 <td></td>
1207 <td class="paramtype">unsigned int&#160;</td>
1208 <td class="paramname"><em>inputIndex</em>, </td>
1209 </tr>
1210 <tr>
1211 <td class="paramkey"></td>
1212 <td></td>
1213 <td class="paramtype">unsigned int &amp;&#160;</td>
1214 <td class="paramname"><em>mergeDimOrigin</em>&#160;</td>
1215 </tr>
1216 <tr>
1217 <td></td>
1218 <td>)</td>
1219 <td></td><td></td>
1220 </tr>
1221 </table>
1222</div><div class="memdoc">
1223
1224<p class="definition">Definition at line <a class="el" href="_parser_helper_8cpp_source.xhtml#l00019">19</a> of file <a class="el" href="_parser_helper_8cpp_source.xhtml">ParserHelper.cpp</a>.</p>
1225
1226<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00192">CHECK_LOCATION</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00092">TensorInfo::GetNumDimensions()</a>, <a class="el" href="_descriptors_8cpp_source.xhtml#l00184">OriginsDescriptor::GetNumDimensions()</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00088">TensorInfo::GetShape()</a>, and <a class="el" href="_descriptors_8cpp_source.xhtml#l00159">OriginsDescriptor::SetViewOriginCoord()</a>.</p>
1227
1228<p class="reference">Referenced by <a class="el" href="_tf_lite_parser_8cpp_source.xhtml#l01898">TfLiteParser::OutputShapeOfReshape()</a>.</p>
1229<div class="fragment"><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">const</span> uint32_t inputRank = concatDescriptor.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// double check dimensions of the tensors</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">if</span> (inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() != inputRank)</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_parse_exception.xhtml">armnn::ParseException</a>(</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; boost::str(</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; boost::format(</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="stringliteral">&quot;The number of dimensions: %1% for input tensors of the &quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="stringliteral">&quot;concatenation op should be %2% %3%&quot;</span>)</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; % inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>()</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; % inputRank</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; % <a class="code" href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a>().AsString()));</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; concatAxis; ++j)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; concatDescriptor.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">SetViewOriginCoord</a>(inputIndex, j, 0);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; concatDescriptor.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">SetViewOriginCoord</a>(inputIndex, concatAxis, mergeDimOrigin);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; mergeDimOrigin += inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>()[concatAxis];</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = concatAxis + 1; j &lt; inputRank; ++j)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; concatDescriptor.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">SetViewOriginCoord</a>(inputIndex, j, 0);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">armnn::TensorInfo::GetShape</a></div><div class="ttdeci">const TensorShape &amp; GetShape() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00088">Tensor.hpp:88</a></div></div>
1230<div class="ttc" id="_exceptions_8hpp_xhtml_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.xhtml#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00192">Exceptions.hpp:192</a></div></div>
1231<div class="ttc" id="classarmnn_1_1_parse_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_parse_exception.xhtml">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00092">Exceptions.hpp:92</a></div></div>
1232<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_a78e8266be865fdd92cadd04d6e25ae1f"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">armnn::OriginsDescriptor::GetNumDimensions</a></div><div class="ttdeci">uint32_t GetNumDimensions() const</div><div class="ttdoc">Get the number of dimensions. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00184">Descriptors.cpp:184</a></div></div>
1233<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorInfo::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00092">Tensor.hpp:92</a></div></div>
1234<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_a2b125117aa61f9baf3a9cb8658aa61a2"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">armnn::OriginsDescriptor::SetViewOriginCoord</a></div><div class="ttdeci">Status SetViewOriginCoord(uint32_t view, uint32_t coord, uint32_t value)</div><div class="ttdoc">Set the view origin coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00159">Descriptors.cpp:159</a></div></div>
1235</div><!-- fragment -->
1236</div>
1237</div>
1238<a id="afb0aab92dc5b9bc5d7ebe2ea036f3809"></a>
1239<h2 class="memtitle"><span class="permalink"><a href="#afb0aab92dc5b9bc5d7ebe2ea036f3809">&#9670;&nbsp;</a></span>QuantizedVector() <span class="overload">[1/3]</span></h2>
1240
1241<div class="memitem">
1242<div class="memproto">
1243 <table class="memname">
1244 <tr>
1245 <td class="memname">std::vector&lt;T&gt; armnnUtils::QuantizedVector </td>
1246 <td>(</td>
1247 <td class="paramtype">FloatIt&#160;</td>
1248 <td class="paramname"><em>first</em>, </td>
1249 </tr>
1250 <tr>
1251 <td class="paramkey"></td>
1252 <td></td>
1253 <td class="paramtype">FloatIt&#160;</td>
1254 <td class="paramname"><em>last</em>, </td>
1255 </tr>
1256 <tr>
1257 <td class="paramkey"></td>
1258 <td></td>
1259 <td class="paramtype">float&#160;</td>
1260 <td class="paramname"><em>qScale</em>, </td>
1261 </tr>
1262 <tr>
1263 <td class="paramkey"></td>
1264 <td></td>
1265 <td class="paramtype">int32_t&#160;</td>
1266 <td class="paramname"><em>qOffset</em>&#160;</td>
1267 </tr>
1268 <tr>
1269 <td></td>
1270 <td>)</td>
1271 <td></td><td></td>
1272 </tr>
1273 </table>
1274</div><div class="memdoc">
1275
1276<p class="definition">Definition at line <a class="el" href="_quantize_helper_8hpp_source.xhtml#l00106">106</a> of file <a class="el" href="_quantize_helper_8hpp_source.xhtml">QuantizeHelper.hpp</a>.</p>
1277<div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; std::vector&lt;T&gt; quantized;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; quantized.reserve(boost::numeric_cast&lt;size_t&gt;(std::distance(first, last)));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = first; it != last; ++it)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">auto</span> f = *it;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; T q = SelectiveQuantize&lt;T&gt;(f, qScale, qOffset);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; quantized.push_back(q);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> quantized;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div></div><!-- fragment -->
1278</div>
1279</div>
1280<a id="ad10541679f7d9740ba7a3c96b9843456"></a>
1281<h2 class="memtitle"><span class="permalink"><a href="#ad10541679f7d9740ba7a3c96b9843456">&#9670;&nbsp;</a></span>QuantizedVector() <span class="overload">[2/3]</span></h2>
1282
1283<div class="memitem">
1284<div class="memproto">
1285 <table class="memname">
1286 <tr>
1287 <td class="memname">std::vector&lt;T&gt; armnnUtils::QuantizedVector </td>
1288 <td>(</td>
1289 <td class="paramtype">const std::vector&lt; float &gt; &amp;&#160;</td>
1290 <td class="paramname"><em>array</em>, </td>
1291 </tr>
1292 <tr>
1293 <td class="paramkey"></td>
1294 <td></td>
1295 <td class="paramtype">float&#160;</td>
1296 <td class="paramname"><em>qScale</em> = <code>1.f</code>, </td>
1297 </tr>
1298 <tr>
1299 <td class="paramkey"></td>
1300 <td></td>
1301 <td class="paramtype">int32_t&#160;</td>
1302 <td class="paramname"><em>qOffset</em> = <code>0</code>&#160;</td>
1303 </tr>
1304 <tr>
1305 <td></td>
1306 <td>)</td>
1307 <td></td><td></td>
1308 </tr>
1309 </table>
1310</div><div class="memdoc">
1311
1312<p class="definition">Definition at line <a class="el" href="_quantize_helper_8hpp_source.xhtml#l00122">122</a> of file <a class="el" href="_quantize_helper_8hpp_source.xhtml">QuantizeHelper.hpp</a>.</p>
1313<div class="fragment"><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> QuantizedVector&lt;T&gt;(array.begin(), array.end(), qScale, qOffset);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div></div><!-- fragment -->
1314</div>
1315</div>
1316<a id="af29a7b903bf7ae9639ea29bc05ccb289"></a>
1317<h2 class="memtitle"><span class="permalink"><a href="#af29a7b903bf7ae9639ea29bc05ccb289">&#9670;&nbsp;</a></span>QuantizedVector() <span class="overload">[3/3]</span></h2>
1318
1319<div class="memitem">
1320<div class="memproto">
1321 <table class="memname">
1322 <tr>
1323 <td class="memname">std::vector&lt;T&gt; armnnUtils::QuantizedVector </td>
1324 <td>(</td>
1325 <td class="paramtype">std::initializer_list&lt; float &gt;&#160;</td>
1326 <td class="paramname"><em>array</em>, </td>
1327 </tr>
1328 <tr>
1329 <td class="paramkey"></td>
1330 <td></td>
1331 <td class="paramtype">float&#160;</td>
1332 <td class="paramname"><em>qScale</em> = <code>1.f</code>, </td>
1333 </tr>
1334 <tr>
1335 <td class="paramkey"></td>
1336 <td></td>
1337 <td class="paramtype">int32_t&#160;</td>
1338 <td class="paramname"><em>qOffset</em> = <code>0</code>&#160;</td>
1339 </tr>
1340 <tr>
1341 <td></td>
1342 <td>)</td>
1343 <td></td><td></td>
1344 </tr>
1345 </table>
1346</div><div class="memdoc">
1347
1348<p class="definition">Definition at line <a class="el" href="_quantize_helper_8hpp_source.xhtml#l00128">128</a> of file <a class="el" href="_quantize_helper_8hpp_source.xhtml">QuantizeHelper.hpp</a>.</p>
1349<div class="fragment"><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> QuantizedVector&lt;T&gt;(array.begin(), array.end(), qScale, qOffset);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div></div><!-- fragment -->
1350</div>
1351</div>
1352<a id="a5135dc1ce7a8aeb97623c1a92c5a3543"></a>
1353<h2 class="memtitle"><span class="permalink"><a href="#a5135dc1ce7a8aeb97623c1a92c5a3543">&#9670;&nbsp;</a></span>SelectiveDequantize()</h2>
1354
1355<div class="memitem">
1356<div class="memproto">
1357 <table class="memname">
1358 <tr>
1359 <td class="memname">float armnnUtils::SelectiveDequantize </td>
1360 <td>(</td>
1361 <td class="paramtype">T&#160;</td>
1362 <td class="paramname"><em>value</em>, </td>
1363 </tr>
1364 <tr>
1365 <td class="paramkey"></td>
1366 <td></td>
1367 <td class="paramtype">float&#160;</td>
1368 <td class="paramname"><em>scale</em>, </td>
1369 </tr>
1370 <tr>
1371 <td class="paramkey"></td>
1372 <td></td>
1373 <td class="paramtype">int32_t&#160;</td>
1374 <td class="paramname"><em>offset</em>&#160;</td>
1375 </tr>
1376 <tr>
1377 <td></td>
1378 <td>)</td>
1379 <td></td><td></td>
1380 </tr>
1381 </table>
1382</div><div class="memdoc">
1383
1384<p class="definition">Definition at line <a class="el" href="_quantize_helper_8hpp_source.xhtml#l00092">92</a> of file <a class="el" href="_quantize_helper_8hpp_source.xhtml">QuantizeHelper.hpp</a>.</p>
1385
1386<p class="reference">References <a class="el" href="_quantize_helper_8hpp_source.xhtml#l00031">SelectiveQuantizer&lt; T, DoQuantize &gt;::Dequantize()</a>.</p>
1387
1388<p class="reference">Referenced by <a class="el" href="_conv2d_test_impl_8cpp_source.xhtml#l00169">ApplyBias()</a>.</p>
1389<div class="fragment"><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> SelectiveQuantizer&lt;T, armnn::IsQuantizedType&lt;T&gt;()&gt;::<a class="code" href="namespacearmnn.xhtml#a855293b1be0581fb61ef6a1c5b027d0f">Dequantize</a>(value, scale, offset);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;};</div><div class="ttc" id="namespacearmnn_xhtml_a855293b1be0581fb61ef6a1c5b027d0f"><div class="ttname"><a href="namespacearmnn.xhtml#a855293b1be0581fb61ef6a1c5b027d0f">armnn::Dequantize</a></div><div class="ttdeci">float Dequantize(QuantizedType value, float scale, int32_t offset)</div><div class="ttdoc">Dequantize an 8-bit data type into a floating point data type. </div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8cpp_source.xhtml#l00047">TypesUtils.cpp:47</a></div></div>
1390</div><!-- fragment -->
1391</div>
1392</div>
1393<a id="a21b249bca87a5ad47359abd9ec7acada"></a>
1394<h2 class="memtitle"><span class="permalink"><a href="#a21b249bca87a5ad47359abd9ec7acada">&#9670;&nbsp;</a></span>SelectiveQuantize()</h2>
1395
1396<div class="memitem">
1397<div class="memproto">
1398 <table class="memname">
1399 <tr>
1400 <td class="memname">T armnnUtils::SelectiveQuantize </td>
1401 <td>(</td>
1402 <td class="paramtype">float&#160;</td>
1403 <td class="paramname"><em>value</em>, </td>
1404 </tr>
1405 <tr>
1406 <td class="paramkey"></td>
1407 <td></td>
1408 <td class="paramtype">float&#160;</td>
1409 <td class="paramname"><em>scale</em>, </td>
1410 </tr>
1411 <tr>
1412 <td class="paramkey"></td>
1413 <td></td>
1414 <td class="paramtype">int32_t&#160;</td>
1415 <td class="paramname"><em>offset</em>&#160;</td>
1416 </tr>
1417 <tr>
1418 <td></td>
1419 <td>)</td>
1420 <td></td><td></td>
1421 </tr>
1422 </table>
1423</div><div class="memdoc">
1424
1425<p class="definition">Definition at line <a class="el" href="_quantize_helper_8hpp_source.xhtml#l00086">86</a> of file <a class="el" href="_quantize_helper_8hpp_source.xhtml">QuantizeHelper.hpp</a>.</p>
1426
1427<p class="reference">References <a class="el" href="_quantize_helper_8hpp_source.xhtml#l00026">SelectiveQuantizer&lt; T, DoQuantize &gt;::Quantize()</a>.</p>
1428<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> SelectiveQuantizer&lt;T, armnn::IsQuantizedType&lt;T&gt;()&gt;::<a class="code" href="namespacearmnn.xhtml#ad773a034fb9983e15f3094b4c5c7c30c">Quantize</a>(value, scale, offset);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;};</div><div class="ttc" id="namespacearmnn_xhtml_ad773a034fb9983e15f3094b4c5c7c30c"><div class="ttname"><a href="namespacearmnn.xhtml#ad773a034fb9983e15f3094b4c5c7c30c">armnn::Quantize</a></div><div class="ttdeci">QuantizedType Quantize(float value, float scale, int32_t offset)</div><div class="ttdoc">Quantize a floating point data type into an 8-bit data type. </div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8cpp_source.xhtml#l00031">TypesUtils.cpp:31</a></div></div>
1429</div><!-- fragment -->
1430</div>
1431</div>
1432<a id="a158a68b143d2564fa1ca047646cf4185"></a>
1433<h2 class="memtitle"><span class="permalink"><a href="#a158a68b143d2564fa1ca047646cf4185">&#9670;&nbsp;</a></span>SplitBy()</h2>
1434
1435<div class="memitem">
1436<div class="memproto">
1437 <table class="memname">
1438 <tr>
1439 <td class="memname">std::vector&lt; std::string &gt; SplitBy </td>
1440 <td>(</td>
1441 <td class="paramtype">const std::string &amp;&#160;</td>
1442 <td class="paramname"><em>originalString</em>, </td>
1443 </tr>
1444 <tr>
1445 <td class="paramkey"></td>
1446 <td></td>
1447 <td class="paramtype">const std::string &amp;&#160;</td>
1448 <td class="paramname"><em>delimiter</em> = <code>&quot;&#160;&quot;</code>, </td>
1449 </tr>
1450 <tr>
1451 <td class="paramkey"></td>
1452 <td></td>
1453 <td class="paramtype">bool&#160;</td>
1454 <td class="paramname"><em>includeEmptyToken</em> = <code><a class="el" href="_ref_layer_tests_8cpp.xhtml#af3b727ae5a13ff472892ab8bda2eb1b5">false</a></code>&#160;</td>
1455 </tr>
1456 <tr>
1457 <td></td>
1458 <td>)</td>
1459 <td></td><td></td>
1460 </tr>
1461 </table>
1462</div><div class="memdoc">
1463
1464<p>Split a string into tokens by a delimiter. </p>
1465<dl class="params"><dt>Parameters</dt><dd>
1466 <table class="params">
1467 <tr><td class="paramdir">[in]</td><td class="paramname">originalString</td><td>Original string to be split </td></tr>
1468 <tr><td class="paramdir">[in]</td><td class="paramname">delimiter</td><td>Delimiter used to split <code>originalString</code> </td></tr>
1469 <tr><td class="paramdir">[in]</td><td class="paramname">includeEmptyToekn</td><td>If true, include empty tokens in the result </td></tr>
1470 </table>
1471 </dd>
1472</dl>
1473<dl class="section return"><dt>Returns</dt><dd>A vector of tokens split from <code>originalString</code> by </dd></dl>
1474
1475<p class="definition">Definition at line <a class="el" href="_model_accuracy_checker_8cpp_source.xhtml#l00041">41</a> of file <a class="el" href="_model_accuracy_checker_8cpp_source.xhtml">ModelAccuracyChecker.cpp</a>.</p>
1476
1477<p class="reference">Referenced by <a class="el" href="_model_accuracy_tool-_armnn_8cpp_source.xhtml#l00466">LoadModelOutputLabels()</a>, and <a class="el" href="_model_accuracy_tool-_armnn_8cpp_source.xhtml#l00049">main()</a>.</p>
1478<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; std::vector&lt;std::string&gt; tokens;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">size_t</span> cur = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">size_t</span> next = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">while</span> ((next = originalString.find(delimiter, cur)) != std::string::npos)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// Skip empty tokens, unless explicitly stated to include them.</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (next - cur &gt; 0 || includeEmptyToken)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; tokens.push_back(originalString.substr(cur, next - cur));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; cur = next + delimiter.size();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Get the remaining token</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// Skip empty tokens, unless explicitly stated to include them.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span> (originalString.size() - cur &gt; 0 || includeEmptyToken)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; tokens.push_back(originalString.substr(cur, originalString.size() - cur));</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> tokens;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div></div><!-- fragment -->
1479</div>
1480</div>
1481<a id="a14be0364a6fc0975d45e84737dfe21bc"></a>
1482<h2 class="memtitle"><span class="permalink"><a href="#a14be0364a6fc0975d45e84737dfe21bc">&#9670;&nbsp;</a></span>Strip()</h2>
1483
1484<div class="memitem">
1485<div class="memproto">
1486 <table class="memname">
1487 <tr>
1488 <td class="memname">std::string Strip </td>
1489 <td>(</td>
1490 <td class="paramtype">const std::string &amp;&#160;</td>
1491 <td class="paramname"><em>originalString</em>, </td>
1492 </tr>
1493 <tr>
1494 <td class="paramkey"></td>
1495 <td></td>
1496 <td class="paramtype">const std::string &amp;&#160;</td>
1497 <td class="paramname"><em>characterSet</em> = <code>&quot;&#160;&quot;</code>&#160;</td>
1498 </tr>
1499 <tr>
1500 <td></td>
1501 <td>)</td>
1502 <td></td><td></td>
1503 </tr>
1504 </table>
1505</div><div class="memdoc">
1506
1507<p>Remove any preceding and trailing character specified in the characterSet. </p>
1508<dl class="params"><dt>Parameters</dt><dd>
1509 <table class="params">
1510 <tr><td class="paramdir">[in]</td><td class="paramname">originalString</td><td>Original string to be stripped </td></tr>
1511 <tr><td class="paramdir">[in]</td><td class="paramname">characterSet</td><td>Set of characters to be stripped from <code>originalString</code> </td></tr>
1512 </table>
1513 </dd>
1514</dl>
1515<dl class="section return"><dt>Returns</dt><dd>A string stripped of all characters specified in <code>characterSet</code> from <code>originalString</code> </dd></dl>
1516
1517<p class="definition">Definition at line <a class="el" href="_model_accuracy_checker_8cpp_source.xhtml#l00065">65</a> of file <a class="el" href="_model_accuracy_checker_8cpp_source.xhtml">ModelAccuracyChecker.cpp</a>.</p>
1518
1519<p class="reference">Referenced by <a class="el" href="_model_accuracy_tool-_armnn_8cpp_source.xhtml#l00466">LoadModelOutputLabels()</a>.</p>
1520<div class="fragment"><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; BOOST_ASSERT(!characterSet.empty());</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">const</span> std::size_t firstFound = originalString.find_first_not_of(characterSet);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">const</span> std::size_t lastFound = originalString.find_last_not_of(characterSet);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// Return empty if the originalString is empty or the originalString contains only to-be-striped characters</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span> (firstFound == std::string::npos || lastFound == std::string::npos)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> originalString.substr(firstFound, lastFound + 1 - firstFound);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div></div><!-- fragment -->
1521</div>
1522</div>
1523<a id="a405d5f966ec992d1717711e5a2d7909d"></a>
1524<h2 class="memtitle"><span class="permalink"><a href="#a405d5f966ec992d1717711e5a2d7909d">&#9670;&nbsp;</a></span>Transpose()</h2>
1525
1526<div class="memitem">
1527<div class="memproto">
1528 <table class="memname">
1529 <tr>
1530 <td class="memname">void Transpose </td>
1531 <td>(</td>
1532 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;&#160;</td>
1533 <td class="paramname"><em>dstShape</em>, </td>
1534 </tr>
1535 <tr>
1536 <td class="paramkey"></td>
1537 <td></td>
1538 <td class="paramtype">const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;&#160;</td>
1539 <td class="paramname"><em>mappings</em>, </td>
1540 </tr>
1541 <tr>
1542 <td class="paramkey"></td>
1543 <td></td>
1544 <td class="paramtype">const void *&#160;</td>
1545 <td class="paramname"><em>src</em>, </td>
1546 </tr>
1547 <tr>
1548 <td class="paramkey"></td>
1549 <td></td>
1550 <td class="paramtype">void *&#160;</td>
1551 <td class="paramname"><em>dst</em>, </td>
1552 </tr>
1553 <tr>
1554 <td class="paramkey"></td>
1555 <td></td>
1556 <td class="paramtype">size_t&#160;</td>
1557 <td class="paramname"><em>dataTypeSize</em>&#160;</td>
1558 </tr>
1559 <tr>
1560 <td></td>
1561 <td>)</td>
1562 <td></td><td></td>
1563 </tr>
1564 </table>
1565</div><div class="memdoc">
1566
1567<p class="definition">Definition at line <a class="el" href="armnn_utils_2_transpose_8cpp_source.xhtml#l00120">120</a> of file <a class="el" href="armnn_utils_2_transpose_8cpp_source.xhtml">Transpose.cpp</a>.</p>
1568
1569<p class="reference">Referenced by <a class="el" href="_serializer_tests_8cpp_source.xhtml#l02504">BOOST_AUTO_TEST_CASE()</a>, and <a class="el" href="_transpose_layer_8cpp_source.xhtml#l00020">TransposeLayer::TransposeLayer()</a>.</p>
1570<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; TransposeLoop(srcShape, mappings).Unroll(src, dst, dataTypeSize);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div></div><!-- fragment -->
1571</div>
1572</div>
1573<a id="a428a9a6ffdf0e8d723b50c038c56c336"></a>
1574<h2 class="memtitle"><span class="permalink"><a href="#a428a9a6ffdf0e8d723b50c038c56c336">&#9670;&nbsp;</a></span>TransposeTensorShape() <span class="overload">[1/2]</span></h2>
1575
1576<div class="memitem">
1577<div class="memproto">
1578 <table class="memname">
1579 <tr>
1580 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> TransposeTensorShape </td>
1581 <td>(</td>
1582 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> &amp;&#160;</td>
1583 <td class="paramname"><em>srcShape</em>, </td>
1584 </tr>
1585 <tr>
1586 <td class="paramkey"></td>
1587 <td></td>
1588 <td class="paramtype">const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;&#160;</td>
1589 <td class="paramname"><em>mappings</em>&#160;</td>
1590 </tr>
1591 <tr>
1592 <td></td>
1593 <td>)</td>
1594 <td></td><td></td>
1595 </tr>
1596 </table>
1597</div><div class="memdoc">
1598
1599<p class="definition">Definition at line <a class="el" href="armnn_utils_2_transpose_8cpp_source.xhtml#l00098">98</a> of file <a class="el" href="armnn_utils_2_transpose_8cpp_source.xhtml">Transpose.cpp</a>.</p>
1600
1601<p class="reference">References <a class="el" href="_tensor_8hpp_source.xhtml#l00043">TensorShape::GetNumDimensions()</a>, <a class="el" href="_types_8hpp_source.xhtml#l00202">PermutationVector::GetSize()</a>, and <a class="el" href="_types_8hpp_source.xhtml#l00018">armnn::MaxNumOfTensorDimensions</a>.</p>
1602
1603<p class="reference">Referenced by <a class="el" href="_transpose_layer_8cpp_source.xhtml#l00036">TransposeLayer::InferOutputShapes()</a>, <a class="el" href="_tf_parser_8cpp_source.xhtml#l01468">armnnTfParser::OutputShapeOfExpandDims()</a>, <a class="el" href="_move_transpose_up_8hpp_source.xhtml#l00022">MoveTransposeUpImpl::Run()</a>, and <a class="el" href="armnn_utils_2_transpose_8cpp_source.xhtml#l00113">TransposeTensorShape()</a>.</p>
1604<div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; assert(srcShape.<a class="code" href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() == mappings.<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a490ec6b59006d1fe1ec2ea30e69fb97c">GetSize</a>());</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numDims = mappings.<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a490ec6b59006d1fe1ec2ea30e69fb97c">GetSize</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> outDims[<a class="code" href="namespacearmnn.xhtml#abdcd184ed3bd648bb31d385040cafd5d">armnn::MaxNumOfTensorDimensions</a>];</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0U; i &lt; numDims; ++i)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; outDims[i] = srcShape[mappings[i]];</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a> permutedShape(numDims, outDims);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> permutedShape;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00020">Tensor.hpp:20</a></div></div>
1605<div class="ttc" id="classarmnn_1_1_permutation_vector_xhtml_a490ec6b59006d1fe1ec2ea30e69fb97c"><div class="ttname"><a href="classarmnn_1_1_permutation_vector.xhtml#a490ec6b59006d1fe1ec2ea30e69fb97c">armnn::PermutationVector::GetSize</a></div><div class="ttdeci">SizeType GetSize() const</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00202">Types.hpp:202</a></div></div>
1606<div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml#a157e27d41e9f6b21f0d3c025fa47dc24">armnn::TensorShape::GetNumDimensions</a></div><div class="ttdeci">unsigned int GetNumDimensions() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00043">Tensor.hpp:43</a></div></div>
1607<div class="ttc" id="namespacearmnn_xhtml_abdcd184ed3bd648bb31d385040cafd5d"><div class="ttname"><a href="namespacearmnn.xhtml#abdcd184ed3bd648bb31d385040cafd5d">armnn::MaxNumOfTensorDimensions</a></div><div class="ttdeci">constexpr unsigned int MaxNumOfTensorDimensions</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00018">Types.hpp:18</a></div></div>
1608</div><!-- fragment -->
1609</div>
1610</div>
1611<a id="a49e3aa80e05abc7b4643aad600e8d827"></a>
1612<h2 class="memtitle"><span class="permalink"><a href="#a49e3aa80e05abc7b4643aad600e8d827">&#9670;&nbsp;</a></span>TransposeTensorShape() <span class="overload">[2/2]</span></h2>
1613
1614<div class="memitem">
1615<div class="memproto">
1616 <table class="memname">
1617 <tr>
1618 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> TransposeTensorShape </td>
1619 <td>(</td>
1620 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> &amp;&#160;</td>
1621 <td class="paramname"><em>info</em>, </td>
1622 </tr>
1623 <tr>
1624 <td class="paramkey"></td>
1625 <td></td>
1626 <td class="paramtype">const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> &amp;&#160;</td>
1627 <td class="paramname"><em>mappings</em>&#160;</td>
1628 </tr>
1629 <tr>
1630 <td></td>
1631 <td>)</td>
1632 <td></td><td></td>
1633 </tr>
1634 </table>
1635</div><div class="memdoc">
1636
1637<p class="definition">Definition at line <a class="el" href="armnn_utils_2_transpose_8cpp_source.xhtml#l00113">113</a> of file <a class="el" href="armnn_utils_2_transpose_8cpp_source.xhtml">Transpose.cpp</a>.</p>
1638
1639<p class="reference">References <a class="el" href="_tensor_8hpp_source.xhtml#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_tensor_8hpp_source.xhtml#l00090">TensorInfo::SetShape()</a>, and <a class="el" href="armnn_utils_2_transpose_8cpp_source.xhtml#l00098">TransposeTensorShape()</a>.</p>
1640<div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a> outInfo(info);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; outInfo.SetShape(<a class="code" href="namespacearmnn_utils.xhtml#a428a9a6ffdf0e8d723b50c038c56c336">TransposeTensorShape</a>(info.<a class="code" href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>(), mappings));</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> outInfo;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}</div><div class="ttc" id="classarmnn_1_1_tensor_info_xhtml_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml#a8b5d0f8a24e9d9238f412260a552acf8">armnn::TensorInfo::GetShape</a></div><div class="ttdeci">const TensorShape &amp; GetShape() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00088">Tensor.hpp:88</a></div></div>
1641<div class="ttc" id="classarmnn_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_info.xhtml">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00053">Tensor.hpp:53</a></div></div>
1642<div class="ttc" id="namespacearmnn_utils_xhtml_a428a9a6ffdf0e8d723b50c038c56c336"><div class="ttname"><a href="namespacearmnn_utils.xhtml#a428a9a6ffdf0e8d723b50c038c56c336">armnnUtils::TransposeTensorShape</a></div><div class="ttdeci">armnn::TensorShape TransposeTensorShape(const armnn::TensorShape &amp;srcShape, const armnn::PermutationVector &amp;mappings)</div><div class="ttdef"><b>Definition:</b> <a href="armnn_utils_2_transpose_8cpp_source.xhtml#l00098">Transpose.cpp:98</a></div></div>
1643</div><!-- fragment -->
1644</div>
1645</div>
1646<a id="a2e0aa273755368a1bf5fc65102df4a92"></a>
1647<h2 class="memtitle"><span class="permalink"><a href="#a2e0aa273755368a1bf5fc65102df4a92">&#9670;&nbsp;</a></span>VerifyInt32()</h2>
1648
1649<div class="memitem">
1650<div class="memproto">
1651 <table class="memname">
1652 <tr>
1653 <td class="memname">int32_t VerifyInt32 </td>
1654 <td>(</td>
1655 <td class="paramtype">const char *&#160;</td>
1656 <td class="paramname"><em>expr</em>, </td>
1657 </tr>
1658 <tr>
1659 <td class="paramkey"></td>
1660 <td></td>
1661 <td class="paramtype">int64_t&#160;</td>
1662 <td class="paramname"><em>value</em>, </td>
1663 </tr>
1664 <tr>
1665 <td class="paramkey"></td>
1666 <td></td>
1667 <td class="paramtype">const <a class="el" href="structarmnn_1_1_check_location.xhtml">armnn::CheckLocation</a> &amp;&#160;</td>
1668 <td class="paramname"><em>location</em>&#160;</td>
1669 </tr>
1670 <tr>
1671 <td></td>
1672 <td>)</td>
1673 <td></td><td></td>
1674 </tr>
1675 </table>
1676</div><div class="memdoc">
1677
1678<p class="definition">Definition at line <a class="el" href="_verification_helpers_8cpp_source.xhtml#l00055">55</a> of file <a class="el" href="_verification_helpers_8cpp_source.xhtml">VerificationHelpers.cpp</a>.</p>
1679
1680<p class="reference">References <a class="el" href="_exceptions_8hpp_source.xhtml#l00029">CheckLocation::AsString()</a>.</p>
1681<div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span> (value &lt; std::numeric_limits&lt;int&gt;::min() || value &gt; std::numeric_limits&lt;int&gt;::max())</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_parse_exception.xhtml">ParseException</a>(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; boost::str(</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; boost::format(<span class="stringliteral">&quot;&#39;%1%&#39; must should fit into a int32 (ArmNN don&#39;t support int64), received: %2% at %3%&quot;</span>) %</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; expr %</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; value %</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; location.<a class="code" href="structarmnn_1_1_check_location.xhtml#a5e3562cda960da001597e7dd5679b140">AsString</a>() ));</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>int32_t<span class="keyword">&gt;</span>(value);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div><div class="ttc" id="structarmnn_1_1_check_location_xhtml_a5e3562cda960da001597e7dd5679b140"><div class="ttname"><a href="structarmnn_1_1_check_location.xhtml#a5e3562cda960da001597e7dd5679b140">armnn::CheckLocation::AsString</a></div><div class="ttdeci">std::string AsString() const</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00029">Exceptions.hpp:29</a></div></div>
1682<div class="ttc" id="classarmnn_1_1_parse_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_parse_exception.xhtml">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00092">Exceptions.hpp:92</a></div></div>
1683</div><!-- fragment -->
1684</div>
1685</div>
1686<h2 class="groupheader">Variable Documentation</h2>
1687<a id="a59cbccbfbae7633020d200f8c23fe69e"></a>
1688<h2 class="memtitle"><span class="permalink"><a href="#a59cbccbfbae7633020d200f8c23fe69e">&#9670;&nbsp;</a></span>ArmNNToNHWC</h2>
1689
1690<div class="memitem">
1691<div class="memproto">
1692 <table class="memname">
1693 <tr>
1694 <td class="memname">const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> ArmNNToNHWC = { 0, 3, 1, 2 }</td>
1695 </tr>
1696 </table>
1697</div><div class="memdoc">
1698
1699<p class="definition">Definition at line <a class="el" href="_parser_helper_8cpp_source.xhtml#l00017">17</a> of file <a class="el" href="_parser_helper_8cpp_source.xhtml">ParserHelper.cpp</a>.</p>
1700
1701</div>
1702</div>
1703<a id="a12124184ac6aec018beb98b9715330c7"></a>
1704<h2 class="memtitle"><span class="permalink"><a href="#a12124184ac6aec018beb98b9715330c7">&#9670;&nbsp;</a></span>NHWCToArmNN</h2>
1705
1706<div class="memitem">
1707<div class="memproto">
1708 <table class="memname">
1709 <tr>
1710 <td class="memname">const <a class="el" href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a> NHWCToArmNN = { 0, 2, 3, 1 }</td>
1711 </tr>
1712 </table>
1713</div><div class="memdoc">
1714
1715<p class="definition">Definition at line <a class="el" href="_parser_helper_8cpp_source.xhtml#l00016">16</a> of file <a class="el" href="_parser_helper_8cpp_source.xhtml">ParserHelper.cpp</a>.</p>
1716
1717<p class="reference">Referenced by <a class="el" href="_image_tensor_generator_8hpp_source.xhtml#l00091">PrepareImageTensor&lt; float &gt;()</a>.</p>
1718
1719</div>
1720</div>
1721</div><!-- contents -->
1722</div><!-- doc-content -->
1723<!-- start footer part -->
1724<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1725 <ul>
1726 <li class="navelem"><a class="el" href="namespacearmnn_utils.xhtml">armnnUtils</a></li>
1727 <li class="footer">Generated on Fri Mar 13 2020 16:09:21 for ArmNN by
1728 <a href="http://www.doxygen.org/index.html">
1729 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
1730 </ul>
1731</div>
1732</body>
1733</html>