<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: The ModelAccuracyTool-Armnn</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">
  $(document).ready(initResizable);
</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>
<link href="doxygen.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;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ArmNN
   &#160;<span id="projectnumber">NotReleased</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</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">
$(document).ready(function(){initNavTree('md_tests__model_accuracy_tool-_armnn__r_e_a_d_m_e.html','');});
</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="headertitle">
<div class="title">The ModelAccuracyTool-Armnn </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The <code>ModelAccuracyTool-Armnn</code> is a program for measuring the Top 5 accuracy results of a model against an image dataset.</p>
<p>Prerequisites:</p><ol type="1">
<li>The model is in .armnn format model file. The <code>ArmnnConverter</code> can be used to convert a model to this format.</li>
</ol>
<p>Build option: To build ModelAccuracyTool, pass the following options to Cmake:</p><ul>
<li>-DFLATC_DIR=/path/to/flatbuffers/x86build/</li>
<li>-DBUILD_ACCURACY_TOOL=1</li>
<li>-DBUILD_ARMNN_SERIALIZER=1</li>
</ul>
<table class="doxtable">
<tr>
<th>Cmd:</th><th></th><th></th></tr>
<tr>
<td>-h </td><td>&ndash;help </td><td>Display help messages </td></tr>
<tr>
<td>-m </td><td>&ndash;model-path </td><td>Path to armnn format model file </td></tr>
<tr>
<td>-f </td><td>&ndash;model-format </td><td>The model format. Supported values: caffe, tensorflow, tflite </td></tr>
<tr>
<td>-i </td><td>&ndash;input-name </td><td>Identifier of the input tensors in the network separated by comma </td></tr>
<tr>
<td>-o </td><td>&ndash;output-name </td><td>Identifier of the output tensors in the network separated by comma </td></tr>
<tr>
<td>-d </td><td>&ndash;data-dir </td><td>Path to directory containing the ImageNet test data </td></tr>
<tr>
<td>-p </td><td>&ndash;model-output-labels </td><td>Path to model output labels file. </td></tr>
<tr>
<td>-v </td><td>&ndash;validation-labels-path </td><td>Path to ImageNet Validation <a class="el" href="struct_label.html">Label</a> file </td></tr>
<tr>
<td>-l </td><td>&ndash;data-layout ] </td><td>Data layout. Supported value: NHWC, NCHW. Default: NHWC </td></tr>
<tr>
<td>-c </td><td>&ndash;compute </td><td>Which device to run layers on by default. Possible choices: CpuRef, CpuAcc, GpuAcc. Default: CpuAcc, CpuRef </td></tr>
<tr>
<td>-r </td><td>&ndash;validation-range </td><td>The range of the images to be evaluated. Specified in the form &lt;begin index&gt;=""&gt;:&lt;end index&gt;=""&gt;. The index starts at 1 and the range is inclusive. By default the evaluation will be performed on all images. </td></tr>
<tr>
<td>-b </td><td>&ndash;blacklist-path </td><td>Path to a blacklist file where each line denotes the index of an image to be excluded from evaluation. </td></tr>
</table>
<p>Example usage: <br />
 <code>./ModelAccuracyTool -m /path/to/model/model.armnn -f tflite -i input -o output -d /path/to/test/directory/ -p /path/to/model-output-labels -v /path/to/file/val.txt -c CpuRef -r 1:100</code> </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Fri Mar 13 2020 16:07:01 for ArmNN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
