diff options
Diffstat (limited to 'latest/structarmnn_1_1_stack_queue_descriptor.html')
-rw-r--r-- | latest/structarmnn_1_1_stack_queue_descriptor.html | 190 |
1 files changed, 95 insertions, 95 deletions
diff --git a/latest/structarmnn_1_1_stack_queue_descriptor.html b/latest/structarmnn_1_1_stack_queue_descriptor.html index 6f7c485f24..55a318d97a 100644 --- a/latest/structarmnn_1_1_stack_queue_descriptor.html +++ b/latest/structarmnn_1_1_stack_queue_descriptor.html @@ -36,7 +36,7 @@ <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/> <td id="projectalign" style="padding-left: 0.9em;"> <div id="projectname"> -  <span id="projectnumber">24.02</span> +  <span id="projectnumber">24.05</span> </div> </td> </tr> @@ -183,101 +183,101 @@ Additional Inherited Members</h2></td></tr> </table> </div><div class="memdoc"> -<p class="definition">Definition at line <a class="el" href="_workload_data_8cpp_source.html#l00914">914</a> of file <a class="el" href="_workload_data_8cpp_source.html">WorkloadData.cpp</a>.</p> -<div class="fragment"><div class="line"><a name="l00915"></a><span class="lineno"> 915</span> {</div> -<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="keyword">const</span> std::string descriptorName{<span class="stringliteral">"StackQueueDescriptor"</span>};</div> -<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  </div> -<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  ValidateNumOutputs(workloadInfo, descriptorName, 1);</div> +<p class="definition">Definition at line <a class="el" href="_workload_data_8cpp_source.html#l00916">916</a> of file <a class="el" href="_workload_data_8cpp_source.html">WorkloadData.cpp</a>.</p> +<div class="fragment"><div class="line"><a name="l00917"></a><span class="lineno"> 917</span> {</div> +<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keyword">const</span> std::string descriptorName{<span class="stringliteral">"StackQueueDescriptor"</span>};</div> <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  </div> -<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#aed6086070440ceb94129bef06f70173f">m_NumInputs</a> != workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>.size())</div> -<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  {</div> -<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Must have the defined number of input tensors."</span>);</div> -<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  }</div> -<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  </div> -<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="comment">// All inputs must have the same shape, which is defined in parameters</span></div> -<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_shape.html">TensorShape</a>& inputShape = <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#a2bea87b470268bb0b73457c3733dbc04">m_InputShape</a>;</div> -<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>.size(); ++i)</div> -<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  {</div> -<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keywordflow">if</span> (workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[i].GetShape() != inputShape)</div> -<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  {</div> -<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": All input tensor shapes must match the defined shape."</span>);</div> -<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  }</div> -<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  }</div> -<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  </div> -<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordflow">if</span> (inputShape.<a class="code" href="classarmnn_1_1_tensor_shape.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() > 4)</div> -<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  {</div> -<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Input tensor may have up to 4 dimensions."</span>);</div> -<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  }</div> -<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  </div> -<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <span class="comment">// m_Axis is 0-based and may take values from 0 to the number of input dimensions (inclusive),</span></div> -<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="comment">// since the output tensor has an additional dimension.</span></div> -<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#ab218de7805899c8412d75d1fd1d846d2">m_Axis</a> > inputShape.<a class="code" href="classarmnn_1_1_tensor_shape.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>())</div> -<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  {</div> -<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Axis may not be greater "</span></div> -<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <span class="stringliteral">"than the number of input dimensions."</span>);</div> -<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  }</div> -<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  </div> -<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <span class="comment">// Output shape must be as inferred from the input shape</span></div> -<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_shape.html">TensorShape</a>& outputShape = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[0].GetShape();</div> -<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#ab218de7805899c8412d75d1fd1d846d2">m_Axis</a>; ++i)</div> -<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  {</div> -<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keywordflow">if</span> (outputShape[i] != inputShape[i])</div> -<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  {</div> -<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Output tensor must "</span></div> -<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <span class="stringliteral">"match shape inferred from input tensor."</span>);</div> -<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  }</div> -<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  }</div> -<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  </div> -<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">if</span> (outputShape[<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#ab218de7805899c8412d75d1fd1d846d2">m_Axis</a>] != <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#aed6086070440ceb94129bef06f70173f">m_NumInputs</a>)</div> -<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  {</div> -<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Output tensor must "</span></div> -<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  <span class="stringliteral">"match shape inferred from input tensor."</span>);</div> -<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  }</div> -<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  </div> -<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#ab218de7805899c8412d75d1fd1d846d2">m_Axis</a> + 1; i < inputShape.<a class="code" href="classarmnn_1_1_tensor_shape.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() + 1; ++i)</div> -<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  {</div> -<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">if</span> (outputShape[i] != inputShape[i-1])</div> -<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  {</div> -<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Output tensor must "</span></div> -<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  <span class="stringliteral">"match shape inferred from input tensor."</span>);</div> -<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  }</div> -<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  }</div> -<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  </div> -<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  <span class="keywordflow">if</span> (outputShape.<a class="code" href="classarmnn_1_1_tensor_shape.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() > 5)</div> -<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  {</div> -<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Output tensor may have up to 5 dimensions."</span>);</div> -<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  }</div> -<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  </div> -<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="comment">// Check the supported data types</span></div> -<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  std::vector<DataType> supportedTypes =</div> -<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  {</div> -<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div> -<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div> -<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div> -<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b">DataType::Boolean</a>,</div> -<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a>,</div> -<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div> -<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div> -<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div> -<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  };</div> -<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  </div> -<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  ValidateDataTypes(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0], supportedTypes, descriptorName);</div> +<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  ValidateNumOutputs(workloadInfo, descriptorName, 1);</div> +<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  </div> +<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#aed6086070440ceb94129bef06f70173f">m_NumInputs</a> != workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>.size())</div> +<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  {</div> +<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Must have the defined number of input tensors."</span>);</div> +<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  }</div> +<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  </div> +<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="comment">// All inputs must have the same shape, which is defined in parameters</span></div> +<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_shape.html">TensorShape</a>& inputShape = <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#a2bea87b470268bb0b73457c3733dbc04">m_InputShape</a>;</div> +<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>.size(); ++i)</div> +<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  {</div> +<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <span class="keywordflow">if</span> (workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[i].GetShape() != inputShape)</div> +<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  {</div> +<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": All input tensor shapes must match the defined shape."</span>);</div> +<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  }</div> +<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  }</div> +<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  </div> +<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keywordflow">if</span> (inputShape.<a class="code" href="classarmnn_1_1_tensor_shape.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() > 4)</div> +<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  {</div> +<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Input tensor may have up to 4 dimensions."</span>);</div> +<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  }</div> +<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  </div> +<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="comment">// m_Axis is 0-based and may take values from 0 to the number of input dimensions (inclusive),</span></div> +<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <span class="comment">// since the output tensor has an additional dimension.</span></div> +<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#ab218de7805899c8412d75d1fd1d846d2">m_Axis</a> > inputShape.<a class="code" href="classarmnn_1_1_tensor_shape.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>())</div> +<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  {</div> +<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Axis may not be greater "</span></div> +<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <span class="stringliteral">"than the number of input dimensions."</span>);</div> +<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  }</div> +<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  </div> +<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="comment">// Output shape must be as inferred from the input shape</span></div> +<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_shape.html">TensorShape</a>& outputShape = workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[0].GetShape();</div> +<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#ab218de7805899c8412d75d1fd1d846d2">m_Axis</a>; ++i)</div> +<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  {</div> +<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <span class="keywordflow">if</span> (outputShape[i] != inputShape[i])</div> +<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  {</div> +<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Output tensor must "</span></div> +<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="stringliteral">"match shape inferred from input tensor."</span>);</div> +<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  }</div> +<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  }</div> +<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  </div> +<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">if</span> (outputShape[<a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#ab218de7805899c8412d75d1fd1d846d2">m_Axis</a>] != <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#aed6086070440ceb94129bef06f70173f">m_NumInputs</a>)</div> +<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  {</div> +<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Output tensor must "</span></div> +<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <span class="stringliteral">"match shape inferred from input tensor."</span>);</div> +<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  }</div> +<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  </div> +<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = <a class="code" href="structarmnn_1_1_queue_descriptor_with_parameters.html#aad91b9bbf7aa365d304febe79a3d1333">m_Parameters</a>.<a class="code" href="structarmnn_1_1_stack_descriptor.html#ab218de7805899c8412d75d1fd1d846d2">m_Axis</a> + 1; i < inputShape.<a class="code" href="classarmnn_1_1_tensor_shape.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() + 1; ++i)</div> +<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  {</div> +<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">if</span> (outputShape[i] != inputShape[i-1])</div> +<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  {</div> +<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Output tensor must "</span></div> +<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  <span class="stringliteral">"match shape inferred from input tensor."</span>);</div> +<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  }</div> +<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  }</div> +<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  </div> +<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <span class="keywordflow">if</span> (outputShape.<a class="code" href="classarmnn_1_1_tensor_shape.html#a157e27d41e9f6b21f0d3c025fa47dc24">GetNumDimensions</a>() > 5)</div> +<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  {</div> +<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a>(descriptorName + <span class="stringliteral">": Output tensor may have up to 5 dimensions."</span>);</div> +<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  }</div> +<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  </div> +<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <span class="comment">// Check the supported data types</span></div> +<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  std::vector<DataType> supportedTypes =</div> +<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  {</div> +<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">DataType::BFloat16</a>,</div> +<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">DataType::Float32</a>,</div> +<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">DataType::Float16</a>,</div> +<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b">DataType::Boolean</a>,</div> +<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">DataType::Signed32</a>,</div> +<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">DataType::QAsymmS8</a>,</div> +<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">DataType::QAsymmU8</a>,</div> +<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <a class="code" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">DataType::QSymmS16</a></div> +<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  };</div> <div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  </div> -<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 1ul; i < workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>.size(); ++i)</div> -<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  {</div> -<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  ValidateTensorDataTypesMatch(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0],</div> -<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[i],</div> -<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  descriptorName,</div> -<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="stringliteral">"input_0"</span>,</div> -<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="stringliteral">"input_"</span> + std::to_string(i));</div> -<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  }</div> -<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  </div> -<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  ValidateTensorDataTypesMatch(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0],</div> -<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[0],</div> -<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  descriptorName,</div> -<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  <span class="stringliteral">"input_0"</span>,</div> -<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="stringliteral">"output"</span>);</div> -<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> }</div> +<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  ValidateDataTypes(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0], supportedTypes, descriptorName);</div> +<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  </div> +<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 1ul; i < workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>.size(); ++i)</div> +<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  {</div> +<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  ValidateTensorDataTypesMatch(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0],</div> +<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[i],</div> +<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  descriptorName,</div> +<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="stringliteral">"input_0"</span>,</div> +<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <span class="stringliteral">"input_"</span> + std::to_string(i));</div> +<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  }</div> +<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  </div> +<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  ValidateTensorDataTypesMatch(workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#ac97905bfa0daab357b91df1347600309">m_InputTensorInfos</a>[0],</div> +<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  workloadInfo.<a class="code" href="structarmnn_1_1_workload_info.html#a67b178f8a836bc1e52b8de109760adfd">m_OutputTensorInfos</a>[0],</div> +<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  descriptorName,</div> +<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <span class="stringliteral">"input_0"</span>,</div> +<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <span class="stringliteral">"output"</span>);</div> +<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> }</div> </div><!-- fragment --> <p class="reference">References <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6acdb56b2d2f73c26480207524f2dbe0af">armnn::BFloat16</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a27226c864bac7454a8504f8edb15d95b">armnn::Boolean</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a26e6ed77470c6f2f830ecf874e6c0d55">armnn::Float16</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a166495adc0d0f53bee6baecc577f5204">armnn::Float32</a>, <a class="el" href="_tensor_8cpp_source.html#l00174">TensorShape::GetNumDimensions()</a>, <a class="el" href="_descriptors_8hpp_source.html#l01273">StackDescriptor::m_Axis</a>, <a class="el" href="_descriptors_8hpp_source.html#l01277">StackDescriptor::m_InputShape</a>, <a class="el" href="_workload_info_8hpp_source.html#l00018">WorkloadInfo::m_InputTensorInfos</a>, <a class="el" href="_descriptors_8hpp_source.html#l01275">StackDescriptor::m_NumInputs</a>, <a class="el" href="_workload_info_8hpp_source.html#l00019">WorkloadInfo::m_OutputTensorInfos</a>, <a class="el" href="_workload_data_8hpp_source.html#l00066">QueueDescriptorWithParameters< StackDescriptor >::m_Parameters</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a9d02ea768c081d4bdb2b7cab0b3f510d">armnn::QAsymmS8</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a0a3f57c876f5a230244c38e1453a8a6e">armnn::QAsymmU8</a>, <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6a053c769dcf82d66ef326c86980c02ba7">armnn::QSymmS16</a>, and <a class="el" href="namespacearmnn.html#ad8ed01ff3ff33333d8e19db4d2818bb6accedffbc6e5308e33d3843e8bdc0dad7">armnn::Signed32</a>.</p> @@ -310,7 +310,7 @@ Additional Inherited Members</h2></td></tr> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="structarmnn_1_1_stack_queue_descriptor.html">StackQueueDescriptor</a></li> - <li class="footer">Generated on Wed Feb 14 2024 16:36:25 for Arm NN by + <li class="footer">Generated on Thu May 16 2024 09:31:59 for Arm NN by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li> </ul> |