blob: fce2413cfd944c508f784e1c4048bc74fd75ac5c [file] [log] [blame]
Ryan OSheade36e4a2020-03-13 16:26:19 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6<meta name="generator" content="Doxygen 1.8.13"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<title>ArmNN: armnnUtils Namespace Reference</title>
9<link href="tabs.css" rel="stylesheet" type="text/css"/>
10<script type="text/javascript" src="jquery.js"></script>
11<script type="text/javascript" src="dynsections.js"></script>
12<link href="navtree.css" rel="stylesheet" type="text/css"/>
13<script type="text/javascript" src="resize.js"></script>
14<script type="text/javascript" src="navtreedata.js"></script>
15<script type="text/javascript" src="navtree.js"></script>
16<script type="text/javascript">
17 $(document).ready(initResizable);
18</script>
19<link href="search/search.css" rel="stylesheet" type="text/css"/>
20<script type="text/javascript" src="search/searchdata.js"></script>
21<script type="text/javascript" src="search/search.js"></script>
22<link href="doxygen.css" rel="stylesheet" type="text/css" />
23</head>
24<body>
25<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
26<div id="titlearea">
27<table cellspacing="0" cellpadding="0">
28 <tbody>
29 <tr style="height: 56px;">
30 <td id="projectalign" style="padding-left: 0.5em;">
31 <div id="projectname">ArmNN
32 &#160;<span id="projectnumber">NotReleased</span>
33 </div>
34 </td>
35 </tr>
36 </tbody>
37</table>
38</div>
39<!-- end header part -->
40<!-- Generated by Doxygen 1.8.13 -->
41<script type="text/javascript">
42var searchBox = new SearchBox("searchBox", "search",false,'Search');
43</script>
44<script type="text/javascript" src="menudata.js"></script>
45<script type="text/javascript" src="menu.js"></script>
46<script type="text/javascript">
47$(function() {
48 initMenu('',true,false,'search.php','Search');
49 $(document).ready(function() { init_search(); });
50});
51</script>
52<div id="main-nav"></div>
53</div><!-- top -->
54<div id="side-nav" class="ui-resizable side-nav-resizable">
55 <div id="nav-tree">
56 <div id="nav-tree-contents">
57 <div id="nav-sync" class="sync"></div>
58 </div>
59 </div>
60 <div id="splitbar" style="-moz-user-select:none;"
61 class="ui-resizable-handle">
62 </div>
63</div>
64<script type="text/javascript">
65$(document).ready(function(){initNavTree('namespacearmnn_utils.html','');});
66</script>
67<div id="doc-content">
68<!-- window showing the filter options -->
69<div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73</div>
74
75<!-- iframe showing the search results (closed by default) -->
76<div id="MSearchResultsWindow">
77<iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79</iframe>
80</div>
81
82<div class="header">
83 <div class="summary">
84<a href="#namespaces">Namespaces</a> &#124;
85<a href="#nested-classes">Classes</a> &#124;
86<a href="#typedef-members">Typedefs</a> &#124;
87<a href="#func-members">Functions</a> &#124;
88<a href="#var-members">Variables</a> </div>
89 <div class="headertitle">
90<div class="title">armnnUtils Namespace Reference</div> </div>
91</div><!--header-->
92<div class="contents">
93<table class="memberdecls">
94<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
95Namespaces</h2></td></tr>
96<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.html">Filesystem</a></td></tr>
97<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
98<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.html">Processes</a></td></tr>
99<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
100<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.html">Sockets</a></td></tr>
101<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
102</table><table class="memberdecls">
103<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
104Classes</h2></td></tr>
105<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.html">CsvReader</a></td></tr>
106<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
107<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.html">CsvRow</a></td></tr>
108<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
109<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.html">DataLayoutIndexed</a></td></tr>
110<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
111<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.html">FloatingPointConverter</a></td></tr>
112<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
113<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.html">IsFloatingPointIterator</a></td></tr>
114<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
115<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.html">ModelAccuracyChecker</a></td></tr>
116<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
117<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.html">ParserPrototxtFixture</a></td></tr>
118<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
119<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.html">SelectiveQuantizer</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_selective_quantizer_3_01armnn_1_1_half_00_01false_01_4.html">SelectiveQuantizer&lt; armnn::Half, false &gt;</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">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.html">SelectiveQuantizer&lt; T, false &gt;</a></td></tr>
124<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
125</table><table class="memberdecls">
126<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
127Typedefs</h2></td></tr>
128<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.html#ab175d8bf2482d5a39c2331d1f0ddcece">LabelCategoryNames</a> = std::vector&lt; std::string &gt;</td></tr>
129<tr class="separator:ab175d8bf2482d5a39c2331d1f0ddcece"><td class="memSeparator" colspan="2">&#160;</td></tr>
130</table><table class="memberdecls">
131<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
132Functions</h2></td></tr>
133<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.html#a49ba5984d8cde4299d8ef15c9e556587">operator==</a> (const <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> &amp;dataLayout, const <a class="el" href="classarmnn_utils_1_1_data_layout_indexed.html">DataLayoutIndexed</a> &amp;indexed)</td></tr>
134<tr class="separator:a49ba5984d8cde4299d8ef15c9e556587"><td class="memSeparator" colspan="2">&#160;</td></tr>
135<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.html#a0448088ed94f810bd2464f3afd1859f0">operator==</a> (const <a class="el" href="classarmnn_utils_1_1_data_layout_indexed.html">DataLayoutIndexed</a> &amp;indexed, const <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> &amp;dataLayout)</td></tr>
136<tr class="separator:a0448088ed94f810bd2464f3afd1859f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
137<tr class="memitem:abeaf4f6785039866fd075f4569ba8e84"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#abeaf4f6785039866fd075f4569ba8e84">Permuted</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &amp;srcShape, const <a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a> &amp;mappings)</td></tr>
138<tr class="separator:abeaf4f6785039866fd075f4569ba8e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
139<tr class="memitem:a2ba6f6f40c7382b61b00ac02f961ba22"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#a2ba6f6f40c7382b61b00ac02f961ba22">Permuted</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;info, const <a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a> &amp;mappings)</td></tr>
140<tr class="separator:a2ba6f6f40c7382b61b00ac02f961ba22"><td class="memSeparator" colspan="2">&#160;</td></tr>
141<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.html#af3c74017185773dd61d8ca6662d65d43">Permute</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &amp;dstShape, const <a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a> &amp;mappings, const void *src, void *dst, size_t dataTypeSize)</td></tr>
142<tr class="separator:af3c74017185773dd61d8ca6662d65d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
143<tr class="memitem:ab53d94ea22b51c6bcdf9584644bd67bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#ab53d94ea22b51c6bcdf9584644bd67bb">GetTensorShape</a> (unsigned int numberOfBatches, unsigned int numberOfChannels, unsigned int height, unsigned int width, const <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> dataLayout)</td></tr>
144<tr class="separator:ab53d94ea22b51c6bcdf9584644bd67bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
145<tr class="memitem:acee63cd08da47910fc166a1990988fa8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#acee63cd08da47910fc166a1990988fa8">GetTensorInfo</a> (unsigned int numberOfBatches, unsigned int numberOfChannels, unsigned int height, unsigned int width, const <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> dataLayout, const <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6">armnn::DataType</a> dataType)</td></tr>
146<tr class="separator:acee63cd08da47910fc166a1990988fa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
147<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.html#a1c9097ab13afc54b48c503c6487aaee1">FindMinMax</a> (<a class="el" href="classarmnn_1_1_i_tensor_handle.html">armnn::ITensorHandle</a> *tensorHandle)</td></tr>
148<tr class="separator:a1c9097ab13afc54b48c503c6487aaee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
149<tr class="memitem:a0d3b1be320610515e0cac8d745d9f8c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#a0d3b1be320610515e0cac8d745d9f8c2">ExpandDims</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &amp;tensorShape, int axis)</td></tr>
150<tr class="separator:a0d3b1be320610515e0cac8d745d9f8c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
151<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.html#af57864f5e03358d14c2988edae912b8b">GetNumElementsBetween</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &amp;shape, unsigned int firstAxisInclusive, unsigned int lastAxisExclusive)</td></tr>
152<tr class="separator:af57864f5e03358d14c2988edae912b8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
153<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.html#ac93cb1365b4bcb67df2a3164606096c5">GetUnsignedAxis</a> (const unsigned int inputDimension, const int axis)</td></tr>
154<tr class="separator:ac93cb1365b4bcb67df2a3164606096c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
155<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.html#a276aac5f7a8bdc3db4f62203870ca13b">GetNumElementsAfter</a> (const <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &amp;shape, unsigned int axis)</td></tr>
156<tr class="separator:a276aac5f7a8bdc3db4f62203870ca13b"><td class="memSeparator" colspan="2">&#160;</td></tr>
157<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.html#a1826e433f7e6817976a8175b4ef8296c">GetPerAxisParams</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;info)</td></tr>
158<tr class="separator:a1826e433f7e6817976a8175b4ef8296c"><td class="memSeparator" colspan="2">&#160;</td></tr>
159<tr class="memitem:aed9a30e912d18171e93fcf58e0f219cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarmnn_utils_1_1_csv_row.html">CsvRow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#aed9a30e912d18171e93fcf58e0f219cb">ParseLine</a> (const std::string &amp;csvLine)</td></tr>
160<tr class="separator:aed9a30e912d18171e93fcf58e0f219cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
161<tr class="memitem:a662b45b5a4d48a01e967c0b28b6a552b"><td class="memTemplParams" colspan="2">template&lt;typename TNodeId , typename TTargetNodes &gt; </td></tr>
162<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.html#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>
163<tr class="separator:a662b45b5a4d48a01e967c0b28b6a552b"><td class="memSeparator" colspan="2">&#160;</td></tr>
164<tr class="memitem:a71164960978af8b3820717bc92b9a322"><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.html#a71164960978af8b3820717bc92b9a322">SplitBy</a> (const std::string &amp;originalString, const std::string &amp;delimiter, bool includeEmptyToken)</td></tr>
165<tr class="separator:a71164960978af8b3820717bc92b9a322"><td class="memSeparator" colspan="2">&#160;</td></tr>
166<tr class="memitem:a24f7c8ffa12c4c91bc2cecd4d329add4"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#a24f7c8ffa12c4c91bc2cecd4d329add4">Strip</a> (const std::string &amp;originalString, const std::string &amp;characterSet)</td></tr>
167<tr class="separator:a24f7c8ffa12c4c91bc2cecd4d329add4"><td class="memSeparator" colspan="2">&#160;</td></tr>
168<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.html#a523deabeb7d0a884028b35eebfd1cb6c">ProcessConcatInputTensorInfo</a> (<a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;inputTensorInfo, <a class="el" href="structarmnn_1_1_origins_descriptor.html">armnn::OriginsDescriptor</a> &amp;concatDescriptor, const unsigned int &amp;concatAxis, unsigned int inputIndex, unsigned int &amp;mergeDimOrigin)</td></tr>
169<tr class="separator:a523deabeb7d0a884028b35eebfd1cb6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
170<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.html#aac34adc5b96d744ae53eac580213f855">CalculateReducedOutputTensoInfo</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">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.html">armnn::TensorInfo</a> &amp;outputTensorInfo)</td></tr>
171<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>
172<tr class="separator:aac34adc5b96d744ae53eac580213f855"><td class="memSeparator" colspan="2">&#160;</td></tr>
173<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.html#a9300450bab29bb951d6f8755b7d9d3a8">CalculateStridedSliceOutputTensorInfo</a> (const <a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;inputTensorInfo, const <a class="el" href="structarmnn_1_1_strided_slice_descriptor.html">armnn::StridedSliceDescriptor</a> &amp;desc, <a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;outputTensorInfo)</td></tr>
174<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>
175<tr class="separator:a9300450bab29bb951d6f8755b7d9d3a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
176<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.html#ab4a89c3d0ff243bdabae3e404248d04a">ConvertInt32ToOctalString</a> (int value)</td></tr>
177<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>
178<tr class="separator:ab4a89c3d0ff243bdabae3e404248d04a"><td class="memSeparator" colspan="2">&#160;</td></tr>
179<tr class="memitem:a21b249bca87a5ad47359abd9ec7acada"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
180<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.html#a21b249bca87a5ad47359abd9ec7acada">SelectiveQuantize</a> (float value, float scale, int32_t offset)</td></tr>
181<tr class="separator:a21b249bca87a5ad47359abd9ec7acada"><td class="memSeparator" colspan="2">&#160;</td></tr>
182<tr class="memitem:a5135dc1ce7a8aeb97623c1a92c5a3543"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
183<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.html#a5135dc1ce7a8aeb97623c1a92c5a3543">SelectiveDequantize</a> (T value, float scale, int32_t offset)</td></tr>
184<tr class="separator:a5135dc1ce7a8aeb97623c1a92c5a3543"><td class="memSeparator" colspan="2">&#160;</td></tr>
185<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>
186<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.html#afb0aab92dc5b9bc5d7ebe2ea036f3809">QuantizedVector</a> (FloatIt first, FloatIt last, float qScale, int32_t qOffset)</td></tr>
187<tr class="separator:afb0aab92dc5b9bc5d7ebe2ea036f3809"><td class="memSeparator" colspan="2">&#160;</td></tr>
188<tr class="memitem:ad10541679f7d9740ba7a3c96b9843456"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
189<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.html#ad10541679f7d9740ba7a3c96b9843456">QuantizedVector</a> (const std::vector&lt; float &gt; &amp;array, float qScale=1.f, int32_t qOffset=0)</td></tr>
190<tr class="separator:ad10541679f7d9740ba7a3c96b9843456"><td class="memSeparator" colspan="2">&#160;</td></tr>
191<tr class="memitem:af29a7b903bf7ae9639ea29bc05ccb289"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
192<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.html#af29a7b903bf7ae9639ea29bc05ccb289">QuantizedVector</a> (std::initializer_list&lt; float &gt; array, float qScale=1.f, int32_t qOffset=0)</td></tr>
193<tr class="separator:af29a7b903bf7ae9639ea29bc05ccb289"><td class="memSeparator" colspan="2">&#160;</td></tr>
194<tr class="memitem:ad5310a199d4969927169ed084b1f6c28"><td class="memTemplParams" colspan="2">template&lt;typename TContainer &gt; </td></tr>
195<tr class="memitem:ad5310a199d4969927169ed084b1f6c28"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#aa01bce88f89975a5a031db4cc8861527">armnn::InputTensors</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#ad5310a199d4969927169ed084b1f6c28">MakeInputTensors</a> (const std::vector&lt; <a class="el" href="namespacearmnn.html#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a> &gt; &amp;inputBindings, const std::vector&lt; <a class="el" href="namespacearmnn.html#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a> &gt; &amp;inputDataContainers)</td></tr>
196<tr class="separator:ad5310a199d4969927169ed084b1f6c28"><td class="memSeparator" colspan="2">&#160;</td></tr>
197<tr class="memitem:ad4efd5a7fa660df5246466d83517220d"><td class="memTemplParams" colspan="2">template&lt;typename TContainer &gt; </td></tr>
198<tr class="memitem:ad4efd5a7fa660df5246466d83517220d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacearmnn.html#a8f091a512915d1cb29a4ebf13dfc53ea">armnn::OutputTensors</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#ad4efd5a7fa660df5246466d83517220d">MakeOutputTensors</a> (const std::vector&lt; <a class="el" href="namespacearmnn.html#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a> &gt; &amp;outputBindings, std::vector&lt; <a class="el" href="namespacearmnn.html#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a> &gt; &amp;outputDataContainers)</td></tr>
199<tr class="separator:ad4efd5a7fa660df5246466d83517220d"><td class="memSeparator" colspan="2">&#160;</td></tr>
200<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.html#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.html">CheckLocation</a> &amp;location)</td></tr>
201<tr class="separator:a97dc68ae76f04b81c833184724836c9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
202<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.html#ab075020544612cd151ebdd08db537396">NonNegative</a> (const char *expr, int32_t value, const <a class="el" href="structarmnn_1_1_check_location.html">CheckLocation</a> &amp;location)</td></tr>
203<tr class="separator:ab075020544612cd151ebdd08db537396"><td class="memSeparator" colspan="2">&#160;</td></tr>
204<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.html#a2e0aa273755368a1bf5fc65102df4a92">VerifyInt32</a> (const char *expr, int64_t value, const <a class="el" href="structarmnn_1_1_check_location.html">armnn::CheckLocation</a> &amp;location)</td></tr>
205<tr class="separator:a2e0aa273755368a1bf5fc65102df4a92"><td class="memSeparator" colspan="2">&#160;</td></tr>
206</table><table class="memberdecls">
207<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
208Variables</h2></td></tr>
209<tr class="memitem:a12124184ac6aec018beb98b9715330c7"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#a12124184ac6aec018beb98b9715330c7">NHWCToArmNN</a> = { 0, 2, 3, 1 }</td></tr>
210<tr class="separator:a12124184ac6aec018beb98b9715330c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
211<tr class="memitem:a59cbccbfbae7633020d200f8c23fe69e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn_utils.html#a59cbccbfbae7633020d200f8c23fe69e">ArmNNToNHWC</a> = { 0, 3, 1, 2 }</td></tr>
212<tr class="separator:a59cbccbfbae7633020d200f8c23fe69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
213</table>
214<h2 class="groupheader">Typedef Documentation</h2>
215<a id="ab175d8bf2482d5a39c2331d1f0ddcece"></a>
216<h2 class="memtitle"><span class="permalink"><a href="#ab175d8bf2482d5a39c2331d1f0ddcece">&#9670;&nbsp;</a></span>LabelCategoryNames</h2>
217
218<div class="memitem">
219<div class="memproto">
220 <table class="memname">
221 <tr>
222 <td class="memname">using <a class="el" href="namespacearmnn_utils.html#ab175d8bf2482d5a39c2331d1f0ddcece">LabelCategoryNames</a> = std::vector&lt;std::string&gt;</td>
223 </tr>
224 </table>
225</div><div class="memdoc">
226
227<p class="definition">Definition at line <a class="el" href="_model_accuracy_checker_8hpp_source.html#l00025">25</a> of file <a class="el" href="_model_accuracy_checker_8hpp_source.html">ModelAccuracyChecker.hpp</a>.</p>
228
229</div>
230</div>
231<h2 class="groupheader">Function Documentation</h2>
232<a id="aac34adc5b96d744ae53eac580213f855"></a>
233<h2 class="memtitle"><span class="permalink"><a href="#aac34adc5b96d744ae53eac580213f855">&#9670;&nbsp;</a></span>CalculateReducedOutputTensoInfo()</h2>
234
235<div class="memitem">
236<div class="memproto">
237 <table class="memname">
238 <tr>
239 <td class="memname">void CalculateReducedOutputTensoInfo </td>
240 <td>(</td>
241 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;&#160;</td>
242 <td class="paramname"><em>inputTensorInfo</em>, </td>
243 </tr>
244 <tr>
245 <td class="paramkey"></td>
246 <td></td>
247 <td class="paramtype">const std::set&lt; unsigned int &gt; &amp;&#160;</td>
248 <td class="paramname"><em>axisSet</em>, </td>
249 </tr>
250 <tr>
251 <td class="paramkey"></td>
252 <td></td>
253 <td class="paramtype">bool&#160;</td>
254 <td class="paramname"><em>keepDims</em>, </td>
255 </tr>
256 <tr>
257 <td class="paramkey"></td>
258 <td></td>
259 <td class="paramtype"><a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;&#160;</td>
260 <td class="paramname"><em>outputTensorInfo</em>&#160;</td>
261 </tr>
262 <tr>
263 <td></td>
264 <td>)</td>
265 <td></td><td></td>
266 </tr>
267 </table>
268</div><div class="memdoc">
269
270<p>Creates a tensor info after reducing the dimensions mentioned in axisData. </p>
271
272<p class="definition">Definition at line <a class="el" href="_parser_helper_8cpp_source.html#l00054">54</a> of file <a class="el" href="_parser_helper_8cpp_source.html">ParserHelper.cpp</a>.</p>
273
274<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00095">TensorInfo::GetDataType()</a>, <a class="el" href="_tensor_8hpp_source.html#l00092">TensorInfo::GetNumDimensions()</a>, and <a class="el" href="_tensor_8hpp_source.html#l00088">TensorInfo::GetShape()</a>.</p>
275
276<p class="reference">Referenced by <a class="el" href="_parser_helper_test_8cpp_source.html#l00019">BOOST_AUTO_TEST_CASE()</a>, and <a class="el" href="_tf_parser_8cpp_source.html#l02414">armnnTfParser::OutputShapeOfSqueeze()</a>.</p>
277<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.html#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.html#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.html#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.html">armnn::TensorShape</a> outputTensorShape(inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.html#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.html">armnn::TensorInfo</a>(outputTensorShape, inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.html#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.html">armnn::TensorInfo</a>({size}, inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.html#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_html_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#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.html#l00092">Tensor.hpp:92</a></div></div>
278<div class="ttc" id="classarmnn_1_1_tensor_info_html"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00053">Tensor.hpp:53</a></div></div>
279<div class="ttc" id="classarmnn_1_1_tensor_shape_html"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00020">Tensor.hpp:20</a></div></div>
280<div class="ttc" id="classarmnn_1_1_tensor_info_html_aea909c7327109228ef618d459015def3"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#aea909c7327109228ef618d459015def3">armnn::TensorInfo::GetDataType</a></div><div class="ttdeci">DataType GetDataType() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00095">Tensor.hpp:95</a></div></div>
281<div class="ttc" id="classarmnn_1_1_tensor_info_html_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#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.html#l00088">Tensor.hpp:88</a></div></div>
282</div><!-- fragment -->
283</div>
284</div>
285<a id="a9300450bab29bb951d6f8755b7d9d3a8"></a>
286<h2 class="memtitle"><span class="permalink"><a href="#a9300450bab29bb951d6f8755b7d9d3a8">&#9670;&nbsp;</a></span>CalculateStridedSliceOutputTensorInfo()</h2>
287
288<div class="memitem">
289<div class="memproto">
290 <table class="memname">
291 <tr>
292 <td class="memname">void CalculateStridedSliceOutputTensorInfo </td>
293 <td>(</td>
294 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;&#160;</td>
295 <td class="paramname"><em>inputTensorInfo</em>, </td>
296 </tr>
297 <tr>
298 <td class="paramkey"></td>
299 <td></td>
300 <td class="paramtype">const <a class="el" href="structarmnn_1_1_strided_slice_descriptor.html">armnn::StridedSliceDescriptor</a> &amp;&#160;</td>
301 <td class="paramname"><em>desc</em>, </td>
302 </tr>
303 <tr>
304 <td class="paramkey"></td>
305 <td></td>
306 <td class="paramtype"><a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;&#160;</td>
307 <td class="paramname"><em>outputTensorInfo</em>&#160;</td>
308 </tr>
309 <tr>
310 <td></td>
311 <td>)</td>
312 <td></td><td></td>
313 </tr>
314 </table>
315</div><div class="memdoc">
316
317<p>Create output tensor info for a StridedSlice operator. </p>
318
319<p class="definition">Definition at line <a class="el" href="_parser_helper_8cpp_source.html#l00105">105</a> of file <a class="el" href="_parser_helper_8cpp_source.html">ParserHelper.cpp</a>.</p>
320
321<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00095">TensorInfo::GetDataType()</a>, <a class="el" href="_tensor_8hpp_source.html#l00092">TensorInfo::GetNumDimensions()</a>, <a class="el" href="_tensor_8hpp_source.html#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_descriptors_8cpp_source.html#l00358">StridedSliceDescriptor::GetStartForAxis()</a>, <a class="el" href="_descriptors_8cpp_source.html#l00385">StridedSliceDescriptor::GetStopForAxis()</a>, <a class="el" href="_descriptors_8hpp_source.html#l01054">StridedSliceDescriptor::m_ShrinkAxisMask</a>, and <a class="el" href="_descriptors_8hpp_source.html#l01045">StridedSliceDescriptor::m_Stride</a>.</p>
322
323<p class="reference">Referenced by <a class="el" href="_tf_parser_8cpp_source.html#l02414">armnnTfParser::OutputShapeOfSqueeze()</a>.</p>
324<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.html">armnn::TensorShape</a>&amp; inputShape = inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.html#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.html#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.html#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.html#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.html#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.html#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.html">armnn::TensorShape</a> outputTensorShape(inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.html#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.html">armnn::TensorInfo</a>(<a class="code" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a>(outputTensorShape), inputTensorInfo.<a class="code" href="classarmnn_1_1_tensor_info.html#aea909c7327109228ef618d459015def3">GetDataType</a>());</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div><div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_html_afc4731b55776f71af1e14c799c6e6e2c"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.html#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.html#l00385">Descriptors.cpp:385</a></div></div>
325<div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_html_a0d53caff836b84204adbd1c28752a201"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.html#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.html#l01045">Descriptors.hpp:1045</a></div></div>
326<div class="ttc" id="classarmnn_1_1_tensor_info_html_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#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.html#l00092">Tensor.hpp:92</a></div></div>
327<div class="ttc" id="classarmnn_1_1_tensor_info_html"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00053">Tensor.hpp:53</a></div></div>
328<div class="ttc" id="classarmnn_1_1_tensor_shape_html"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00020">Tensor.hpp:20</a></div></div>
329<div class="ttc" id="classarmnn_1_1_tensor_info_html_aea909c7327109228ef618d459015def3"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#aea909c7327109228ef618d459015def3">armnn::TensorInfo::GetDataType</a></div><div class="ttdeci">DataType GetDataType() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00095">Tensor.hpp:95</a></div></div>
330<div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_html_a6d0384878432cfc9652b7ae8bc59506f"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.html#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.html#l01054">Descriptors.hpp:1054</a></div></div>
331<div class="ttc" id="classarmnn_1_1_tensor_info_html_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#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.html#l00088">Tensor.hpp:88</a></div></div>
332<div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_html_add849c1188ee7ff60774755b746aa526"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.html#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.html#l00358">Descriptors.cpp:358</a></div></div>
333</div><!-- fragment -->
334</div>
335</div>
336<a id="a97dc68ae76f04b81c833184724836c9a"></a>
337<h2 class="memtitle"><span class="permalink"><a href="#a97dc68ae76f04b81c833184724836c9a">&#9670;&nbsp;</a></span>CheckValidSize()</h2>
338
339<div class="memitem">
340<div class="memproto">
341 <table class="memname">
342 <tr>
343 <td class="memname">void CheckValidSize </td>
344 <td>(</td>
345 <td class="paramtype">std::initializer_list&lt; size_t &gt;&#160;</td>
346 <td class="paramname"><em>validInputCounts</em>, </td>
347 </tr>
348 <tr>
349 <td class="paramkey"></td>
350 <td></td>
351 <td class="paramtype">size_t&#160;</td>
352 <td class="paramname"><em>actualValue</em>, </td>
353 </tr>
354 <tr>
355 <td class="paramkey"></td>
356 <td></td>
357 <td class="paramtype">const char *&#160;</td>
358 <td class="paramname"><em>validExpr</em>, </td>
359 </tr>
360 <tr>
361 <td class="paramkey"></td>
362 <td></td>
363 <td class="paramtype">const char *&#160;</td>
364 <td class="paramname"><em>actualExpr</em>, </td>
365 </tr>
366 <tr>
367 <td class="paramkey"></td>
368 <td></td>
369 <td class="paramtype">const <a class="el" href="structarmnn_1_1_check_location.html">CheckLocation</a> &amp;&#160;</td>
370 <td class="paramname"><em>location</em>&#160;</td>
371 </tr>
372 <tr>
373 <td></td>
374 <td>)</td>
375 <td></td><td></td>
376 </tr>
377 </table>
378</div><div class="memdoc">
379
380<p class="definition">Definition at line <a class="el" href="_verification_helpers_8cpp_source.html#l00015">15</a> of file <a class="el" href="_verification_helpers_8cpp_source.html">VerificationHelpers.cpp</a>.</p>
381
382<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00029">CheckLocation::AsString()</a>.</p>
383<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.html">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.html#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="classarmnn_1_1_parse_exception_html"><div class="ttname"><a href="classarmnn_1_1_parse_exception.html">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00092">Exceptions.hpp:92</a></div></div>
384<div class="ttc" id="structarmnn_1_1_check_location_html_a5e3562cda960da001597e7dd5679b140"><div class="ttname"><a href="structarmnn_1_1_check_location.html#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.html#l00029">Exceptions.hpp:29</a></div></div>
385</div><!-- fragment -->
386</div>
387</div>
388<a id="ab4a89c3d0ff243bdabae3e404248d04a"></a>
389<h2 class="memtitle"><span class="permalink"><a href="#ab4a89c3d0ff243bdabae3e404248d04a">&#9670;&nbsp;</a></span>ConvertInt32ToOctalString()</h2>
390
391<div class="memitem">
392<div class="memproto">
393 <table class="memname">
394 <tr>
395 <td class="memname">std::string ConvertInt32ToOctalString </td>
396 <td>(</td>
397 <td class="paramtype">int&#160;</td>
398 <td class="paramname"><em>value</em></td><td>)</td>
399 <td></td>
400 </tr>
401 </table>
402</div><div class="memdoc">
403
404<p>Converts an int value into the Prototxt octal representation. </p>
405
406<p class="definition">Definition at line <a class="el" href="_prototxt_conversions_8cpp_source.html#l00018">18</a> of file <a class="el" href="_prototxt_conversions_8cpp_source.html">PrototxtConversions.cpp</a>.</p>
407
408<p class="reference">Referenced by <a class="el" href="_prototxt_conversions_test_8cpp_source.html#l00012">BOOST_AUTO_TEST_CASE()</a>.</p>
409<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; std::stringstream ss;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; std::string returnString;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4; ++i)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; ss &lt;&lt; <span class="stringliteral">&quot;\\&quot;</span>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</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="l00026"></a><span class="lineno"> 26</span>&#160; }</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; ss &gt;&gt; returnString;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> returnString;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div></div><!-- fragment -->
410</div>
411</div>
412<a id="a0d3b1be320610515e0cac8d745d9f8c2"></a>
413<h2 class="memtitle"><span class="permalink"><a href="#a0d3b1be320610515e0cac8d745d9f8c2">&#9670;&nbsp;</a></span>ExpandDims()</h2>
414
415<div class="memitem">
416<div class="memproto">
417 <table class="memname">
418 <tr>
419 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> ExpandDims </td>
420 <td>(</td>
421 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &amp;&#160;</td>
422 <td class="paramname"><em>tensorShape</em>, </td>
423 </tr>
424 <tr>
425 <td class="paramkey"></td>
426 <td></td>
427 <td class="paramtype">int&#160;</td>
428 <td class="paramname"><em>axis</em>&#160;</td>
429 </tr>
430 <tr>
431 <td></td>
432 <td>)</td>
433 <td></td><td></td>
434 </tr>
435 </table>
436</div><div class="memdoc">
437
438<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.html#l00085">85</a> of file <a class="el" href="_tensor_utils_8cpp_source.html">TensorUtils.cpp</a>.</p>
439
440<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, and <a class="el" href="_tensor_8hpp_source.html#l00043">TensorShape::GetNumDimensions()</a>.</p>
441
442<p class="reference">Referenced by <a class="el" href="_tensor_utils_test_8cpp_source.html#l00017">BOOST_AUTO_TEST_CASE()</a>.</p>
443<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.html#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.html#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.html">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.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() %</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="_exceptions_8hpp.html#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 = boost::numeric_cast&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.html#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.html">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_html_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html#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.html#l00043">Tensor.hpp:43</a></div></div>
444<div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
445<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div>
446<div class="ttc" id="classarmnn_1_1_tensor_shape_html"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00020">Tensor.hpp:20</a></div></div>
447</div><!-- fragment -->
448</div>
449</div>
450<a id="a1c9097ab13afc54b48c503c6487aaee1"></a>
451<h2 class="memtitle"><span class="permalink"><a href="#a1c9097ab13afc54b48c503c6487aaee1">&#9670;&nbsp;</a></span>FindMinMax()</h2>
452
453<div class="memitem">
454<div class="memproto">
455 <table class="memname">
456 <tr>
457 <td class="memname">std::pair&lt; float, float &gt; FindMinMax </td>
458 <td>(</td>
459 <td class="paramtype"><a class="el" href="classarmnn_1_1_i_tensor_handle.html">armnn::ITensorHandle</a> *&#160;</td>
460 <td class="paramname"><em>tensorHandle</em></td><td>)</td>
461 <td></td>
462 </tr>
463 </table>
464</div><div class="memdoc">
465
466<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.html#l00058">58</a> of file <a class="el" href="_tensor_utils_8cpp_source.html">TensorUtils.cpp</a>.</p>
467
468<p class="reference">References <a class="el" href="_tensor_8cpp_source.html#l00106">TensorShape::GetNumElements()</a>, <a class="el" href="classarmnn_1_1_i_tensor_handle.html#affd5aae75cad90f472f96cfd25a13f29">ITensorHandle::GetShape()</a>, <a class="el" href="classarmnn_1_1_i_tensor_handle.html#a9afbc055a017adf1bc38ee137bca6e90">ITensorHandle::Map()</a>, and <a class="el" href="classarmnn_1_1_i_tensor_handle.html#a563609828050f1b3a7868c23f3365923">ITensorHandle::Unmap()</a>.</p>
469
470<p class="reference">Referenced by <a class="el" href="_network_quantizer_8cpp_source.html#l00060">NetworkQuantizer::Refine()</a>.</p>
471<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.html#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.html#affd5aae75cad90f472f96cfd25a13f29">GetShape</a>().<a class="code" href="classarmnn_1_1_tensor_shape.html#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.html#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_i_tensor_handle_html_a9afbc055a017adf1bc38ee137bca6e90"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle.html#a9afbc055a017adf1bc38ee137bca6e90">armnn::ITensorHandle::Map</a></div><div class="ttdeci">virtual const void * Map(bool blocking=true) const =0</div></div>
472<div class="ttc" id="classarmnn_1_1_i_tensor_handle_html_affd5aae75cad90f472f96cfd25a13f29"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle.html#affd5aae75cad90f472f96cfd25a13f29">armnn::ITensorHandle::GetShape</a></div><div class="ttdeci">virtual TensorShape GetShape() const =0</div></div>
473<div class="ttc" id="classarmnn_1_1_tensor_shape_html_a8846406ac37fbd2204f0be16ee05d5b7"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html#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.html#l00106">Tensor.cpp:106</a></div></div>
474<div class="ttc" id="classarmnn_1_1_i_tensor_handle_html_a563609828050f1b3a7868c23f3365923"><div class="ttname"><a href="classarmnn_1_1_i_tensor_handle.html#a563609828050f1b3a7868c23f3365923">armnn::ITensorHandle::Unmap</a></div><div class="ttdeci">virtual void Unmap() const =0</div><div class="ttdoc">Unmap the tensor data. </div></div>
475</div><!-- fragment -->
476</div>
477</div>
478<a id="a276aac5f7a8bdc3db4f62203870ca13b"></a>
479<h2 class="memtitle"><span class="permalink"><a href="#a276aac5f7a8bdc3db4f62203870ca13b">&#9670;&nbsp;</a></span>GetNumElementsAfter()</h2>
480
481<div class="memitem">
482<div class="memproto">
483 <table class="memname">
484 <tr>
485 <td class="memname">unsigned int GetNumElementsAfter </td>
486 <td>(</td>
487 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &amp;&#160;</td>
488 <td class="paramname"><em>shape</em>, </td>
489 </tr>
490 <tr>
491 <td class="paramkey"></td>
492 <td></td>
493 <td class="paramtype">unsigned int&#160;</td>
494 <td class="paramname"><em>axis</em>&#160;</td>
495 </tr>
496 <tr>
497 <td></td>
498 <td>)</td>
499 <td></td><td></td>
500 </tr>
501 </table>
502</div><div class="memdoc">
503
504<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.html#l00140">140</a> of file <a class="el" href="_tensor_utils_8cpp_source.html">TensorUtils.cpp</a>.</p>
505
506<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00043">TensorShape::GetNumDimensions()</a>.</p>
507
508<p class="reference">Referenced by <a class="el" href="_tensor_utils_8cpp_source.html#l00152">GetPerAxisParams()</a>.</p>
509<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.html#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_html_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html#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.html#l00043">Tensor.hpp:43</a></div></div>
510</div><!-- fragment -->
511</div>
512</div>
513<a id="af57864f5e03358d14c2988edae912b8b"></a>
514<h2 class="memtitle"><span class="permalink"><a href="#af57864f5e03358d14c2988edae912b8b">&#9670;&nbsp;</a></span>GetNumElementsBetween()</h2>
515
516<div class="memitem">
517<div class="memproto">
518 <table class="memname">
519 <tr>
520 <td class="memname">unsigned int GetNumElementsBetween </td>
521 <td>(</td>
522 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &amp;&#160;</td>
523 <td class="paramname"><em>shape</em>, </td>
524 </tr>
525 <tr>
526 <td class="paramkey"></td>
527 <td></td>
528 <td class="paramtype">unsigned int&#160;</td>
529 <td class="paramname"><em>firstAxisInclusive</em>, </td>
530 </tr>
531 <tr>
532 <td class="paramkey"></td>
533 <td></td>
534 <td class="paramtype">unsigned int&#160;</td>
535 <td class="paramname"><em>lastAxisExclusive</em>&#160;</td>
536 </tr>
537 <tr>
538 <td></td>
539 <td>)</td>
540 <td></td><td></td>
541 </tr>
542 </table>
543</div><div class="memdoc">
544
545<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.html#l00113">113</a> of file <a class="el" href="_tensor_utils_8cpp_source.html">TensorUtils.cpp</a>.</p>
546
547<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00043">TensorShape::GetNumDimensions()</a>.</p>
548
549<p class="reference">Referenced by <a class="el" href="_arg_min_max_8cpp_source.html#l00015">armnn::ArgMinMax()</a>, <a class="el" href="_log_softmax_8cpp_source.html#l00030">armnn::LogSoftmax()</a>, and <a class="el" href="backends_2reference_2workloads_2_softmax_8cpp_source.html#l00017">armnn::Softmax()</a>.</p>
550<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.html#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_html_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html#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.html#l00043">Tensor.hpp:43</a></div></div>
551</div><!-- fragment -->
552</div>
553</div>
554<a id="a1826e433f7e6817976a8175b4ef8296c"></a>
555<h2 class="memtitle"><span class="permalink"><a href="#a1826e433f7e6817976a8175b4ef8296c">&#9670;&nbsp;</a></span>GetPerAxisParams()</h2>
556
557<div class="memitem">
558<div class="memproto">
559 <table class="memname">
560 <tr>
561 <td class="memname">std::pair&lt; unsigned int, std::vector&lt; float &gt; &gt; GetPerAxisParams </td>
562 <td>(</td>
563 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;&#160;</td>
564 <td class="paramname"><em>info</em></td><td>)</td>
565 <td></td>
566 </tr>
567 </table>
568</div><div class="memdoc">
569
570<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.html#l00152">152</a> of file <a class="el" href="_tensor_utils_8cpp_source.html">TensorUtils.cpp</a>.</p>
571
572<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, <a class="el" href="_tensor_8hpp_source.html#l00095">TensorInfo::GetDataType()</a>, <a class="el" href="_types_utils_8hpp_source.html#l00165">armnn::GetDataTypeName()</a>, <a class="el" href="_tensor_utils_8cpp_source.html#l00140">GetNumElementsAfter()</a>, <a class="el" href="_tensor_8cpp_source.html#l00280">TensorInfo::GetQuantizationDim()</a>, <a class="el" href="_tensor_8cpp_source.html#l00237">TensorInfo::GetQuantizationScales()</a>, <a class="el" href="_tensor_8hpp_source.html#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_tensor_8cpp_source.html#l00232">TensorInfo::HasPerAxisQuantization()</a>, and <a class="el" href="_optional_8hpp_source.html#l00146">OptionalReferenceSwitch&lt; IsReference, T &gt;::value()</a>.</p>
573
574<p class="reference">Referenced by <a class="el" href="_decoders_8hpp_source.html#l00070">armnn::MakeDecoder()</a>, and <a class="el" href="_encoders_8hpp_source.html#l00021">armnn::MakeEncoder()</a>.</p>
575<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.html#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.html">armnn::Optional&lt;unsigned int&gt;</a> quantizationDim = info.<a class="code" href="classarmnn_1_1_tensor_info.html#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.html#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.html">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.html#a81b5ff8545adad19a1c9d4ca076d552c">armnn::GetDataTypeName</a>(info.<a class="code" href="classarmnn_1_1_tensor_info.html#aea909c7327109228ef618d459015def3">GetDataType</a>()), <a class="code" href="_exceptions_8hpp.html#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.html#a276aac5f7a8bdc3db4f62203870ca13b">GetNumElementsAfter</a>(info.<a class="code" href="classarmnn_1_1_tensor_info.html#a8b5d0f8a24e9d9238f412260a552acf8">GetShape</a>(), quantizationDim.<a class="code" href="classarmnn_1_1_optional_reference_switch.html#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_html_ab85cd8cc10c96a7c99c14042c251fc48"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#ab85cd8cc10c96a7c99c14042c251fc48">armnn::TensorInfo::HasPerAxisQuantization</a></div><div class="ttdeci">bool HasPerAxisQuantization() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8cpp_source.html#l00232">Tensor.cpp:232</a></div></div>
576<div class="ttc" id="classarmnn_1_1_optional_html"><div class="ttname"><a href="classarmnn_1_1_optional.html">armnn::Optional&lt; unsigned int &gt;</a></div></div>
577<div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
578<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div>
579<div class="ttc" id="classarmnn_1_1_tensor_info_html_a8b8fc85ce966c035d789cf22db5088a1"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#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.html#l00280">Tensor.cpp:280</a></div></div>
580<div class="ttc" id="classarmnn_1_1_tensor_info_html_a8bc11f1fa23ef42532f9fdd04d355270"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#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.html#l00237">Tensor.cpp:237</a></div></div>
581<div class="ttc" id="classarmnn_1_1_tensor_info_html_aea909c7327109228ef618d459015def3"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#aea909c7327109228ef618d459015def3">armnn::TensorInfo::GetDataType</a></div><div class="ttdeci">DataType GetDataType() const</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00095">Tensor.hpp:95</a></div></div>
582<div class="ttc" id="classarmnn_1_1_tensor_info_html_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#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.html#l00088">Tensor.hpp:88</a></div></div>
583<div class="ttc" id="namespacearmnn_html_a81b5ff8545adad19a1c9d4ca076d552c"><div class="ttname"><a href="namespacearmnn.html#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.html#l00165">TypesUtils.hpp:165</a></div></div>
584<div class="ttc" id="namespacearmnn_utils_html_a276aac5f7a8bdc3db4f62203870ca13b"><div class="ttname"><a href="namespacearmnn_utils.html#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.html#l00140">TensorUtils.cpp:140</a></div></div>
585<div class="ttc" id="classarmnn_1_1_optional_reference_switch_html_a77c7d528ac063d870b8c8426ec81c1c3"><div class="ttname"><a href="classarmnn_1_1_optional_reference_switch.html#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.html#l00146">Optional.hpp:146</a></div></div>
586</div><!-- fragment -->
587</div>
588</div>
589<a id="acee63cd08da47910fc166a1990988fa8"></a>
590<h2 class="memtitle"><span class="permalink"><a href="#acee63cd08da47910fc166a1990988fa8">&#9670;&nbsp;</a></span>GetTensorInfo()</h2>
591
592<div class="memitem">
593<div class="memproto">
594 <table class="memname">
595 <tr>
596 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_info.html">TensorInfo</a> GetTensorInfo </td>
597 <td>(</td>
598 <td class="paramtype">unsigned int&#160;</td>
599 <td class="paramname"><em>numberOfBatches</em>, </td>
600 </tr>
601 <tr>
602 <td class="paramkey"></td>
603 <td></td>
604 <td class="paramtype">unsigned int&#160;</td>
605 <td class="paramname"><em>numberOfChannels</em>, </td>
606 </tr>
607 <tr>
608 <td class="paramkey"></td>
609 <td></td>
610 <td class="paramtype">unsigned int&#160;</td>
611 <td class="paramname"><em>height</em>, </td>
612 </tr>
613 <tr>
614 <td class="paramkey"></td>
615 <td></td>
616 <td class="paramtype">unsigned int&#160;</td>
617 <td class="paramname"><em>width</em>, </td>
618 </tr>
619 <tr>
620 <td class="paramkey"></td>
621 <td></td>
622 <td class="paramtype">const <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a>&#160;</td>
623 <td class="paramname"><em>dataLayout</em>, </td>
624 </tr>
625 <tr>
626 <td class="paramkey"></td>
627 <td></td>
628 <td class="paramtype">const <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6">armnn::DataType</a>&#160;</td>
629 <td class="paramname"><em>dataType</em>&#160;</td>
630 </tr>
631 <tr>
632 <td></td>
633 <td>)</td>
634 <td></td><td></td>
635 </tr>
636 </table>
637</div><div class="memdoc">
638
639<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.html#l00038">38</a> of file <a class="el" href="_tensor_utils_8cpp_source.html">TensorUtils.cpp</a>.</p>
640
641<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">armnn::NCHW</a>, and <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">armnn::NHWC</a>.</p>
642
643<p class="reference">Referenced by <a class="el" href="_caffe_parser_8cpp_source.html#l00611">CaffeParserBase::AddConvLayerWithDepthwiseConv()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l00419">CaffeParserBase::AddConvLayerWithSplits()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.html#l01381">DepthwiseConvolution2dAsymmetricTestImpl()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.html#l01518">DepthwiseConvolution2dDepthMul1TestImpl()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.html#l01671">DepthwiseConvolution2dTestImpl()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l01338">CaffeParserBase::ParseBatchNormLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l01277">CaffeParserBase::ParseConcatLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l00701">CaffeParserBase::ParseConvLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l01230">CaffeParserBase::ParseEltwiseLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l01134">CaffeParserBase::ParseInnerProductLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l01027">CaffeParserBase::ParseLRNLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l00883">CaffeParserBase::ParsePoolingLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l01001">CaffeParserBase::ParseReluLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l01404">CaffeParserBase::ParseScaleLayer()</a>, <a class="el" href="_caffe_parser_8cpp_source.html#l01208">CaffeParserBase::ParseSoftmaxLayer()</a>, and <a class="el" href="_conv2d_test_impl_8cpp_source.html#l00201">SimpleConvolution2dTestImpl()</a>.</p>
644<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.html">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.html">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.html">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.html#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_html"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00053">Tensor.hpp:53</a></div></div>
645<div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
646<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div>
647</div><!-- fragment -->
648</div>
649</div>
650<a id="ab53d94ea22b51c6bcdf9584644bd67bb"></a>
651<h2 class="memtitle"><span class="permalink"><a href="#ab53d94ea22b51c6bcdf9584644bd67bb">&#9670;&nbsp;</a></span>GetTensorShape()</h2>
652
653<div class="memitem">
654<div class="memproto">
655 <table class="memname">
656 <tr>
657 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_shape.html">TensorShape</a> GetTensorShape </td>
658 <td>(</td>
659 <td class="paramtype">unsigned int&#160;</td>
660 <td class="paramname"><em>numberOfBatches</em>, </td>
661 </tr>
662 <tr>
663 <td class="paramkey"></td>
664 <td></td>
665 <td class="paramtype">unsigned int&#160;</td>
666 <td class="paramname"><em>numberOfChannels</em>, </td>
667 </tr>
668 <tr>
669 <td class="paramkey"></td>
670 <td></td>
671 <td class="paramtype">unsigned int&#160;</td>
672 <td class="paramname"><em>height</em>, </td>
673 </tr>
674 <tr>
675 <td class="paramkey"></td>
676 <td></td>
677 <td class="paramtype">unsigned int&#160;</td>
678 <td class="paramname"><em>width</em>, </td>
679 </tr>
680 <tr>
681 <td class="paramkey"></td>
682 <td></td>
683 <td class="paramtype">const <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a>&#160;</td>
684 <td class="paramname"><em>dataLayout</em>&#160;</td>
685 </tr>
686 <tr>
687 <td></td>
688 <td>)</td>
689 <td></td><td></td>
690 </tr>
691 </table>
692</div><div class="memdoc">
693
694<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.html#l00019">19</a> of file <a class="el" href="_tensor_utils_8cpp_source.html">TensorUtils.cpp</a>.</p>
695
696<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">armnn::NCHW</a>, and <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">armnn::NHWC</a>.</p>
697<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.html">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.html">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.html">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.html#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="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
698<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_html"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.html">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00080">Exceptions.hpp:80</a></div></div>
699<div class="ttc" id="classarmnn_1_1_tensor_shape_html"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00020">Tensor.hpp:20</a></div></div>
700</div><!-- fragment -->
701</div>
702</div>
703<a id="ac93cb1365b4bcb67df2a3164606096c5"></a>
704<h2 class="memtitle"><span class="permalink"><a href="#ac93cb1365b4bcb67df2a3164606096c5">&#9670;&nbsp;</a></span>GetUnsignedAxis()</h2>
705
706<div class="memitem">
707<div class="memproto">
708 <table class="memname">
709 <tr>
710 <td class="memname">unsigned int GetUnsignedAxis </td>
711 <td>(</td>
712 <td class="paramtype">const unsigned int&#160;</td>
713 <td class="paramname"><em>inputDimension</em>, </td>
714 </tr>
715 <tr>
716 <td class="paramkey"></td>
717 <td></td>
718 <td class="paramtype">const int&#160;</td>
719 <td class="paramname"><em>axis</em>&#160;</td>
720 </tr>
721 <tr>
722 <td></td>
723 <td>)</td>
724 <td></td><td></td>
725 </tr>
726 </table>
727</div><div class="memdoc">
728
729<p class="definition">Definition at line <a class="el" href="_tensor_utils_8cpp_source.html#l00127">127</a> of file <a class="el" href="_tensor_utils_8cpp_source.html">TensorUtils.cpp</a>.</p>
730
731<p class="reference">Referenced by <a class="el" href="_arg_min_max_8cpp_source.html#l00015">armnn::ArgMinMax()</a>, <a class="el" href="_cl_arg_min_max_workload_8cpp_source.html#l00054">ClArgMinMaxWorkload::ClArgMinMaxWorkload()</a>, <a class="el" href="_arg_min_max_layer_8cpp_source.html#l00035">ArgMinMaxLayer::InferOutputShapes()</a>, <a class="el" href="_neon_arg_min_max_workload_8cpp_source.html#l00053">NeonArgMinMaxWorkload::NeonArgMinMaxWorkload()</a>, and <a class="el" href="_workload_data_8cpp_source.html#l00614">ArgMinMaxQueueDescriptor::Validate()</a>.</p>
732<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 - boost::numeric_cast&lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>&gt;(<a class="code" href="structarmnn_1_1abs.html">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_html"><div class="ttname"><a href="structarmnn_1_1abs.html">armnn::abs</a></div><div class="ttdef"><b>Definition:</b> <a href="_abs_8hpp_source.html#l00013">Abs.hpp:13</a></div></div>
733</div><!-- fragment -->
734</div>
735</div>
736<a id="a662b45b5a4d48a01e967c0b28b6a552b"></a>
737<h2 class="memtitle"><span class="permalink"><a href="#a662b45b5a4d48a01e967c0b28b6a552b">&#9670;&nbsp;</a></span>GraphTopologicalSort()</h2>
738
739<div class="memitem">
740<div class="memproto">
741 <table class="memname">
742 <tr>
743 <td class="memname">bool armnnUtils::GraphTopologicalSort </td>
744 <td>(</td>
745 <td class="paramtype">const TTargetNodes &amp;&#160;</td>
746 <td class="paramname"><em>targetNodes</em>, </td>
747 </tr>
748 <tr>
749 <td class="paramkey"></td>
750 <td></td>
751 <td class="paramtype">std::function&lt; std::vector&lt; TNodeId &gt;(TNodeId)&gt;&#160;</td>
752 <td class="paramname"><em>getIncomingEdges</em>, </td>
753 </tr>
754 <tr>
755 <td class="paramkey"></td>
756 <td></td>
757 <td class="paramtype">std::vector&lt; TNodeId &gt; &amp;&#160;</td>
758 <td class="paramname"><em>outSorted</em>&#160;</td>
759 </tr>
760 <tr>
761 <td></td>
762 <td>)</td>
763 <td></td><td></td>
764 </tr>
765 </table>
766</div><div class="memdoc">
767
768<p class="definition">Definition at line <a class="el" href="_graph_topological_sort_8hpp_source.html#l00111">111</a> of file <a class="el" href="_graph_topological_sort_8hpp_source.html">GraphTopologicalSort.hpp</a>.</p>
769<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 -->
770</div>
771</div>
772<a id="ad5310a199d4969927169ed084b1f6c28"></a>
773<h2 class="memtitle"><span class="permalink"><a href="#ad5310a199d4969927169ed084b1f6c28">&#9670;&nbsp;</a></span>MakeInputTensors()</h2>
774
775<div class="memitem">
776<div class="memproto">
777<table class="mlabels">
778 <tr>
779 <td class="mlabels-left">
780 <table class="memname">
781 <tr>
782 <td class="memname"><a class="el" href="namespacearmnn.html#aa01bce88f89975a5a031db4cc8861527">armnn::InputTensors</a> armnnUtils::MakeInputTensors </td>
783 <td>(</td>
784 <td class="paramtype">const std::vector&lt; <a class="el" href="namespacearmnn.html#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a> &gt; &amp;&#160;</td>
785 <td class="paramname"><em>inputBindings</em>, </td>
786 </tr>
787 <tr>
788 <td class="paramkey"></td>
789 <td></td>
790 <td class="paramtype">const std::vector&lt; <a class="el" href="namespacearmnn.html#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a> &gt; &amp;&#160;</td>
791 <td class="paramname"><em>inputDataContainers</em>&#160;</td>
792 </tr>
793 <tr>
794 <td></td>
795 <td>)</td>
796 <td></td><td></td>
797 </tr>
798 </table>
799 </td>
800 <td class="mlabels-right">
801<span class="mlabels"><span class="mlabel">inline</span></span> </td>
802 </tr>
803</table>
804</div><div class="memdoc">
805
806<p class="definition">Definition at line <a class="el" href="_tensor_i_o_utils_8hpp_source.html#l00017">17</a> of file <a class="el" href="_tensor_i_o_utils_8hpp_source.html">TensorIOUtils.hpp</a>.</p>
807
808<p class="reference">Referenced by <a class="el" href="_inference_model_8hpp_source.html#l00550">InferenceModel&lt; IParser, TDataType &gt;::GetAllQuantizationParams()</a>, <a class="el" href="_model_accuracy_tool-_armnn_8cpp_source.html#l00049">main()</a>, and <a class="el" href="_inference_model_8hpp_source.html#l00461">InferenceModel&lt; IParser, TDataType &gt;::Run()</a>.</p>
809<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.html#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.html">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.html#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.html#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.html">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.html">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="classarmnn_1_1_const_tensor_html"><div class="ttname"><a href="classarmnn_1_1_const_tensor.html">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.html#l00199">Tensor.hpp:199</a></div></div>
810<div class="ttc" id="namespacearmnn_html_a280670a263dc4fd40491f6d0a2737f44"><div class="ttname"><a href="namespacearmnn.html#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.html#l00146">Tensor.hpp:146</a></div></div>
811<div class="ttc" id="namespacearmnn_html_aa01bce88f89975a5a031db4cc8861527"><div class="ttname"><a href="namespacearmnn.html#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.html#l00225">Tensor.hpp:225</a></div></div>
812<div class="ttc" id="classarmnn_1_1_exception_html"><div class="ttname"><a href="classarmnn_1_1_exception.html">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.html#l00046">Exceptions.hpp:46</a></div></div>
813<div class="ttc" id="_model_accuracy_checker_test_8cpp_html_a9eb69ebdaf4ceb8014e7c8a540266100"><div class="ttname"><a href="_model_accuracy_checker_test_8cpp.html#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.html#l00059">ModelAccuracyCheckerTest.cpp:59</a></div></div>
814</div><!-- fragment -->
815</div>
816</div>
817<a id="ad4efd5a7fa660df5246466d83517220d"></a>
818<h2 class="memtitle"><span class="permalink"><a href="#ad4efd5a7fa660df5246466d83517220d">&#9670;&nbsp;</a></span>MakeOutputTensors()</h2>
819
820<div class="memitem">
821<div class="memproto">
822<table class="mlabels">
823 <tr>
824 <td class="mlabels-left">
825 <table class="memname">
826 <tr>
827 <td class="memname"><a class="el" href="namespacearmnn.html#a8f091a512915d1cb29a4ebf13dfc53ea">armnn::OutputTensors</a> armnnUtils::MakeOutputTensors </td>
828 <td>(</td>
829 <td class="paramtype">const std::vector&lt; <a class="el" href="namespacearmnn.html#a280670a263dc4fd40491f6d0a2737f44">armnn::BindingPointInfo</a> &gt; &amp;&#160;</td>
830 <td class="paramname"><em>outputBindings</em>, </td>
831 </tr>
832 <tr>
833 <td class="paramkey"></td>
834 <td></td>
835 <td class="paramtype">std::vector&lt; <a class="el" href="namespacearmnn.html#a9eb69ebdaf4ceb8014e7c8a540266100">TContainer</a> &gt; &amp;&#160;</td>
836 <td class="paramname"><em>outputDataContainers</em>&#160;</td>
837 </tr>
838 <tr>
839 <td></td>
840 <td>)</td>
841 <td></td><td></td>
842 </tr>
843 </table>
844 </td>
845 <td class="mlabels-right">
846<span class="mlabels"><span class="mlabel">inline</span></span> </td>
847 </tr>
848</table>
849</div><div class="memdoc">
850
851<p class="definition">Definition at line <a class="el" href="_tensor_i_o_utils_8hpp_source.html#l00056">56</a> of file <a class="el" href="_tensor_i_o_utils_8hpp_source.html">TensorIOUtils.hpp</a>.</p>
852
853<p class="reference">Referenced by <a class="el" href="_inference_model_8hpp_source.html#l00550">InferenceModel&lt; IParser, TDataType &gt;::GetAllQuantizationParams()</a>, <a class="el" href="_model_accuracy_tool-_armnn_8cpp_source.html#l00049">main()</a>, and <a class="el" href="_inference_model_8hpp_source.html#l00461">InferenceModel&lt; IParser, TDataType &gt;::Run()</a>.</p>
854<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.html#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.html">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.html#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.html#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.html">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.html">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="namespacearmnn_html_a8f091a512915d1cb29a4ebf13dfc53ea"><div class="ttname"><a href="namespacearmnn.html#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.html#l00226">Tensor.hpp:226</a></div></div>
855<div class="ttc" id="namespacearmnn_html_a280670a263dc4fd40491f6d0a2737f44"><div class="ttname"><a href="namespacearmnn.html#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.html#l00146">Tensor.hpp:146</a></div></div>
856<div class="ttc" id="classarmnn_1_1_tensor_html"><div class="ttname"><a href="classarmnn_1_1_tensor.html">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.html#l00191">Tensor.hpp:191</a></div></div>
857<div class="ttc" id="classarmnn_1_1_exception_html"><div class="ttname"><a href="classarmnn_1_1_exception.html">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.html#l00046">Exceptions.hpp:46</a></div></div>
858<div class="ttc" id="_model_accuracy_checker_test_8cpp_html_a9eb69ebdaf4ceb8014e7c8a540266100"><div class="ttname"><a href="_model_accuracy_checker_test_8cpp.html#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.html#l00059">ModelAccuracyCheckerTest.cpp:59</a></div></div>
859</div><!-- fragment -->
860</div>
861</div>
862<a id="ab075020544612cd151ebdd08db537396"></a>
863<h2 class="memtitle"><span class="permalink"><a href="#ab075020544612cd151ebdd08db537396">&#9670;&nbsp;</a></span>NonNegative()</h2>
864
865<div class="memitem">
866<div class="memproto">
867 <table class="memname">
868 <tr>
869 <td class="memname">uint32_t NonNegative </td>
870 <td>(</td>
871 <td class="paramtype">const char *&#160;</td>
872 <td class="paramname"><em>expr</em>, </td>
873 </tr>
874 <tr>
875 <td class="paramkey"></td>
876 <td></td>
877 <td class="paramtype">int32_t&#160;</td>
878 <td class="paramname"><em>value</em>, </td>
879 </tr>
880 <tr>
881 <td class="paramkey"></td>
882 <td></td>
883 <td class="paramtype">const <a class="el" href="structarmnn_1_1_check_location.html">CheckLocation</a> &amp;&#160;</td>
884 <td class="paramname"><em>location</em>&#160;</td>
885 </tr>
886 <tr>
887 <td></td>
888 <td>)</td>
889 <td></td><td></td>
890 </tr>
891 </table>
892</div><div class="memdoc">
893
894<p class="definition">Definition at line <a class="el" href="_verification_helpers_8cpp_source.html#l00036">36</a> of file <a class="el" href="_verification_helpers_8cpp_source.html">VerificationHelpers.cpp</a>.</p>
895
896<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00029">CheckLocation::AsString()</a>.</p>
897<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.html">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.html#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="classarmnn_1_1_parse_exception_html"><div class="ttname"><a href="classarmnn_1_1_parse_exception.html">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00092">Exceptions.hpp:92</a></div></div>
898<div class="ttc" id="structarmnn_1_1_check_location_html_a5e3562cda960da001597e7dd5679b140"><div class="ttname"><a href="structarmnn_1_1_check_location.html#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.html#l00029">Exceptions.hpp:29</a></div></div>
899</div><!-- fragment -->
900</div>
901</div>
902<a id="a49ba5984d8cde4299d8ef15c9e556587"></a>
903<h2 class="memtitle"><span class="permalink"><a href="#a49ba5984d8cde4299d8ef15c9e556587">&#9670;&nbsp;</a></span>operator==() <span class="overload">[1/2]</span></h2>
904
905<div class="memitem">
906<div class="memproto">
907 <table class="memname">
908 <tr>
909 <td class="memname">bool operator== </td>
910 <td>(</td>
911 <td class="paramtype">const <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> &amp;&#160;</td>
912 <td class="paramname"><em>dataLayout</em>, </td>
913 </tr>
914 <tr>
915 <td class="paramkey"></td>
916 <td></td>
917 <td class="paramtype">const <a class="el" href="classarmnn_utils_1_1_data_layout_indexed.html">DataLayoutIndexed</a> &amp;&#160;</td>
918 <td class="paramname"><em>indexed</em>&#160;</td>
919 </tr>
920 <tr>
921 <td></td>
922 <td>)</td>
923 <td></td><td></td>
924 </tr>
925 </table>
926</div><div class="memdoc">
927
928<p class="definition">Definition at line <a class="el" href="_data_layout_indexed_8cpp_source.html#l00034">34</a> of file <a class="el" href="_data_layout_indexed_8cpp_source.html">DataLayoutIndexed.cpp</a>.</p>
929
930<p class="reference">References <a class="el" href="_data_layout_indexed_8hpp_source.html#l00022">DataLayoutIndexed::GetDataLayout()</a>.</p>
931
932<p class="reference">Referenced by <a class="el" href="_optional_test_8cpp_source.html#l00121">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_layer_8hpp_source.html#l00151">OutputSlot::Disconnect()</a>, and <a class="el" href="_data_layout_indexed_8hpp_source.html#l00027">DataLayoutIndexed::GetIndex()</a>.</p>
933<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.html#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_html_a7d8b3d755b6ca8f5533657969efb06c4"><div class="ttname"><a href="classarmnn_utils_1_1_data_layout_indexed.html#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.html#l00022">DataLayoutIndexed.hpp:22</a></div></div>
934</div><!-- fragment -->
935</div>
936</div>
937<a id="a0448088ed94f810bd2464f3afd1859f0"></a>
938<h2 class="memtitle"><span class="permalink"><a href="#a0448088ed94f810bd2464f3afd1859f0">&#9670;&nbsp;</a></span>operator==() <span class="overload">[2/2]</span></h2>
939
940<div class="memitem">
941<div class="memproto">
942 <table class="memname">
943 <tr>
944 <td class="memname">bool operator== </td>
945 <td>(</td>
946 <td class="paramtype">const <a class="el" href="classarmnn_utils_1_1_data_layout_indexed.html">DataLayoutIndexed</a> &amp;&#160;</td>
947 <td class="paramname"><em>indexed</em>, </td>
948 </tr>
949 <tr>
950 <td class="paramkey"></td>
951 <td></td>
952 <td class="paramtype">const <a class="el" href="namespacearmnn.html#ad1d5cce2d9e9a5d61c243e5c989112e0">armnn::DataLayout</a> &amp;&#160;</td>
953 <td class="paramname"><em>dataLayout</em>&#160;</td>
954 </tr>
955 <tr>
956 <td></td>
957 <td>)</td>
958 <td></td><td></td>
959 </tr>
960 </table>
961</div><div class="memdoc">
962
963<p class="definition">Definition at line <a class="el" href="_data_layout_indexed_8cpp_source.html#l00039">39</a> of file <a class="el" href="_data_layout_indexed_8cpp_source.html">DataLayoutIndexed.cpp</a>.</p>
964
965<p class="reference">References <a class="el" href="_data_layout_indexed_8hpp_source.html#l00022">DataLayoutIndexed::GetDataLayout()</a>.</p>
966<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.html#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_html_a7d8b3d755b6ca8f5533657969efb06c4"><div class="ttname"><a href="classarmnn_utils_1_1_data_layout_indexed.html#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.html#l00022">DataLayoutIndexed.hpp:22</a></div></div>
967</div><!-- fragment -->
968</div>
969</div>
970<a id="aed9a30e912d18171e93fcf58e0f219cb"></a>
971<h2 class="memtitle"><span class="permalink"><a href="#aed9a30e912d18171e93fcf58e0f219cb">&#9670;&nbsp;</a></span>ParseLine()</h2>
972
973<div class="memitem">
974<div class="memproto">
975 <table class="memname">
976 <tr>
977 <td class="memname"><a class="el" href="structarmnn_utils_1_1_csv_row.html">CsvRow</a> armnnUtils::ParseLine </td>
978 <td>(</td>
979 <td class="paramtype">const std::string &amp;&#160;</td>
980 <td class="paramname"><em>csvLine</em></td><td>)</td>
981 <td></td>
982 </tr>
983 </table>
984</div><div class="memdoc">
985
986<p class="definition">Definition at line <a class="el" href="_csv_reader_8cpp_source.html#l00020">20</a> of file <a class="el" href="_csv_reader_8cpp_source.html">CsvReader.cpp</a>.</p>
987
988<p class="reference">References <a class="el" href="_csv_reader_8hpp_source.html#l00015">CsvRow::values</a>.</p>
989
990<p class="reference">Referenced by <a class="el" href="_csv_reader_8cpp_source.html#l00032">CsvReader::ParseFile()</a>, and <a class="el" href="_csv_reader_8cpp_source.html#l00052">CsvReader::ParseVector()</a>.</p>
991<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.html#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_html_aafb3a3f74dda3391f17caeaaaca1c0c8"><div class="ttname"><a href="_csv_reader_8cpp.html#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.html#l00015">CsvReader.cpp:15</a></div></div>
992</div><!-- fragment -->
993</div>
994</div>
995<a id="af3c74017185773dd61d8ca6662d65d43"></a>
996<h2 class="memtitle"><span class="permalink"><a href="#af3c74017185773dd61d8ca6662d65d43">&#9670;&nbsp;</a></span>Permute()</h2>
997
998<div class="memitem">
999<div class="memproto">
1000 <table class="memname">
1001 <tr>
1002 <td class="memname">void Permute </td>
1003 <td>(</td>
1004 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &amp;&#160;</td>
1005 <td class="paramname"><em>dstShape</em>, </td>
1006 </tr>
1007 <tr>
1008 <td class="paramkey"></td>
1009 <td></td>
1010 <td class="paramtype">const <a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a> &amp;&#160;</td>
1011 <td class="paramname"><em>mappings</em>, </td>
1012 </tr>
1013 <tr>
1014 <td class="paramkey"></td>
1015 <td></td>
1016 <td class="paramtype">const void *&#160;</td>
1017 <td class="paramname"><em>src</em>, </td>
1018 </tr>
1019 <tr>
1020 <td class="paramkey"></td>
1021 <td></td>
1022 <td class="paramtype">void *&#160;</td>
1023 <td class="paramname"><em>dst</em>, </td>
1024 </tr>
1025 <tr>
1026 <td class="paramkey"></td>
1027 <td></td>
1028 <td class="paramtype">size_t&#160;</td>
1029 <td class="paramname"><em>dataTypeSize</em>&#160;</td>
1030 </tr>
1031 <tr>
1032 <td></td>
1033 <td>)</td>
1034 <td></td><td></td>
1035 </tr>
1036 </table>
1037</div><div class="memdoc">
1038
1039<p class="definition">Definition at line <a class="el" href="_permute_8cpp_source.html#l00121">121</a> of file <a class="el" href="_permute_8cpp_source.html">Permute.cpp</a>.</p>
1040
1041<p class="reference">Referenced by <a class="el" href="_serializer_tests_8cpp_source.html#l01882">BOOST_AUTO_TEST_CASE()</a>, <a class="el" href="_tf_parser_8cpp_source.html#l00931">armnnTfParser::ConvertTfTensorDataType()</a>, <a class="el" href="_depth_to_space_8cpp_source.html#l00018">armnn::DepthToSpace()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.html#l01381">DepthwiseConvolution2dAsymmetricTestImpl()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.html#l01518">DepthwiseConvolution2dDepthMul1TestImpl()</a>, <a class="el" href="_conv2d_test_impl_8cpp_source.html#l01671">DepthwiseConvolution2dTestImpl()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00020">PermuteLayer::PermuteLayer()</a>, <a class="el" href="_data_layout_utils_8hpp_source.html#l00014">PermuteTensorNchwToNhwc()</a>, <a class="el" href="_data_layout_utils_8hpp_source.html#l00026">PermuteTensorNhwcToNchw()</a>, <a class="el" href="_image_tensor_generator_8hpp_source.html#l00091">PrepareImageTensor&lt; float &gt;()</a>, and <a class="el" href="_conv2d_test_impl_8cpp_source.html#l00201">SimpleConvolution2dTestImpl()</a>.</p>
1042<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 -->
1043</div>
1044</div>
1045<a id="abeaf4f6785039866fd075f4569ba8e84"></a>
1046<h2 class="memtitle"><span class="permalink"><a href="#abeaf4f6785039866fd075f4569ba8e84">&#9670;&nbsp;</a></span>Permuted() <span class="overload">[1/2]</span></h2>
1047
1048<div class="memitem">
1049<div class="memproto">
1050 <table class="memname">
1051 <tr>
1052 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> Permuted </td>
1053 <td>(</td>
1054 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a> &amp;&#160;</td>
1055 <td class="paramname"><em>srcShape</em>, </td>
1056 </tr>
1057 <tr>
1058 <td class="paramkey"></td>
1059 <td></td>
1060 <td class="paramtype">const <a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a> &amp;&#160;</td>
1061 <td class="paramname"><em>mappings</em>&#160;</td>
1062 </tr>
1063 <tr>
1064 <td></td>
1065 <td>)</td>
1066 <td></td><td></td>
1067 </tr>
1068 </table>
1069</div><div class="memdoc">
1070
1071<p class="definition">Definition at line <a class="el" href="_permute_8cpp_source.html#l00098">98</a> of file <a class="el" href="_permute_8cpp_source.html">Permute.cpp</a>.</p>
1072
1073<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00043">TensorShape::GetNumDimensions()</a>, <a class="el" href="_types_8hpp_source.html#l00199">PermutationVector::GetSize()</a>, and <a class="el" href="_types_8hpp_source.html#l00018">armnn::MaxNumOfTensorDimensions</a>.</p>
1074
1075<p class="reference">Referenced by <a class="el" href="_tf_parser_8cpp_source.html#l00931">armnnTfParser::ConvertTfTensorDataType()</a>, <a class="el" href="_workload_utils_8cpp_source.html#l00109">armnn::ConvertWeightTensorInfoFromArmnnToAcl()</a>, <a class="el" href="_permute_layer_8cpp_source.html#l00036">PermuteLayer::InferOutputShapes()</a>, <a class="el" href="_permute_8cpp_source.html#l00114">Permuted()</a>, <a class="el" href="_concat_test_impl_8cpp_source.html#l00171">PermuteInputsForConcat()</a>, <a class="el" href="_workload_utils_8cpp_source.html#l00013">armnn::PermuteTensor()</a>, <a class="el" href="_concat_test_impl_8cpp_source.html#l00121">PermuteTensorData()</a>, <a class="el" href="_data_layout_utils_8hpp_source.html#l00014">PermuteTensorNchwToNhwc()</a>, <a class="el" href="_data_layout_utils_8hpp_source.html#l00026">PermuteTensorNhwcToNchw()</a>, and <a class="el" href="_move_permute_up_8hpp_source.html#l00022">MovePermuteUpImpl::Run()</a>.</p>
1076<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.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() == mappings.<a class="code" href="classarmnn_1_1_permutation_vector.html#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.html#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.html#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.html">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_html_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html#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.html#l00043">Tensor.hpp:43</a></div></div>
1077<div class="ttc" id="classarmnn_1_1_permutation_vector_html_a490ec6b59006d1fe1ec2ea30e69fb97c"><div class="ttname"><a href="classarmnn_1_1_permutation_vector.html#a490ec6b59006d1fe1ec2ea30e69fb97c">armnn::PermutationVector::GetSize</a></div><div class="ttdeci">SizeType GetSize() const</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.html#l00199">Types.hpp:199</a></div></div>
1078<div class="ttc" id="namespacearmnn_html_abdcd184ed3bd648bb31d385040cafd5d"><div class="ttname"><a href="namespacearmnn.html#abdcd184ed3bd648bb31d385040cafd5d">armnn::MaxNumOfTensorDimensions</a></div><div class="ttdeci">constexpr unsigned int MaxNumOfTensorDimensions</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.html#l00018">Types.hpp:18</a></div></div>
1079<div class="ttc" id="classarmnn_1_1_tensor_shape_html"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.html">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00020">Tensor.hpp:20</a></div></div>
1080</div><!-- fragment -->
1081</div>
1082</div>
1083<a id="a2ba6f6f40c7382b61b00ac02f961ba22"></a>
1084<h2 class="memtitle"><span class="permalink"><a href="#a2ba6f6f40c7382b61b00ac02f961ba22">&#9670;&nbsp;</a></span>Permuted() <span class="overload">[2/2]</span></h2>
1085
1086<div class="memitem">
1087<div class="memproto">
1088 <table class="memname">
1089 <tr>
1090 <td class="memname"><a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> Permuted </td>
1091 <td>(</td>
1092 <td class="paramtype">const <a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;&#160;</td>
1093 <td class="paramname"><em>info</em>, </td>
1094 </tr>
1095 <tr>
1096 <td class="paramkey"></td>
1097 <td></td>
1098 <td class="paramtype">const <a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a> &amp;&#160;</td>
1099 <td class="paramname"><em>mappings</em>&#160;</td>
1100 </tr>
1101 <tr>
1102 <td></td>
1103 <td>)</td>
1104 <td></td><td></td>
1105 </tr>
1106 </table>
1107</div><div class="memdoc">
1108
1109<p class="definition">Definition at line <a class="el" href="_permute_8cpp_source.html#l00114">114</a> of file <a class="el" href="_permute_8cpp_source.html">Permute.cpp</a>.</p>
1110
1111<p class="reference">References <a class="el" href="_tensor_8hpp_source.html#l00088">TensorInfo::GetShape()</a>, <a class="el" href="_permute_8cpp_source.html#l00098">Permuted()</a>, and <a class="el" href="_tensor_8hpp_source.html#l00090">TensorInfo::SetShape()</a>.</p>
1112<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.html">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.html#abeaf4f6785039866fd075f4569ba8e84">Permuted</a>(info.<a class="code" href="classarmnn_1_1_tensor_info.html#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_html"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.html#l00053">Tensor.hpp:53</a></div></div>
1113<div class="ttc" id="namespacearmnn_utils_html_abeaf4f6785039866fd075f4569ba8e84"><div class="ttname"><a href="namespacearmnn_utils.html#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.html#l00098">Permute.cpp:98</a></div></div>
1114<div class="ttc" id="classarmnn_1_1_tensor_info_html_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#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.html#l00088">Tensor.hpp:88</a></div></div>
1115</div><!-- fragment -->
1116</div>
1117</div>
1118<a id="a523deabeb7d0a884028b35eebfd1cb6c"></a>
1119<h2 class="memtitle"><span class="permalink"><a href="#a523deabeb7d0a884028b35eebfd1cb6c">&#9670;&nbsp;</a></span>ProcessConcatInputTensorInfo()</h2>
1120
1121<div class="memitem">
1122<div class="memproto">
1123 <table class="memname">
1124 <tr>
1125 <td class="memname">void ProcessConcatInputTensorInfo </td>
1126 <td>(</td>
1127 <td class="paramtype"><a class="el" href="classarmnn_1_1_tensor_info.html">armnn::TensorInfo</a> &amp;&#160;</td>
1128 <td class="paramname"><em>inputTensorInfo</em>, </td>
1129 </tr>
1130 <tr>
1131 <td class="paramkey"></td>
1132 <td></td>
1133 <td class="paramtype"><a class="el" href="structarmnn_1_1_origins_descriptor.html">armnn::OriginsDescriptor</a> &amp;&#160;</td>
1134 <td class="paramname"><em>concatDescriptor</em>, </td>
1135 </tr>
1136 <tr>
1137 <td class="paramkey"></td>
1138 <td></td>
1139 <td class="paramtype">const unsigned int &amp;&#160;</td>
1140 <td class="paramname"><em>concatAxis</em>, </td>
1141 </tr>
1142 <tr>
1143 <td class="paramkey"></td>
1144 <td></td>
1145 <td class="paramtype">unsigned int&#160;</td>
1146 <td class="paramname"><em>inputIndex</em>, </td>
1147 </tr>
1148 <tr>
1149 <td class="paramkey"></td>
1150 <td></td>
1151 <td class="paramtype">unsigned int &amp;&#160;</td>
1152 <td class="paramname"><em>mergeDimOrigin</em>&#160;</td>
1153 </tr>
1154 <tr>
1155 <td></td>
1156 <td>)</td>
1157 <td></td><td></td>
1158 </tr>
1159 </table>
1160</div><div class="memdoc">
1161
1162<p class="definition">Definition at line <a class="el" href="_parser_helper_8cpp_source.html#l00019">19</a> of file <a class="el" href="_parser_helper_8cpp_source.html">ParserHelper.cpp</a>.</p>
1163
1164<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00169">CHECK_LOCATION</a>, <a class="el" href="_tensor_8hpp_source.html#l00092">TensorInfo::GetNumDimensions()</a>, <a class="el" href="_descriptors_8cpp_source.html#l00184">OriginsDescriptor::GetNumDimensions()</a>, <a class="el" href="_tensor_8hpp_source.html#l00088">TensorInfo::GetShape()</a>, and <a class="el" href="_descriptors_8cpp_source.html#l00159">OriginsDescriptor::SetViewOriginCoord()</a>.</p>
1165
1166<p class="reference">Referenced by <a class="el" href="_tf_lite_parser_8cpp_source.html#l01901">TfLiteParser::OutputShapeOfReshape()</a>.</p>
1167<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.html#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.html#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.html">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.html#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.html#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.html#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.html#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.html#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.html#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_html_a157e27d41e9f6b21f0d3c025fa47dc24"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#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.html#l00092">Tensor.hpp:92</a></div></div>
1168<div class="ttc" id="classarmnn_1_1_parse_exception_html"><div class="ttname"><a href="classarmnn_1_1_parse_exception.html">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00092">Exceptions.hpp:92</a></div></div>
1169<div class="ttc" id="structarmnn_1_1_origins_descriptor_html_a2b125117aa61f9baf3a9cb8658aa61a2"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.html#a2b125117aa61f9baf3a9cb8658aa61a2">armnn::OriginsDescriptor::SetViewOriginCoord</a></div><div class="ttdeci">Status SetViewOriginCoord(uint32_t view, uint32_t coord, uint32_t value)</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.html#l00159">Descriptors.cpp:159</a></div></div>
1170<div class="ttc" id="_exceptions_8hpp_html_aa3be76aec4ce713822a5ea1ecbb7bc61"><div class="ttname"><a href="_exceptions_8hpp.html#aa3be76aec4ce713822a5ea1ecbb7bc61">CHECK_LOCATION</a></div><div class="ttdeci">#define CHECK_LOCATION()</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00169">Exceptions.hpp:169</a></div></div>
1171<div class="ttc" id="structarmnn_1_1_origins_descriptor_html_a78e8266be865fdd92cadd04d6e25ae1f"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.html#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.html#l00184">Descriptors.cpp:184</a></div></div>
1172<div class="ttc" id="classarmnn_1_1_tensor_info_html_a8b5d0f8a24e9d9238f412260a552acf8"><div class="ttname"><a href="classarmnn_1_1_tensor_info.html#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.html#l00088">Tensor.hpp:88</a></div></div>
1173</div><!-- fragment -->
1174</div>
1175</div>
1176<a id="afb0aab92dc5b9bc5d7ebe2ea036f3809"></a>
1177<h2 class="memtitle"><span class="permalink"><a href="#afb0aab92dc5b9bc5d7ebe2ea036f3809">&#9670;&nbsp;</a></span>QuantizedVector() <span class="overload">[1/3]</span></h2>
1178
1179<div class="memitem">
1180<div class="memproto">
1181 <table class="memname">
1182 <tr>
1183 <td class="memname">std::vector&lt;T&gt; armnnUtils::QuantizedVector </td>
1184 <td>(</td>
1185 <td class="paramtype">FloatIt&#160;</td>
1186 <td class="paramname"><em>first</em>, </td>
1187 </tr>
1188 <tr>
1189 <td class="paramkey"></td>
1190 <td></td>
1191 <td class="paramtype">FloatIt&#160;</td>
1192 <td class="paramname"><em>last</em>, </td>
1193 </tr>
1194 <tr>
1195 <td class="paramkey"></td>
1196 <td></td>
1197 <td class="paramtype">float&#160;</td>
1198 <td class="paramname"><em>qScale</em>, </td>
1199 </tr>
1200 <tr>
1201 <td class="paramkey"></td>
1202 <td></td>
1203 <td class="paramtype">int32_t&#160;</td>
1204 <td class="paramname"><em>qOffset</em>&#160;</td>
1205 </tr>
1206 <tr>
1207 <td></td>
1208 <td>)</td>
1209 <td></td><td></td>
1210 </tr>
1211 </table>
1212</div><div class="memdoc">
1213
1214<p class="definition">Definition at line <a class="el" href="_quantize_helper_8hpp_source.html#l00089">89</a> of file <a class="el" href="_quantize_helper_8hpp_source.html">QuantizeHelper.hpp</a>.</p>
1215<div class="fragment"><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; std::vector&lt;T&gt; quantized;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; quantized.reserve(boost::numeric_cast&lt;size_t&gt;(std::distance(first, last)));</div><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">for</span> (<span class="keyword">auto</span> it = first; it != last; ++it)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">auto</span> f = *it;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; T q = SelectiveQuantize&lt;T&gt;(f, qScale, qOffset);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; quantized.push_back(q);</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;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> quantized;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div></div><!-- fragment -->
1216</div>
1217</div>
1218<a id="ad10541679f7d9740ba7a3c96b9843456"></a>
1219<h2 class="memtitle"><span class="permalink"><a href="#ad10541679f7d9740ba7a3c96b9843456">&#9670;&nbsp;</a></span>QuantizedVector() <span class="overload">[2/3]</span></h2>
1220
1221<div class="memitem">
1222<div class="memproto">
1223 <table class="memname">
1224 <tr>
1225 <td class="memname">std::vector&lt;T&gt; armnnUtils::QuantizedVector </td>
1226 <td>(</td>
1227 <td class="paramtype">const std::vector&lt; float &gt; &amp;&#160;</td>
1228 <td class="paramname"><em>array</em>, </td>
1229 </tr>
1230 <tr>
1231 <td class="paramkey"></td>
1232 <td></td>
1233 <td class="paramtype">float&#160;</td>
1234 <td class="paramname"><em>qScale</em> = <code>1.f</code>, </td>
1235 </tr>
1236 <tr>
1237 <td class="paramkey"></td>
1238 <td></td>
1239 <td class="paramtype">int32_t&#160;</td>
1240 <td class="paramname"><em>qOffset</em> = <code>0</code>&#160;</td>
1241 </tr>
1242 <tr>
1243 <td></td>
1244 <td>)</td>
1245 <td></td><td></td>
1246 </tr>
1247 </table>
1248</div><div class="memdoc">
1249
1250<p class="definition">Definition at line <a class="el" href="_quantize_helper_8hpp_source.html#l00105">105</a> of file <a class="el" href="_quantize_helper_8hpp_source.html">QuantizeHelper.hpp</a>.</p>
1251<div class="fragment"><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; <span class="keywordflow">return</span> QuantizedVector&lt;T&gt;(array.begin(), array.end(), qScale, qOffset);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div></div><!-- fragment -->
1252</div>
1253</div>
1254<a id="af29a7b903bf7ae9639ea29bc05ccb289"></a>
1255<h2 class="memtitle"><span class="permalink"><a href="#af29a7b903bf7ae9639ea29bc05ccb289">&#9670;&nbsp;</a></span>QuantizedVector() <span class="overload">[3/3]</span></h2>
1256
1257<div class="memitem">
1258<div class="memproto">
1259 <table class="memname">
1260 <tr>
1261 <td class="memname">std::vector&lt;T&gt; armnnUtils::QuantizedVector </td>
1262 <td>(</td>
1263 <td class="paramtype">std::initializer_list&lt; float &gt;&#160;</td>
1264 <td class="paramname"><em>array</em>, </td>
1265 </tr>
1266 <tr>
1267 <td class="paramkey"></td>
1268 <td></td>
1269 <td class="paramtype">float&#160;</td>
1270 <td class="paramname"><em>qScale</em> = <code>1.f</code>, </td>
1271 </tr>
1272 <tr>
1273 <td class="paramkey"></td>
1274 <td></td>
1275 <td class="paramtype">int32_t&#160;</td>
1276 <td class="paramname"><em>qOffset</em> = <code>0</code>&#160;</td>
1277 </tr>
1278 <tr>
1279 <td></td>
1280 <td>)</td>
1281 <td></td><td></td>
1282 </tr>
1283 </table>
1284</div><div class="memdoc">
1285
1286<p class="definition">Definition at line <a class="el" href="_quantize_helper_8hpp_source.html#l00111">111</a> of file <a class="el" href="_quantize_helper_8hpp_source.html">QuantizeHelper.hpp</a>.</p>
1287<div class="fragment"><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="keywordflow">return</span> QuantizedVector&lt;T&gt;(array.begin(), array.end(), qScale, qOffset);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div></div><!-- fragment -->
1288</div>
1289</div>
1290<a id="a5135dc1ce7a8aeb97623c1a92c5a3543"></a>
1291<h2 class="memtitle"><span class="permalink"><a href="#a5135dc1ce7a8aeb97623c1a92c5a3543">&#9670;&nbsp;</a></span>SelectiveDequantize()</h2>
1292
1293<div class="memitem">
1294<div class="memproto">
1295 <table class="memname">
1296 <tr>
1297 <td class="memname">float armnnUtils::SelectiveDequantize </td>
1298 <td>(</td>
1299 <td class="paramtype">T&#160;</td>
1300 <td class="paramname"><em>value</em>, </td>
1301 </tr>
1302 <tr>
1303 <td class="paramkey"></td>
1304 <td></td>
1305 <td class="paramtype">float&#160;</td>
1306 <td class="paramname"><em>scale</em>, </td>
1307 </tr>
1308 <tr>
1309 <td class="paramkey"></td>
1310 <td></td>
1311 <td class="paramtype">int32_t&#160;</td>
1312 <td class="paramname"><em>offset</em>&#160;</td>
1313 </tr>
1314 <tr>
1315 <td></td>
1316 <td>)</td>
1317 <td></td><td></td>
1318 </tr>
1319 </table>
1320</div><div class="memdoc">
1321
1322<p class="definition">Definition at line <a class="el" href="_quantize_helper_8hpp_source.html#l00075">75</a> of file <a class="el" href="_quantize_helper_8hpp_source.html">QuantizeHelper.hpp</a>.</p>
1323
1324<p class="reference">References <a class="el" href="_quantize_helper_8hpp_source.html#l00030">SelectiveQuantizer&lt; T, DoQuantize &gt;::Dequantize()</a>.</p>
1325
1326<p class="reference">Referenced by <a class="el" href="_conv2d_test_impl_8cpp_source.html#l00169">ApplyBias()</a>.</p>
1327<div class="fragment"><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">return</span> SelectiveQuantizer&lt;T, armnn::IsQuantizedType&lt;T&gt;()&gt;::<a class="code" href="namespacearmnn.html#a855293b1be0581fb61ef6a1c5b027d0f">Dequantize</a>(value, scale, offset);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;};</div><div class="ttc" id="namespacearmnn_html_a855293b1be0581fb61ef6a1c5b027d0f"><div class="ttname"><a href="namespacearmnn.html#a855293b1be0581fb61ef6a1c5b027d0f">armnn::Dequantize</a></div><div class="ttdeci">float Dequantize(QuantizedType value, float scale, int32_t offset)</div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8cpp_source.html#l00047">TypesUtils.cpp:47</a></div></div>
1328</div><!-- fragment -->
1329</div>
1330</div>
1331<a id="a21b249bca87a5ad47359abd9ec7acada"></a>
1332<h2 class="memtitle"><span class="permalink"><a href="#a21b249bca87a5ad47359abd9ec7acada">&#9670;&nbsp;</a></span>SelectiveQuantize()</h2>
1333
1334<div class="memitem">
1335<div class="memproto">
1336 <table class="memname">
1337 <tr>
1338 <td class="memname">T armnnUtils::SelectiveQuantize </td>
1339 <td>(</td>
1340 <td class="paramtype">float&#160;</td>
1341 <td class="paramname"><em>value</em>, </td>
1342 </tr>
1343 <tr>
1344 <td class="paramkey"></td>
1345 <td></td>
1346 <td class="paramtype">float&#160;</td>
1347 <td class="paramname"><em>scale</em>, </td>
1348 </tr>
1349 <tr>
1350 <td class="paramkey"></td>
1351 <td></td>
1352 <td class="paramtype">int32_t&#160;</td>
1353 <td class="paramname"><em>offset</em>&#160;</td>
1354 </tr>
1355 <tr>
1356 <td></td>
1357 <td>)</td>
1358 <td></td><td></td>
1359 </tr>
1360 </table>
1361</div><div class="memdoc">
1362
1363<p class="definition">Definition at line <a class="el" href="_quantize_helper_8hpp_source.html#l00069">69</a> of file <a class="el" href="_quantize_helper_8hpp_source.html">QuantizeHelper.hpp</a>.</p>
1364
1365<p class="reference">References <a class="el" href="_quantize_helper_8hpp_source.html#l00025">SelectiveQuantizer&lt; T, DoQuantize &gt;::Quantize()</a>.</p>
1366<div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> SelectiveQuantizer&lt;T, armnn::IsQuantizedType&lt;T&gt;()&gt;::<a class="code" href="namespacearmnn.html#ad773a034fb9983e15f3094b4c5c7c30c">Quantize</a>(value, scale, offset);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div><div class="ttc" id="namespacearmnn_html_ad773a034fb9983e15f3094b4c5c7c30c"><div class="ttname"><a href="namespacearmnn.html#ad773a034fb9983e15f3094b4c5c7c30c">armnn::Quantize</a></div><div class="ttdeci">QuantizedType Quantize(float value, float scale, int32_t offset)</div><div class="ttdoc">Explicit specialization of Quantize for int8_t. </div><div class="ttdef"><b>Definition:</b> <a href="_types_utils_8cpp_source.html#l00031">TypesUtils.cpp:31</a></div></div>
1367</div><!-- fragment -->
1368</div>
1369</div>
1370<a id="a71164960978af8b3820717bc92b9a322"></a>
1371<h2 class="memtitle"><span class="permalink"><a href="#a71164960978af8b3820717bc92b9a322">&#9670;&nbsp;</a></span>SplitBy()</h2>
1372
1373<div class="memitem">
1374<div class="memproto">
1375 <table class="memname">
1376 <tr>
1377 <td class="memname">std::vector&lt; std::string &gt; SplitBy </td>
1378 <td>(</td>
1379 <td class="paramtype">const std::string &amp;&#160;</td>
1380 <td class="paramname"><em>originalString</em>, </td>
1381 </tr>
1382 <tr>
1383 <td class="paramkey"></td>
1384 <td></td>
1385 <td class="paramtype">const std::string &amp;&#160;</td>
1386 <td class="paramname"><em>delimiter</em> = <code>&quot;&#160;&quot;</code>, </td>
1387 </tr>
1388 <tr>
1389 <td class="paramkey"></td>
1390 <td></td>
1391 <td class="paramtype">bool&#160;</td>
1392 <td class="paramname"><em>includeEmptyToken</em> = <code><a class="el" href="_ref_layer_tests_8cpp.html#a67e2647a90dec71bb79c8b38872ba570">false</a></code>&#160;</td>
1393 </tr>
1394 <tr>
1395 <td></td>
1396 <td>)</td>
1397 <td></td><td></td>
1398 </tr>
1399 </table>
1400</div><div class="memdoc">
1401<p>Split a string into tokens by a delimiter</p>
1402<dl class="params"><dt>Parameters</dt><dd>
1403 <table class="params">
1404 <tr><td class="paramdir">[in]</td><td class="paramname">originalString</td><td>Original string to be split </td></tr>
1405 <tr><td class="paramdir">[in]</td><td class="paramname">delimiter</td><td>Delimiter used to split <code>originalString</code> </td></tr>
1406 <tr><td class="paramdir">[in]</td><td class="paramname">includeEmptyToekn</td><td>If true, include empty tokens in the result </td></tr>
1407 </table>
1408 </dd>
1409</dl>
1410<dl class="section return"><dt>Returns</dt><dd>A vector of tokens split from <code>originalString</code> by </dd></dl>
1411
1412<p class="definition">Definition at line <a class="el" href="_model_accuracy_checker_8cpp_source.html#l00041">41</a> of file <a class="el" href="_model_accuracy_checker_8cpp_source.html">ModelAccuracyChecker.cpp</a>.</p>
1413
1414<p class="reference">Referenced by <a class="el" href="_model_accuracy_tool-_armnn_8cpp_source.html#l00466">LoadModelOutputLabels()</a>, and <a class="el" href="_model_accuracy_tool-_armnn_8cpp_source.html#l00049">main()</a>.</p>
1415<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 -->
1416</div>
1417</div>
1418<a id="a24f7c8ffa12c4c91bc2cecd4d329add4"></a>
1419<h2 class="memtitle"><span class="permalink"><a href="#a24f7c8ffa12c4c91bc2cecd4d329add4">&#9670;&nbsp;</a></span>Strip()</h2>
1420
1421<div class="memitem">
1422<div class="memproto">
1423 <table class="memname">
1424 <tr>
1425 <td class="memname">std::string Strip </td>
1426 <td>(</td>
1427 <td class="paramtype">const std::string &amp;&#160;</td>
1428 <td class="paramname"><em>originalString</em>, </td>
1429 </tr>
1430 <tr>
1431 <td class="paramkey"></td>
1432 <td></td>
1433 <td class="paramtype">const std::string &amp;&#160;</td>
1434 <td class="paramname"><em>characterSet</em> = <code>&quot;&#160;&quot;</code>&#160;</td>
1435 </tr>
1436 <tr>
1437 <td></td>
1438 <td>)</td>
1439 <td></td><td></td>
1440 </tr>
1441 </table>
1442</div><div class="memdoc">
1443<p>Remove any preceding and trailing character specified in the characterSet.</p>
1444<dl class="params"><dt>Parameters</dt><dd>
1445 <table class="params">
1446 <tr><td class="paramdir">[in]</td><td class="paramname">originalString</td><td>Original string to be stripped </td></tr>
1447 <tr><td class="paramdir">[in]</td><td class="paramname">characterSet</td><td>Set of characters to be stripped from <code>originalString</code> </td></tr>
1448 </table>
1449 </dd>
1450</dl>
1451<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>
1452
1453<p class="definition">Definition at line <a class="el" href="_model_accuracy_checker_8cpp_source.html#l00065">65</a> of file <a class="el" href="_model_accuracy_checker_8cpp_source.html">ModelAccuracyChecker.cpp</a>.</p>
1454
1455<p class="reference">Referenced by <a class="el" href="_model_accuracy_tool-_armnn_8cpp_source.html#l00466">LoadModelOutputLabels()</a>.</p>
1456<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 -->
1457</div>
1458</div>
1459<a id="a2e0aa273755368a1bf5fc65102df4a92"></a>
1460<h2 class="memtitle"><span class="permalink"><a href="#a2e0aa273755368a1bf5fc65102df4a92">&#9670;&nbsp;</a></span>VerifyInt32()</h2>
1461
1462<div class="memitem">
1463<div class="memproto">
1464 <table class="memname">
1465 <tr>
1466 <td class="memname">int32_t VerifyInt32 </td>
1467 <td>(</td>
1468 <td class="paramtype">const char *&#160;</td>
1469 <td class="paramname"><em>expr</em>, </td>
1470 </tr>
1471 <tr>
1472 <td class="paramkey"></td>
1473 <td></td>
1474 <td class="paramtype">int64_t&#160;</td>
1475 <td class="paramname"><em>value</em>, </td>
1476 </tr>
1477 <tr>
1478 <td class="paramkey"></td>
1479 <td></td>
1480 <td class="paramtype">const <a class="el" href="structarmnn_1_1_check_location.html">armnn::CheckLocation</a> &amp;&#160;</td>
1481 <td class="paramname"><em>location</em>&#160;</td>
1482 </tr>
1483 <tr>
1484 <td></td>
1485 <td>)</td>
1486 <td></td><td></td>
1487 </tr>
1488 </table>
1489</div><div class="memdoc">
1490
1491<p class="definition">Definition at line <a class="el" href="_verification_helpers_8cpp_source.html#l00055">55</a> of file <a class="el" href="_verification_helpers_8cpp_source.html">VerificationHelpers.cpp</a>.</p>
1492
1493<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00029">CheckLocation::AsString()</a>.</p>
1494<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.html">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.html#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="classarmnn_1_1_parse_exception_html"><div class="ttname"><a href="classarmnn_1_1_parse_exception.html">armnn::ParseException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00092">Exceptions.hpp:92</a></div></div>
1495<div class="ttc" id="structarmnn_1_1_check_location_html_a5e3562cda960da001597e7dd5679b140"><div class="ttname"><a href="structarmnn_1_1_check_location.html#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.html#l00029">Exceptions.hpp:29</a></div></div>
1496</div><!-- fragment -->
1497</div>
1498</div>
1499<h2 class="groupheader">Variable Documentation</h2>
1500<a id="a59cbccbfbae7633020d200f8c23fe69e"></a>
1501<h2 class="memtitle"><span class="permalink"><a href="#a59cbccbfbae7633020d200f8c23fe69e">&#9670;&nbsp;</a></span>ArmNNToNHWC</h2>
1502
1503<div class="memitem">
1504<div class="memproto">
1505 <table class="memname">
1506 <tr>
1507 <td class="memname">const <a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a> ArmNNToNHWC = { 0, 3, 1, 2 }</td>
1508 </tr>
1509 </table>
1510</div><div class="memdoc">
1511
1512<p class="definition">Definition at line <a class="el" href="_parser_helper_8cpp_source.html#l00017">17</a> of file <a class="el" href="_parser_helper_8cpp_source.html">ParserHelper.cpp</a>.</p>
1513
1514</div>
1515</div>
1516<a id="a12124184ac6aec018beb98b9715330c7"></a>
1517<h2 class="memtitle"><span class="permalink"><a href="#a12124184ac6aec018beb98b9715330c7">&#9670;&nbsp;</a></span>NHWCToArmNN</h2>
1518
1519<div class="memitem">
1520<div class="memproto">
1521 <table class="memname">
1522 <tr>
1523 <td class="memname">const <a class="el" href="classarmnn_1_1_permutation_vector.html">armnn::PermutationVector</a> NHWCToArmNN = { 0, 2, 3, 1 }</td>
1524 </tr>
1525 </table>
1526</div><div class="memdoc">
1527
1528<p class="definition">Definition at line <a class="el" href="_parser_helper_8cpp_source.html#l00016">16</a> of file <a class="el" href="_parser_helper_8cpp_source.html">ParserHelper.cpp</a>.</p>
1529
1530<p class="reference">Referenced by <a class="el" href="_image_tensor_generator_8hpp_source.html#l00091">PrepareImageTensor&lt; float &gt;()</a>.</p>
1531
1532</div>
1533</div>
1534</div><!-- contents -->
1535</div><!-- doc-content -->
1536<!-- start footer part -->
1537<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1538 <ul>
1539 <li class="navelem"><a class="el" href="namespacearmnn_utils.html">armnnUtils</a></li>
1540 <li class="footer">Generated on Fri Mar 13 2020 16:07:06 for ArmNN by
1541 <a href="http://www.doxygen.org/index.html">
1542 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
1543 </ul>
1544</div>
1545</body>
1546</html>