| <!-- HTML header for doxygen 1.8.15--> |
| <!-- Remember to use version doxygen 1.8.15 +--> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=9"/> |
| <meta name="generator" content="Doxygen 1.8.15"/> |
| <meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines --> |
| <title>Compute Library: NPYLoader Class Reference</title> |
| <link href="tabs.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="jquery.js"></script> |
| <script type="text/javascript" src="dynsections.js"></script> |
| <link href="navtree.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="resize.js"></script> |
| <script type="text/javascript" src="navtreedata.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ |
| $(document).ready(initResizable); |
| /* @license-end */</script> |
| <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/searchdata.js"></script> |
| <script type="text/javascript" src="search/search.js"></script> |
| <script type="text/x-mathjax-config"> |
| MathJax.Hub.Config({ |
| extensions: ["tex2jax.js"], |
| jax: ["input/TeX","output/HTML-CSS"], |
| }); |
| </script><script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script> |
| <link href="doxygen.css" rel="stylesheet" type="text/css" /> |
| <link href="stylesheet.css" rel="stylesheet" type="text/css"/> |
| </head> |
| <body> |
| <div id="top"><!-- do not remove this div, it is closed by doxygen! --> |
| <div id="titlearea"> |
| <table cellspacing="0" cellpadding="0"> |
| <tbody> |
| <tr style="height: 56px;"> |
| <img alt="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/> |
| <td style="padding-left: 0.5em;"> |
| <div id="projectname"> |
|  <span id="projectnumber">20.02.1</span> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.8.15 --> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ |
| var searchBox = new SearchBox("searchBox", "search",false,'Search'); |
| /* @license-end */ |
| </script> |
| <script type="text/javascript" src="menudata.js"></script> |
| <script type="text/javascript" src="menu.js"></script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ |
| $(function() { |
| initMenu('',true,false,'search.php','Search'); |
| $(document).ready(function() { init_search(); }); |
| }); |
| /* @license-end */</script> |
| <div id="main-nav"></div> |
| </div><!-- top --> |
| <div id="side-nav" class="ui-resizable side-nav-resizable"> |
| <div id="nav-tree"> |
| <div id="nav-tree-contents"> |
| <div id="nav-sync" class="sync"></div> |
| </div> |
| </div> |
| <div id="splitbar" style="-moz-user-select:none;" |
| class="ui-resizable-handle"> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ |
| $(document).ready(function(){initNavTree('classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml','');}); |
| /* @license-end */ |
| </script> |
| <div id="doc-content"> |
| <!-- window showing the filter options --> |
| <div id="MSearchSelectWindow" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| </div> |
| |
| <!-- iframe showing the search results (closed by default) --> |
| <div id="MSearchResultsWindow"> |
| <iframe src="javascript:void(0)" frameborder="0" |
| name="MSearchResults" id="MSearchResults"> |
| </iframe> |
| </div> |
| |
| <div class="header"> |
| <div class="summary"> |
| <a href="#pub-methods">Public Member Functions</a> </div> |
| <div class="headertitle"> |
| <div class="title">NPYLoader Class Reference</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| |
| <p>Numpy data loader. |
| <a href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#details">More...</a></p> |
| |
| <p><code>#include <<a class="el" href="utils_2_utils_8h_source.xhtml">Utils.h</a>></code></p> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> |
| Public Member Functions</h2></td></tr> |
| <tr class="memitem:a59ac86360353fd935c6979105da7aefa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a59ac86360353fd935c6979105da7aefa">NPYLoader</a> ()</td></tr> |
| <tr class="memdesc:a59ac86360353fd935c6979105da7aefa"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <a href="#a59ac86360353fd935c6979105da7aefa">More...</a><br /></td></tr> |
| <tr class="separator:a59ac86360353fd935c6979105da7aefa"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a739fd000f9e30bbc875cb48a9c6edab1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a739fd000f9e30bbc875cb48a9c6edab1">open</a> (const std::string &npy_filename, <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> file_layout=<a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a>)</td></tr> |
| <tr class="memdesc:a739fd000f9e30bbc875cb48a9c6edab1"><td class="mdescLeft"> </td><td class="mdescRight">Open a NPY file and reads its metadata. <a href="#a739fd000f9e30bbc875cb48a9c6edab1">More...</a><br /></td></tr> |
| <tr class="separator:a739fd000f9e30bbc875cb48a9c6edab1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2f57f54d8c03b615bb31eee091d8a88a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a2f57f54d8c03b615bb31eee091d8a88a">is_open</a> ()</td></tr> |
| <tr class="memdesc:a2f57f54d8c03b615bb31eee091d8a88a"><td class="mdescLeft"> </td><td class="mdescRight">Return true if a NPY file is currently open. <a href="#a2f57f54d8c03b615bb31eee091d8a88a">More...</a><br /></td></tr> |
| <tr class="separator:a2f57f54d8c03b615bb31eee091d8a88a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8aa067630bcfd267bf3389ae27e70e76"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a8aa067630bcfd267bf3389ae27e70e76">is_fortran</a> ()</td></tr> |
| <tr class="memdesc:a8aa067630bcfd267bf3389ae27e70e76"><td class="mdescLeft"> </td><td class="mdescRight">Return true if a NPY file is in fortran order. <a href="#a8aa067630bcfd267bf3389ae27e70e76">More...</a><br /></td></tr> |
| <tr class="separator:a8aa067630bcfd267bf3389ae27e70e76"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6e3c7f7584c89bfed519597f40c08528"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a6e3c7f7584c89bfed519597f40c08528"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a6e3c7f7584c89bfed519597f40c08528">init_tensor</a> (T &tensor, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">arm_compute::DataType</a> dt)</td></tr> |
| <tr class="memdesc:a6e3c7f7584c89bfed519597f40c08528"><td class="mdescLeft"> </td><td class="mdescRight">Initialise the tensor's metadata with the dimensions of the NPY file currently open. <a href="#a6e3c7f7584c89bfed519597f40c08528">More...</a><br /></td></tr> |
| <tr class="separator:a6e3c7f7584c89bfed519597f40c08528"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a055a51a536088065021a54e13968521d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a055a51a536088065021a54e13968521d"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a055a51a536088065021a54e13968521d">fill_tensor</a> (T &tensor)</td></tr> |
| <tr class="memdesc:a055a51a536088065021a54e13968521d"><td class="mdescLeft"> </td><td class="mdescRight">Fill a tensor with the content of the currently open NPY file. <a href="#a055a51a536088065021a54e13968521d">More...</a><br /></td></tr> |
| <tr class="separator:a055a51a536088065021a54e13968521d"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> |
| <div class="textblock"><p>Numpy data loader. </p> |
| |
| <p class="definition">Definition at line <a class="el" href="utils_2_utils_8h_source.xhtml#l00327">327</a> of file <a class="el" href="utils_2_utils_8h_source.xhtml">Utils.h</a>.</p> |
| </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> |
| <a id="a59ac86360353fd935c6979105da7aefa"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a59ac86360353fd935c6979105da7aefa">◆ </a></span>NPYLoader()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml">NPYLoader</a> </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">inline</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Default constructor. </p> |
| |
| <p class="definition">Definition at line <a class="el" href="utils_2_utils_8h_source.xhtml#l00331">331</a> of file <a class="el" href="utils_2_utils_8h_source.xhtml">Utils.h</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  : _fs(), _shape(), _fortran_order(<span class="keyword">false</span>), _typestring(), _file_layout(<a class="code" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a>)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  }</div><div class="ttc" id="namespacearm__compute_xhtml_ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f"><div class="ttname"><a href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">arm_compute::DataLayout::NCHW</a></div><div class="ttdoc">Num samples, channels, height, width.</div></div> |
| </div><!-- fragment --> |
| <p class="reference">References <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">arm_compute::NCHW</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Member Function Documentation</h2> |
| <a id="a055a51a536088065021a54e13968521d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a055a51a536088065021a54e13968521d">◆ </a></span>fill_tensor()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void fill_tensor </td> |
| <td>(</td> |
| <td class="paramtype">T & </td> |
| <td class="paramname"><em>tensor</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">inline</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Fill a tensor with the content of the currently open NPY file. </p> |
| <dl class="section note"><dt>Note</dt><dd>If the tensor is a <a class="el" href="classarm__compute_1_1_c_l_tensor.xhtml" title="Basic implementation of the OpenCL tensor interface.">CLTensor</a>, the function maps and unmaps the tensor</dd></dl> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in,out]</td><td class="paramname">tensor</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface.">Tensor</a> to fill (Must be allocated, and of matching dimensions with the opened NPY). </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p class="definition">Definition at line <a class="el" href="utils_2_utils_8h_source.xhtml#l00405">405</a> of file <a class="el" href="utils_2_utils_8h_source.xhtml">Utils.h</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(!<a class="code" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a2f57f54d8c03b615bb31eee091d8a88a">is_open</a>());</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="_validate_8h.xhtml#a4264d7e3318c4188e48127a75f3f0f8a">ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN</a>(&tensor, <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">arm_compute::DataType::QASYMM8</a>, <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">arm_compute::DataType::S32</a>, <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::DataType::F32</a>, <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">arm_compute::DataType::F16</a>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">try</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="comment">// Map buffer if creating a CLTensor</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="namespacearm__compute_1_1utils.xhtml#a9c3303817ba653b5d1e78efb88d02bcf">map</a>(tensor, <span class="keyword">true</span>);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="comment">// Check if the file is large enough to fill the tensor</span></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> current_position = _fs.tellg();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  _fs.seekg(0, std::ios_base::end);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> end_position = _fs.tellg();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  _fs.seekg(current_position, std::ios_base::beg);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="_error_8h.xhtml#a0b0eb3235749a2909dc5a101afe59a1b">ARM_COMPUTE_ERROR_ON_MSG</a>((end_position - current_position) < tensor.info()->tensor_shape().total_size() * tensor.info()->element_size(),</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="stringliteral">"Not enough data in file"</span>);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <a class="code" href="_error_8h.xhtml#a6dc630a6ae9cc063b3924bcea8dee9d6">ARM_COMPUTE_UNUSED</a>(end_position);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="comment">// Check if the typestring matches the given one</span></div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  std::string expect_typestr = <a class="code" href="namespacearm__compute_1_1utils.xhtml#a7990fd2b875e2f6d4c1eded54539cb19">get_typestring</a>(tensor.info()->data_type());</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <a class="code" href="_error_8h.xhtml#a0b0eb3235749a2909dc5a101afe59a1b">ARM_COMPUTE_ERROR_ON_MSG</a>(_typestring != expect_typestr, <span class="stringliteral">"Typestrings mismatch"</span>);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordtype">bool</span> are_layouts_different = (_file_layout != tensor.info()->data_layout());</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="comment">// Correct dimensions (Needs to match TensorShape dimension corrections)</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">if</span>(_shape.size() != tensor.info()->tensor_shape().num_dimensions())</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = static_cast<int>(_shape.size()) - 1; i > 0; --i)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">if</span>(_shape[i] == 1)</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  {</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  _shape.pop_back();</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  }</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  }</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> </div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  TensorShape permuted_shape = tensor.info()->tensor_shape();</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="classarm__compute_1_1_strides.xhtml">arm_compute::PermutationVector</a> perm;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">if</span>(are_layouts_different && tensor.info()->tensor_shape().num_dimensions() > 2)</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  perm = (tensor.info()->data_layout() == <a class="code" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">arm_compute::DataLayout::NHWC</a>) ? <a class="code" href="classarm__compute_1_1_strides.xhtml">arm_compute::PermutationVector</a>(2U, 0U, 1U) : <a class="code" href="namespacearm__compute.xhtml#a33e65be485104e2e9e69fca551d6f492">arm_compute::PermutationVector</a>(1U, 2U, 0U);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="classarm__compute_1_1_strides.xhtml">arm_compute::PermutationVector</a> perm_vec = (tensor.info()->data_layout() == <a class="code" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">arm_compute::DataLayout::NCHW</a>) ? <a class="code" href="classarm__compute_1_1_strides.xhtml">arm_compute::PermutationVector</a>(2U, 0U, 1U) : <a class="code" href="namespacearm__compute.xhtml#a33e65be485104e2e9e69fca551d6f492">arm_compute::PermutationVector</a>(1U, 2U, 0U);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="namespacearm__compute.xhtml#a21c3e11887f3acf9284ca763372c7da0">arm_compute::permute</a>(permuted_shape, perm_vec);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="comment">// Validate tensor shape</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <a class="code" href="_error_8h.xhtml#a0b0eb3235749a2909dc5a101afe59a1b">ARM_COMPUTE_ERROR_ON_MSG</a>(_shape.size() != tensor.info()->tensor_shape().num_dimensions(), <span class="stringliteral">"Tensor ranks mismatch"</span>);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < _shape.size(); ++i)</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="_error_8h.xhtml#a0b0eb3235749a2909dc5a101afe59a1b">ARM_COMPUTE_ERROR_ON_MSG</a>(permuted_shape[i] != _shape[i], <span class="stringliteral">"Tensor dimensions mismatch"</span>);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">switch</span>(tensor.info()->data_type())</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">arm_compute::DataType::QASYMM8</a>:</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">arm_compute::DataType::S32</a>:</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::DataType::F32</a>:</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">case</span> <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">arm_compute::DataType::F16</a>:</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="comment">// Read data</span></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordflow">if</span>(!are_layouts_different && !_fortran_order && tensor.info()->padding().empty())</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="comment">// If tensor has no padding read directly from stream.</span></div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  _fs.read(reinterpret_cast<char *>(tensor.buffer()), tensor.info()->total_size());</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  }</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="comment">// If tensor has padding or is in fortran order accessing tensor elements through execution window.</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  Window window;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> num_dims = _shape.size();</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keywordflow">if</span>(_fortran_order)</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dim = 0; dim < num_dims; dim++)</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  permuted_shape.set(dim, _shape[num_dims - dim - 1]);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  perm.<a class="code" href="classarm__compute_1_1_dimensions.xhtml#a982730e6f0da5f9490f59bc5f6bb3f27">set</a>(dim, num_dims - dim - 1);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  }</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">if</span>(are_layouts_different)</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  {</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="comment">// Permute only if num_dimensions greater than 2</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">if</span>(num_dims > 2)</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">if</span>(_file_layout == <a class="code" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">DataLayout::NHWC</a>) <span class="comment">// i.e destination is NCHW --> permute(1,2,0)</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <a class="code" href="namespacearm__compute.xhtml#a21c3e11887f3acf9284ca763372c7da0">arm_compute::permute</a>(perm, <a class="code" href="classarm__compute_1_1_strides.xhtml">arm_compute::PermutationVector</a>(1U, 2U, 0U));</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <a class="code" href="namespacearm__compute.xhtml#a21c3e11887f3acf9284ca763372c7da0">arm_compute::permute</a>(perm, <a class="code" href="classarm__compute_1_1_strides.xhtml">arm_compute::PermutationVector</a>(2U, 0U, 1U));</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  }</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  window.use_tensor_dimensions(permuted_shape);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="namespacearm__compute.xhtml#a5002bf7ec46d52971f9526e94172cfee">execute_window_loop</a>(window, [&](<span class="keyword">const</span> Coordinates & <span class="keywordtype">id</span>)</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  Coordinates <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">dst</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <a class="code" href="namespacearm__compute.xhtml#a21c3e11887f3acf9284ca763372c7da0">arm_compute::permute</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">dst</a>, perm);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  _fs.read(reinterpret_cast<char *>(tensor.ptr_to_element(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">dst</a>)), tensor.info()->element_size());</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  });</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span> </div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="_error_8h.xhtml#a7cf8d8b669b8f7b05680230be30d60f4">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">"Unsupported data type"</span>);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  }</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="comment">// Unmap buffer if creating a CLTensor</span></div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="namespacearm__compute_1_1utils.xhtml#a4ff2134cb88cb5a27120cddb98b59774">unmap</a>(tensor);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  }</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">catch</span>(<span class="keyword">const</span> std::ifstream::failure &e)</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="_error_8h.xhtml#abd040a16dc0dbc75733e07aff93048a8">ARM_COMPUTE_ERROR_VAR</a>(<span class="stringliteral">"Loading NPY file: %s"</span>, e.what());</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  }</div><div class="ttc" id="_error_8h_xhtml_a7cf8d8b669b8f7b05680230be30d60f4"><div class="ttname"><a href="_error_8h.xhtml#a7cf8d8b669b8f7b05680230be30d60f4">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(msg)</div><div class="ttdoc">Print the given message then throw an std::runtime_error.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00352">Error.h:352</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::Format::F32</a></div><div class="ttdoc">1 channel, 1 F32 per channel</div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_a33e65be485104e2e9e69fca551d6f492"><div class="ttname"><a href="namespacearm__compute.xhtml#a33e65be485104e2e9e69fca551d6f492">arm_compute::PermutationVector</a></div><div class="ttdeci">Strides PermutationVector</div><div class="ttdoc">Permutation vector.</div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00048">Types.h:48</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_abd040a16dc0dbc75733e07aff93048a8"><div class="ttname"><a href="_error_8h.xhtml#abd040a16dc0dbc75733e07aff93048a8">ARM_COMPUTE_ERROR_VAR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_VAR(msg,...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00346">Error.h:346</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00466">Error.h:466</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1_dimensions_xhtml_a982730e6f0da5f9490f59bc5f6bb3f27"><div class="ttname"><a href="classarm__compute_1_1_dimensions.xhtml#a982730e6f0da5f9490f59bc5f6bb3f27">arm_compute::Dimensions::set</a></div><div class="ttdeci">void set(size_t dimension, T value)</div><div class="ttdoc">Accessor to set the value of one of the dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="_dimensions_8h_source.xhtml#l00074">Dimensions.h:74</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">arm_compute::Format::F16</a></div><div class="ttdoc">1 channel, 1 F16 per channel</div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_a21c3e11887f3acf9284ca763372c7da0"><div class="ttname"><a href="namespacearm__compute.xhtml#a21c3e11887f3acf9284ca763372c7da0">arm_compute::permute</a></div><div class="ttdeci">void permute(Dimensions< T > &dimensions, const PermutationVector &perm)</div><div class="ttdoc">Permutes given Dimensions according to a permutation vector.</div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_helpers_8h_source.xhtml#l00570">Helpers.h:570</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1utils_xhtml_a4ff2134cb88cb5a27120cddb98b59774"><div class="ttname"><a href="namespacearm__compute_1_1utils.xhtml#a4ff2134cb88cb5a27120cddb98b59774">arm_compute::utils::unmap</a></div><div class="ttdeci">void unmap(T &tensor)</div><div class="ttdoc">Unmaps a tensor if needed.</div><div class="ttdef"><b>Definition:</b> <a href="utils_2_utils_8h_source.xhtml#l00223">Utils.h:223</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">arm_compute::Format::S32</a></div><div class="ttdoc">1 channel, 1 S32 per channel</div></div> |
| <div class="ttc" id="namespacearm__compute_1_1utils_xhtml_a7990fd2b875e2f6d4c1eded54539cb19"><div class="ttname"><a href="namespacearm__compute_1_1utils.xhtml#a7990fd2b875e2f6d4c1eded54539cb19">arm_compute::utils::get_typestring</a></div><div class="ttdeci">std::string get_typestring(DataType data_type)</div><div class="ttdoc">Obtain numpy type string from DataType.</div><div class="ttdef"><b>Definition:</b> <a href="utils_2_utils_8h_source.xhtml#l00154">Utils.h:154</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_a6dc630a6ae9cc063b3924bcea8dee9d6"><div class="ttname"><a href="_error_8h.xhtml#a6dc630a6ae9cc063b3924bcea8dee9d6">ARM_COMPUTE_UNUSED</a></div><div class="ttdeci">#define ARM_COMPUTE_UNUSED(...)</div><div class="ttdoc">To avoid unused variables warnings.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00152">Error.h:152</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924"><div class="ttname"><a href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">arm_compute::DataType::QASYMM8</a></div><div class="ttdoc">quantized, asymmetric fixed-point 8-bit number unsigned</div></div> |
| <div class="ttc" id="_error_8h_xhtml_a0b0eb3235749a2909dc5a101afe59a1b"><div class="ttname"><a href="_error_8h.xhtml#a0b0eb3235749a2909dc5a101afe59a1b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond, msg)</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00456">Error.h:456</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_adbf67dcee294e673cf796f1ed8aeb6a4"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#adbf67dcee294e673cf796f1ed8aeb6a4">arm_compute::test::validation::dst</a></div><div class="ttdeci">CLTensor dst</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_absolute_difference_8cpp_source.xhtml#l00102">AbsoluteDifference.cpp:102</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1utils_1_1_n_p_y_loader_xhtml_a2f57f54d8c03b615bb31eee091d8a88a"><div class="ttname"><a href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a2f57f54d8c03b615bb31eee091d8a88a">arm_compute::utils::NPYLoader::is_open</a></div><div class="ttdeci">bool is_open()</div><div class="ttdoc">Return true if a NPY file is currently open.</div><div class="ttdef"><b>Definition:</b> <a href="utils_2_utils_8h_source.xhtml#l00359">Utils.h:359</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f"><div class="ttname"><a href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">arm_compute::DataLayout::NCHW</a></div><div class="ttdoc">Num samples, channels, height, width.</div></div> |
| <div class="ttc" id="classarm__compute_1_1_strides_xhtml"><div class="ttname"><a href="classarm__compute_1_1_strides.xhtml">arm_compute::Strides</a></div><div class="ttdoc">Strides of an item in bytes.</div><div class="ttdef"><b>Definition:</b> <a href="_strides_8h_source.xhtml#l00037">Strides.h:37</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1utils_xhtml_a9c3303817ba653b5d1e78efb88d02bcf"><div class="ttname"><a href="namespacearm__compute_1_1utils.xhtml#a9c3303817ba653b5d1e78efb88d02bcf">arm_compute::utils::map</a></div><div class="ttdeci">void map(T &tensor, bool blocking)</div><div class="ttdoc">Maps a tensor if needed.</div><div class="ttdef"><b>Definition:</b> <a href="utils_2_utils_8h_source.xhtml#l00212">Utils.h:212</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51"><div class="ttname"><a href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">arm_compute::DataLayout::NHWC</a></div><div class="ttdoc">Num samples, height, width, channels.</div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_a5002bf7ec46d52971f9526e94172cfee"><div class="ttname"><a href="namespacearm__compute.xhtml#a5002bf7ec46d52971f9526e94172cfee">arm_compute::execute_window_loop</a></div><div class="ttdeci">void execute_window_loop(const Window &w, L &&lambda_function, Ts &&... iterators)</div><div class="ttdoc">Iterate through the passed window, automatically adjusting the iterators and calling the lambda_funct...</div><div class="ttdef"><b>Definition:</b> <a href="_helpers_8inl_source.xhtml#l00123">Helpers.inl:123</a></div></div> |
| <div class="ttc" id="_validate_8h_xhtml_a4264d7e3318c4188e48127a75f3f0f8a"><div class="ttname"><a href="_validate_8h.xhtml#a4264d7e3318c4188e48127a75f3f0f8a">ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN(t,...)</div><div class="ttdef"><b>Definition:</b> <a href="_validate_8h_source.xhtml#l00692">Validate.h:692</a></div></div> |
| </div><!-- fragment --> |
| <p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00352">ARM_COMPUTE_ERROR</a>, <a class="el" href="_error_8h_source.xhtml#l00466">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_validate_8h_source.xhtml#l00692">ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN</a>, <a class="el" href="_error_8h_source.xhtml#l00456">ARM_COMPUTE_ERROR_ON_MSG</a>, <a class="el" href="_error_8h_source.xhtml#l00346">ARM_COMPUTE_ERROR_VAR</a>, <a class="el" href="_error_8h_source.xhtml#l00152">ARM_COMPUTE_UNUSED</a>, <a class="el" href="_c_l_2_absolute_difference_8cpp_source.xhtml#l00102">arm_compute::test::validation::dst</a>, <a class="el" href="_helpers_8inl_source.xhtml#l00123">arm_compute::execute_window_loop()</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">arm_compute::F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::F32</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00154">arm_compute::utils::get_typestring()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00359">NPYLoader::is_open()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00212">arm_compute::utils::map()</a>, <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">arm_compute::NCHW</a>, <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0ad066db54b89b0912e7e7c6da51e2da51">arm_compute::NHWC</a>, <a class="el" href="arm__compute_2core_2_helpers_8h_source.xhtml#l00570">arm_compute::permute()</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">arm_compute::QASYMM8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">arm_compute::S32</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00074">Dimensions< T >::set()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00078">TensorShape::set()</a>, <a class="el" href="_saturate_cast_8h_source.xhtml#l00057">arm_compute::utils::cast::U</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00223">arm_compute::utils::unmap()</a>, and <a class="el" href="_window_8inl_source.xhtml#l00264">Window::use_tensor_dimensions()</a>.</p> |
| |
| <p class="reference">Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00759">NumPyBinLoader::access_tensor()</a>.</p> |
| |
| </div> |
| </div> |
| <a id="a6e3c7f7584c89bfed519597f40c08528"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a6e3c7f7584c89bfed519597f40c08528">◆ </a></span>init_tensor()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void init_tensor </td> |
| <td>(</td> |
| <td class="paramtype">T & </td> |
| <td class="paramname"><em>tensor</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">arm_compute::DataType</a> </td> |
| <td class="paramname"><em>dt</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">inline</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Initialise the tensor's metadata with the dimensions of the NPY file currently open. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[out]</td><td class="paramname">tensor</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface.">Tensor</a> to initialise </td></tr> |
| <tr><td class="paramdir">[in]</td><td class="paramname">dt</td><td>Data type to use for the tensor </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p class="definition">Definition at line <a class="el" href="utils_2_utils_8h_source.xhtml#l00376">376</a> of file <a class="el" href="utils_2_utils_8h_source.xhtml">Utils.h</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(!<a class="code" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a2f57f54d8c03b615bb31eee091d8a88a">is_open</a>());</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(dt != <a class="code" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::DataType::F32</a>);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="comment">// Use the size of the input NPY tensor</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  TensorShape <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.set_num_dimensions(_shape.size());</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < _shape.size(); ++i)</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordtype">size_t</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a989ab3e96426615bb98e04e0235088ca">src</a> = i;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">if</span>(_fortran_order)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a989ab3e96426615bb98e04e0235088ca">src</a> = _shape.size() - 1 - i;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.set(i, _shape.at(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a989ab3e96426615bb98e04e0235088ca">src</a>));</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="classarm__compute_1_1_tensor_info.xhtml">arm_compute::TensorInfo</a> tensor_info(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>, 1, dt);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  tensor.allocator()->init(tensor_info);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_absolute_difference_8cpp_source.xhtml#l00097">AbsoluteDifference.cpp:97</a></div></div> |
| <div class="ttc" id="namespacearm__compute_xhtml_ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda"><div class="ttname"><a href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::Format::F32</a></div><div class="ttdoc">1 channel, 1 F32 per channel</div></div> |
| <div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00466">Error.h:466</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1utils_1_1_n_p_y_loader_xhtml_a2f57f54d8c03b615bb31eee091d8a88a"><div class="ttname"><a href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a2f57f54d8c03b615bb31eee091d8a88a">arm_compute::utils::NPYLoader::is_open</a></div><div class="ttdeci">bool is_open()</div><div class="ttdoc">Return true if a NPY file is currently open.</div><div class="ttdef"><b>Definition:</b> <a href="utils_2_utils_8h_source.xhtml#l00359">Utils.h:359</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1_tensor_info_xhtml"><div class="ttname"><a href="classarm__compute_1_1_tensor_info.xhtml">arm_compute::TensorInfo</a></div><div class="ttdoc">Store the tensor's metadata.</div><div class="ttdef"><b>Definition:</b> <a href="_tensor_info_8h_source.xhtml#l00045">TensorInfo.h:45</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a989ab3e96426615bb98e04e0235088ca"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a989ab3e96426615bb98e04e0235088ca">arm_compute::test::validation::src</a></div><div class="ttdeci">cast configure & src</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_cast_8cpp_source.xhtml#l00169">Cast.cpp:169</a></div></div> |
| </div><!-- fragment --> |
| <p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00466">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::F32</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00359">NPYLoader::is_open()</a>, <a class="el" href="_c_l_2_absolute_difference_8cpp_source.xhtml#l00097">arm_compute::test::validation::shape</a>, and <a class="el" href="_c_l_2_cast_8cpp_source.xhtml#l00169">arm_compute::test::validation::src</a>.</p> |
| |
| </div> |
| </div> |
| <a id="a8aa067630bcfd267bf3389ae27e70e76"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a8aa067630bcfd267bf3389ae27e70e76">◆ </a></span>is_fortran()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">bool is_fortran </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">inline</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Return true if a NPY file is in fortran order. </p> |
| |
| <p class="definition">Definition at line <a class="el" href="utils_2_utils_8h_source.xhtml#l00365">365</a> of file <a class="el" href="utils_2_utils_8h_source.xhtml">Utils.h</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">return</span> _fortran_order;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  }</div></div><!-- fragment --> |
| </div> |
| </div> |
| <a id="a2f57f54d8c03b615bb31eee091d8a88a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a2f57f54d8c03b615bb31eee091d8a88a">◆ </a></span>is_open()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">bool is_open </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">inline</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Return true if a NPY file is currently open. </p> |
| |
| <p class="definition">Definition at line <a class="el" href="utils_2_utils_8h_source.xhtml#l00359">359</a> of file <a class="el" href="utils_2_utils_8h_source.xhtml">Utils.h</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">return</span> _fs.is_open();</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div></div><!-- fragment --> |
| <p class="reference">Referenced by <a class="el" href="utils_2_utils_8h_source.xhtml#l00405">NPYLoader::fill_tensor()</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00376">NPYLoader::init_tensor()</a>, and <a class="el" href="utils_2_utils_8h_source.xhtml#l00341">NPYLoader::open()</a>.</p> |
| |
| </div> |
| </div> |
| <a id="a739fd000f9e30bbc875cb48a9c6edab1"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a739fd000f9e30bbc875cb48a9c6edab1">◆ </a></span>open()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void open </td> |
| <td>(</td> |
| <td class="paramtype">const std::string & </td> |
| <td class="paramname"><em>npy_filename</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> </td> |
| <td class="paramname"><em>file_layout</em> = <code><a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a></code> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">inline</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Open a NPY file and reads its metadata. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[in]</td><td class="paramname">npy_filename</td><td>File to open </td></tr> |
| <tr><td class="paramdir">[in]</td><td class="paramname">file_layout</td><td>(Optional) Layout in which the weights are stored in the file. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| <p class="definition">Definition at line <a class="el" href="utils_2_utils_8h_source.xhtml#l00341">341</a> of file <a class="el" href="utils_2_utils_8h_source.xhtml">Utils.h</a>.</p> |
| <div class="fragment"><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<a class="code" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a2f57f54d8c03b615bb31eee091d8a88a">is_open</a>());</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">try</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  _fs.open(npy_filename, std::ios::in | std::ios::binary);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="_error_8h.xhtml#ac75ba282eb0cacd31fd4c6e6a47dbbc8">ARM_COMPUTE_EXIT_ON_MSG_VAR</a>(!_fs.good(), <span class="stringliteral">"Failed to load binary data from %s"</span>, npy_filename.c_str());</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  _fs.exceptions(std::ifstream::failbit | std::ifstream::badbit);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  _file_layout = file_layout;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  std::tie(_shape, _fortran_order, _typestring) = <a class="code" href="namespacearm__compute_1_1utils.xhtml#acdab4f47904c52221c85cc80f408f183">parse_npy_header</a>(_fs);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">catch</span>(<span class="keyword">const</span> std::ifstream::failure &e)</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <a class="code" href="_error_8h.xhtml#abd040a16dc0dbc75733e07aff93048a8">ARM_COMPUTE_ERROR_VAR</a>(<span class="stringliteral">"Accessing %s: %s"</span>, npy_filename.c_str(), e.what());</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="ttc" id="_error_8h_xhtml_ac75ba282eb0cacd31fd4c6e6a47dbbc8"><div class="ttname"><a href="_error_8h.xhtml#ac75ba282eb0cacd31fd4c6e6a47dbbc8">ARM_COMPUTE_EXIT_ON_MSG_VAR</a></div><div class="ttdeci">#define ARM_COMPUTE_EXIT_ON_MSG_VAR(cond, msg,...)</div><div class="ttdoc">If the condition is true, the given message is printed and program exits.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00395">Error.h:395</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_abd040a16dc0dbc75733e07aff93048a8"><div class="ttname"><a href="_error_8h.xhtml#abd040a16dc0dbc75733e07aff93048a8">ARM_COMPUTE_ERROR_VAR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_VAR(msg,...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00346">Error.h:346</a></div></div> |
| <div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown.</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00466">Error.h:466</a></div></div> |
| <div class="ttc" id="namespacearm__compute_1_1utils_xhtml_acdab4f47904c52221c85cc80f408f183"><div class="ttname"><a href="namespacearm__compute_1_1utils.xhtml#acdab4f47904c52221c85cc80f408f183">arm_compute::utils::parse_npy_header</a></div><div class="ttdeci">std::tuple< std::vector< unsigned long >, bool, std::string > parse_npy_header(std::ifstream &fs)</div><div class="ttdoc">Parse the npy header from an input file stream.</div><div class="ttdef"><b>Definition:</b> <a href="utils_2_utils_8cpp_source.xhtml#l00227">Utils.cpp:227</a></div></div> |
| <div class="ttc" id="classarm__compute_1_1utils_1_1_n_p_y_loader_xhtml_a2f57f54d8c03b615bb31eee091d8a88a"><div class="ttname"><a href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml#a2f57f54d8c03b615bb31eee091d8a88a">arm_compute::utils::NPYLoader::is_open</a></div><div class="ttdeci">bool is_open()</div><div class="ttdoc">Return true if a NPY file is currently open.</div><div class="ttdef"><b>Definition:</b> <a href="utils_2_utils_8h_source.xhtml#l00359">Utils.h:359</a></div></div> |
| </div><!-- fragment --> |
| <p class="reference">References <a class="el" href="_error_8h_source.xhtml#l00466">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="_error_8h_source.xhtml#l00346">ARM_COMPUTE_ERROR_VAR</a>, <a class="el" href="_error_8h_source.xhtml#l00395">ARM_COMPUTE_EXIT_ON_MSG_VAR</a>, <a class="el" href="utils_2_utils_8h_source.xhtml#l00359">NPYLoader::is_open()</a>, and <a class="el" href="utils_2_utils_8cpp_source.xhtml#l00227">arm_compute::utils::parse_npy_header()</a>.</p> |
| |
| <p class="reference">Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00759">NumPyBinLoader::access_tensor()</a>.</p> |
| |
| </div> |
| </div> |
| <hr/>The documentation for this class was generated from the following file:<ul> |
| <li>utils/<a class="el" href="utils_2_utils_8h_source.xhtml">Utils.h</a></li> |
| </ul> |
| </div><!-- contents --> |
| </div><!-- doc-content --> |
| <!-- start footer part --> |
| <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> |
| <ul> |
| <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="namespacearm__compute_1_1utils.xhtml">utils</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1utils_1_1_n_p_y_loader.xhtml">NPYLoader</a></li> |
| <li class="footer">Generated on Thu Mar 5 2020 16:07:20 for Compute Library by |
| <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |