<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!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="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: Parsers</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>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" 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="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">20.02</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('parsers.xhtml','');});
</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">Parsers </div>  </div>
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#S4_caffe_parser">ArmNN Caffe Parser</a></li>
<li class="level1"><a href="#S5_onnx_parser">ArmNN Onnx Parser</a></li>
<li class="level1"><a href="#S6_tf_lite_parser">ArmNN Tf Lite Parser</a></li>
<li class="level1"><a href="#S7_tf_parser">ArmNN Tensorflow Parser</a></li>
</ul>
</div>
<div class="textblock"><h1><a class="anchor" id="S4_caffe_parser"></a>
ArmNN Caffe Parser</h1>
<p><code><a class="el" href="namespacearmnn_caffe_parser.xhtml" title="Caffe networks are loaded from protobuf files (binary or text) using the protobuf library and the gen...">armnnCaffeParser</a></code> is a library for loading neural networks defined in Caffe protobuf files into the Arm NN runtime.</p>
<h2>Caffe layers supported by the Arm NN SDK</h2>
<p>This reference guide provides a list of Caffe layers the Arm NN SDK currently supports.</p>
<h2>Although some other neural networks might work, Arm tests the Arm NN SDK with Caffe implementations of the following neural networks:</h2>
<ul>
<li>AlexNet.</li>
<li>Cifar10.</li>
<li>Inception-BN.</li>
<li>Resnet_50, Resnet_101 and Resnet_152.</li>
<li>VGG_CNN_S, VGG_16 and VGG_19.</li>
<li>Yolov1_tiny.</li>
<li>Lenet.</li>
<li>MobileNetv1.</li>
</ul>
<h2>The Arm NN SDK supports the following machine learning layers for Caffe networks:</h2>
<ul>
<li>BatchNorm, in inference mode.</li>
<li>Convolution, excluding the Dilation Size, Weight Filler, Bias Filler, Engine, Force nd_im2col, and Axis parameters. Caffe doesn't support depthwise convolution, the equivalent layer is implemented through the notion of groups. ArmNN supports groups this way:<ul>
<li>when group=1, it is a normal conv2d</li>
<li>when group=#input_channels, we can replace it by a depthwise convolution</li>
<li>when group&gt;1 &amp;&amp; group&lt;#input_channels, we need to split the input into the given number of groups, apply a separate convolution and then merge the results</li>
</ul>
</li>
<li>Concat, along the channel dimension only.</li>
<li>Dropout, in inference mode.</li>
<li>Element wise, excluding the coefficient parameter.</li>
<li>Inner Product, excluding the Weight Filler, Bias Filler, Engine, and Axis parameters.</li>
<li>Input.</li>
<li>Local Response Normalisation (LRN), excluding the Engine parameter.</li>
<li>Pooling, excluding the Stochastic Pooling and Engine parameters.</li>
<li>ReLU.</li>
<li>Scale.</li>
<li>Softmax, excluding the Axis and Engine parameters.</li>
<li>Split.</li>
</ul>
<p>More machine learning layers will be supported in future releases.</p>
<p>Please note that certain deprecated Caffe features are not supported by the <a class="el" href="namespacearmnn_caffe_parser.xhtml" title="Caffe networks are loaded from protobuf files (binary or text) using the protobuf library and the gen...">armnnCaffeParser</a>. If you think that Arm NN should be able to load your model according to the list of supported layers, but you are getting strange error messages, then try upgrading your model to the latest format using Caffe, either by saving it to a new file or using the upgrade utilities in <code>caffe/tools</code>. <br />
<br />
<br />
<br />
</p>
<h1><a class="anchor" id="S5_onnx_parser"></a>
ArmNN Onnx Parser</h1>
<p><code><a class="el" href="namespacearmnn_onnx_parser.xhtml">armnnOnnxParser</a></code> is a library for loading neural networks defined in ONNX protobuf files into the Arm NN runtime.</p>
<h2>ONNX operators that the Arm NN SDK supports</h2>
<p>This reference guide provides a list of ONNX operators the Arm NN SDK currently supports.</p>
<p>The Arm NN SDK ONNX parser currently only supports fp32 operators.</p>
<h2>Fully supported</h2>
<ul>
<li>Add<ul>
<li>See the ONNX <a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Add">Add documentation</a> for more information</li>
</ul>
</li>
<li>AveragePool<ul>
<li>See the ONNX <a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#AveragePool">AveragePool documentation</a> for more information.</li>
</ul>
</li>
<li>Constant<ul>
<li>See the ONNX <a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Constant">Constant documentation</a> for more information.</li>
</ul>
</li>
<li>GlobalAveragePool<ul>
<li>See the ONNX <a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#GlobalAveragePool">GlobalAveragePool documentation</a> for more information.</li>
</ul>
</li>
<li>MaxPool<ul>
<li>See the ONNX <a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#MaxPool">max_pool documentation</a> for more information.</li>
</ul>
</li>
<li>Relu<ul>
<li>See the ONNX <a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Relu">Relu documentation</a> for more information.</li>
</ul>
</li>
<li>Reshape<ul>
<li>See the ONNX <a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Reshape">Reshape documentation</a> for more information.</li>
</ul>
</li>
</ul>
<h2>Partially supported</h2>
<ul>
<li>Conv<ul>
<li>The parser only supports 2D convolutions with a dilation rate of [1, 1] and group = 1 or group = #Nb_of_channel (depthwise convolution) See the ONNX <a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#Conv">Conv documentation</a> for more information.</li>
</ul>
</li>
<li>BatchNormalization<ul>
<li>The parser does not support training mode. See the ONNX <a href="https://github.com/onnx/onnx/blob/master/docs/Operators.md#BatchNormalization">BatchNormalization documentation</a> for more information.</li>
</ul>
</li>
<li>MatMul<ul>
<li>The parser only supports constant weights in a fully connected layer.</li>
</ul>
</li>
</ul>
<h2>Tested networks</h2>
<p>Arm tested these operators with the following ONNX fp32 neural networks:</p><ul>
<li>Simple MNIST. See the ONNX <a href="https://github.com/onnx/models/tree/master/mnist">MNIST documentation</a> for more information.</li>
<li>Mobilenet_v2. See the ONNX <a href="https://github.com/onnx/models/tree/master/models/image_classification/mobilenet">MobileNet documentation</a> for more information.</li>
</ul>
<p>More machine learning operators will be supported in future releases. <br />
<br />
<br />
<br />
</p>
<h1><a class="anchor" id="S6_tf_lite_parser"></a>
ArmNN Tf Lite Parser</h1>
<p><code><a class="el" href="namespacearmnn_tf_lite_parser.xhtml">armnnTfLiteParser</a></code> is a library for loading neural networks defined by TensorFlow Lite FlatBuffers files into the Arm NN runtime.</p>
<h2>TensorFlow Lite operators that the Arm NN SDK supports</h2>
<p>This reference guide provides a list of TensorFlow Lite operators the Arm NN SDK currently supports.</p>
<h2>Fully supported</h2>
<p>The Arm NN SDK TensorFlow Lite parser currently supports the following operators:</p>
<ul>
<li>ADD</li>
<li>AVERAGE_POOL_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE</li>
<li>BATCH_TO_SPACE</li>
<li>CONCATENATION, Supported Fused Activation: RELU , RELU6 , TANH, NONE</li>
<li>CONV_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE</li>
<li>DEPTHWISE_CONV_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE</li>
<li>FULLY_CONNECTED, Supported Fused Activation: RELU , RELU6 , TANH, NONE</li>
<li>LOGISTIC</li>
<li>L2_NORMALIZATION</li>
<li>MAX_POOL_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE</li>
<li>MAXIMUM</li>
<li>MEAN</li>
<li>MINIMUM</li>
<li>MUL</li>
<li>PACK</li>
<li>PAD</li>
<li>RELU</li>
<li>RELU6</li>
<li>RESHAPE</li>
<li>RESIZE_BILINEAR</li>
<li>SLICE</li>
<li>SOFTMAX</li>
<li>SPACE_TO_BATCH</li>
<li>SPLIT</li>
<li>SQUEEZE</li>
<li>STRIDED_SLICE</li>
<li>SUB</li>
<li>TANH</li>
<li>TRANSPOSE</li>
<li>TRANSPOSE_CONV</li>
<li>UNPACK</li>
</ul>
<h2>Custom Operator</h2>
<ul>
<li>TFLite_Detection_PostProcess</li>
</ul>
<h2>Tested networks</h2>
<p>Arm tested these operators with the following TensorFlow Lite neural network:</p><ul>
<li><a href="http://download.tensorflow.org/models/mobilenet_v1_2018_02_22/mobilenet_v1_1.0_224_quant.tgz">Quantized MobileNet</a></li>
<li><a href="http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_quantized_300x300_coco14_sync_2018_07_18.tar.gz">Quantized SSD MobileNet</a></li>
<li>DeepSpeech v1 converted from <a href="https://github.com/mozilla/DeepSpeech/releases/tag/v0.4.1">TensorFlow model</a></li>
<li>DeepSpeaker</li>
</ul>
<p>More machine learning operators will be supported in future releases. <br />
<br />
<br />
<br />
</p>
<h1><a class="anchor" id="S7_tf_parser"></a>
ArmNN Tensorflow Parser</h1>
<p><code><a class="el" href="namespacearmnn_tf_parser.xhtml">armnnTfParser</a></code> is a library for loading neural networks defined by TensorFlow protobuf files into the Arm NN runtime.</p>
<h2>TensorFlow operators that the Arm NN SDK supports</h2>
<p>This reference guide provides a list of TensorFlow operators the Arm NN SDK currently supports.</p>
<p>The Arm NN SDK TensorFlow parser currently only supports fp32 operators.</p>
<h2>Fully supported</h2>
<ul>
<li>avg_pool<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/avg_pool">avg_pool documentation</a> for more information.</li>
</ul>
</li>
<li>bias_add<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/bias_add">bias_add documentation</a> for more information.</li>
</ul>
</li>
<li>conv2d<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/conv2d">conv2d documentation</a> for more information.</li>
</ul>
</li>
<li>expand_dims<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/expand_dims">expand_dims documentation</a> for more information.</li>
</ul>
</li>
<li>gather<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/gather">gather documentation</a> for more information.</li>
</ul>
</li>
<li>identity<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/identity">identity documentation</a> for more information.</li>
</ul>
</li>
<li>local_response_normalization<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/local_response_normalization">local_response_normalization documentation</a> for more information.</li>
</ul>
</li>
<li>max_pool<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/max_pool">max_pool documentation</a> for more information.</li>
</ul>
</li>
<li>placeholder<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">placeholder documentation</a> for more information.</li>
</ul>
</li>
<li>reduce_mean<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/reduce_mean">reduce_mean documentation</a> for more information.</li>
</ul>
</li>
<li>relu<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/relu">relu documentation</a> for more information.</li>
</ul>
</li>
<li>relu6<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/relu6">relu6 documentation</a> for more information.</li>
</ul>
</li>
<li>rsqrt<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/math/rsqrt">rsqrt documentation</a> for more information.</li>
</ul>
</li>
<li>shape<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/shape">shape documentation</a> for more information.</li>
</ul>
</li>
<li>sigmoid<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/sigmoid">sigmoid documentation</a> for more information.</li>
</ul>
</li>
<li>softplus<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/softplus">softplus documentation</a> for more information.</li>
</ul>
</li>
<li>squeeze<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/squeeze">squeeze documentation</a> for more information.</li>
</ul>
</li>
<li>tanh<ul>
<li>See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/tanh">tanh documentation</a> for more information.</li>
</ul>
</li>
</ul>
<h2>Partially supported</h2>
<ul>
<li>add<ul>
<li>The parser does not support all forms of <a href="https://www.tensorflow.org/performance/xla/broadcasting">broadcast composition</a>, only broadcasting of scalars and 1D tensors. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/add">add operator documentation</a> for more information.</li>
</ul>
</li>
<li>add_n<ul>
<li>The parser does not support all forms of <a href="https://www.tensorflow.org/performance/xla/broadcasting">broadcast composition</a>, only broadcasting of scalars and 1D tensors. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/add_n">add operator documentation</a> for more information.</li>
</ul>
</li>
<li>concat<ul>
<li>Arm NN supports concatenation along the channel dimension for data formats NHWC and NCHW.</li>
</ul>
</li>
<li>constant<ul>
<li>The parser does not support the optional <code>shape</code> argument. It always infers the shape of the output tensor from <code>value</code>. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/constant">constant documentation</a> for further information.</li>
</ul>
</li>
<li>depthwise_conv2d_native<ul>
<li>The parser only supports a dilation rate of (1,1,1,1). See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d_native">depthwise_conv2d_native documentation</a> for more information.</li>
</ul>
</li>
<li>equal<ul>
<li>The parser does not support all forms of <a href="https://www.tensorflow.org/performance/xla/broadcasting">broadcast composition</a>, only broadcasting of 4D and 1D tensors. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/math/equal">equal operator documentation</a> for more information.</li>
</ul>
</li>
<li>fused_batch_norm<ul>
<li>The parser does not support training outputs. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/fused_batch_norm">fused_batch_norm documentation</a> for more information.</li>
</ul>
</li>
<li>greater<ul>
<li>The parser does not support all forms of <a href="https://www.tensorflow.org/performance/xla/broadcasting">broadcast composition</a>, only broadcasting of 4D and 1D tensors. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/math/greater">greater operator documentation</a> for more information.</li>
</ul>
</li>
<li>matmul<ul>
<li>The parser only supports constant weights in a fully connected layer. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/matmul">matmul documentation</a> for more information.</li>
</ul>
</li>
<li>maximum where maximum is used in one of the following ways<ul>
<li>max(mul(a, x), x)</li>
<li>max(mul(x, a), x)</li>
<li>max(x, mul(a, x))</li>
<li>max(x, mul(x, a) This is interpreted as a <a class="el" href="classarmnn_1_1_activation_layer.xhtml" title="This layer represents an activation operation with the specified activation function. ">ActivationLayer</a> with a LeakyRelu activation function. Any other usage of max will result in the insertion of a simple maximum layer. The parser does not support all forms of <a href="https://www.tensorflow.org/performance/xla/broadcasting">broadcast composition</a>. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/maximum">maximum documentation</a> for more information.</li>
</ul>
</li>
<li>minimum<ul>
<li>The parser does not support all forms of <a href="https://www.tensorflow.org/performance/xla/broadcasting">broadcast composition</a>, only broadcasting of 4D and 1D tensors. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/math/minimum">minimum operator documentation</a> for more information.</li>
</ul>
</li>
<li>multiply<ul>
<li>The parser does not support all forms of <a href="https://www.tensorflow.org/performance/xla/broadcasting">broadcast composition</a>, only broadcasting of scalars and 1D tensors. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/multiply">multiply documentation</a> for more information.</li>
</ul>
</li>
<li>pad<ul>
<li>Only supports tf.pad function with mode = 'CONSTANT' and constant_values = 0. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/pad">pad documentation</a> for more information.</li>
</ul>
</li>
<li>realdiv<ul>
<li>The parser does not support all forms of <a href="https://www.tensorflow.org/performance/xla/broadcasting">broadcast composition</a>, only broadcasting of scalars and 1D tensors. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/realdiv">realdiv documentation</a> for more information.</li>
</ul>
</li>
<li>reshape<ul>
<li>The parser does not support reshaping to or from 4D. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/reshape">reshape documentation</a> for more information.</li>
</ul>
</li>
<li>resize_images<ul>
<li>The parser only supports <code>ResizeMethod.BILINEAR</code> with <code>align_corners=False</code>. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/image/resize_images">resize_images documentation</a> for more information.</li>
</ul>
</li>
<li>softmax<ul>
<li>The parser only supports 2D inputs and does not support selecting the <code>softmax</code> dimension. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/nn/softmax">softmax documentation</a> for more information.</li>
</ul>
</li>
<li>split<ul>
<li>Arm NN supports split along the channel dimension for data formats NHWC and NCHW.</li>
</ul>
</li>
<li>subtract<ul>
<li>The parser does not support all forms of broadcasting <a href="https://www.tensorflow.org/performance/xla/broadcasting">broadcast composition</a>, only broadcasting of scalars and 1D tensors. See the TensorFlow <a href="https://www.tensorflow.org/api_docs/python/tf/math/subtract">subtract documentation</a> for more information.</li>
</ul>
</li>
</ul>
<h2>Tested networks</h2>
<p>Arm tests these operators with the following TensorFlow fp32 neural networks:</p><ul>
<li>Lenet</li>
<li>mobilenet_v1_1.0_224. The Arm NN SDK only supports the non-quantized version of the network. See the https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md "MobileNet_v1 documentation" for more information on quantized networks.</li>
<li>inception_v3. The Arm NN SDK only supports the official inception_v3 transformed model. See the TensorFlow documentation on <a href="https://www.tensorflow.org/mobile/prepare_models">preparing models for mobile deployment</a> for more information on how to transform the inception_v3 network.</li>
</ul>
<p>Using these datasets:</p><ul>
<li>Cifar10</li>
<li>Simple MNIST. For more information check out the <a href="https://developer.arm.com/technologies/machine-learning-on-arm/developer-material/how-to-guides/deploying-a-tensorflow-mnist-model-on-arm-nn">tutorial</a> on the Arm Developer portal.</li>
</ul>
<p>More machine learning operators will be supported in future releases. </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:09:16 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>
