blob: 587970b04b772bd4c627454adcc7784e273cf2a0 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mxnet: /work/mxnet/include/mxnet/op_attr_types.h File 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="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">mxnet
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;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&amp;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>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1143c7affb9ebd026cb6818dd282def7.html">mxnet</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">op_attr_types.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Additional operator attributes beside the ones provided by NNVM.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;<a class="el" href="tensor_8h_source.html">mshadow/tensor.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2op__attr__types_8h_source.html">nnvm/op_attr_types.h</a>&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;functional&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &quot;<a class="el" href="include_2mxnet_2base_8h_source.html">./base.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="include_2mxnet_2ndarray_8h_source.html">./ndarray.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="engine_8h_source.html">./engine.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="resource_8h_source.html">./resource.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for op_attr_types.h:</div>
<div class="dyncontent">
<div class="center"><img src="include_2mxnet_2op__attr__types_8h__incl.png" border="0" usemap="#_2work_2mxnet_2include_2mxnet_2op__attr__types_8h" alt=""/></div>
<!-- MAP 0 -->
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="include_2mxnet_2op__attr__types_8h__dep__incl.png" border="0" usemap="#_2work_2mxnet_2include_2mxnet_2op__attr__types_8hdep" alt=""/></div>
<!-- MAP 1 -->
</div>
</div>
<p><a href="include_2mxnet_2op__attr__types_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1OpContext.html">mxnet::OpContext</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">All the possible information needed by <a class="el" href="classmxnet_1_1Operator.html#a3dbe23d985df86da51eeb868439872dd" title="perform a forward operation of Operator, save the output to TBlob.">Operator.Forward</a> and Backward This is the superset of <a class="el" href="structmxnet_1_1RunContext.html" title="execution time context. The information needed in runtime for actual execution.">RunContext</a>. We use this data structure to bookkeep everything needed by Forward and Backward. <a href="structmxnet_1_1OpContext.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmxnet_1_1OpStatePtr.html">mxnet::OpStatePtr</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmxnet_1_1Operator.html" title="Operator interface. Operator defines basic operation unit of optimized computation graph in mxnet....">Operator</a> state. This is a pointer type, its content is mutable even if <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const.">OpStatePtr</a> is const. <a href="classmxnet_1_1OpStatePtr.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacemxnet"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html">mxnet</a></td></tr>
<tr class="memdesc:namespacemxnet"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace of mxnet <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ac7ea5e68a319e4f7d7c0b4ee91c2d20f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ac7ea5e68a319e4f7d7c0b4ee91c2d20f">mxnet::FCreateOpState</a> = std::function&lt; OpStatePtr(const NodeAttrs &amp;attrs, Context ctx, const <a class="el" href="namespacemxnet.html#a87e1c30aafac389774c6f4d905c0e5ea">mxnet::ShapeVector</a> &amp;in_shape, const std::vector&lt; int &gt; &amp;in_type)&gt;</td></tr>
<tr class="memdesc:ac7ea5e68a319e4f7d7c0b4ee91c2d20f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a Layer style, forward/backward operator. This is easy to write code that contains state. <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const.">OpStatePtr</a> is a pointer type, it's content is mutable even if <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const.">OpStatePtr</a> is constant. <a href="namespacemxnet.html#ac7ea5e68a319e4f7d7c0b4ee91c2d20f">More...</a><br /></td></tr>
<tr class="separator:ac7ea5e68a319e4f7d7c0b4ee91c2d20f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab11a4e6d5c8c47c99cfc3306db6538c8"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ab11a4e6d5c8c47c99cfc3306db6538c8">mxnet::THasDeterministicOutput</a> = bool</td></tr>
<tr class="memdesc:ab11a4e6d5c8c47c99cfc3306db6538c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the operator always produces the same output given the same input. This enables certain optimizations like common expression elimination. <a href="namespacemxnet.html#ab11a4e6d5c8c47c99cfc3306db6538c8">More...</a><br /></td></tr>
<tr class="separator:ab11a4e6d5c8c47c99cfc3306db6538c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a666f1055e5401ecec0278e8ba5790732"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a666f1055e5401ecec0278e8ba5790732">mxnet::FExecType</a> = std::function&lt; ExecType(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:a666f1055e5401ecec0278e8ba5790732"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execution mode of this operator. <a href="namespacemxnet.html#a666f1055e5401ecec0278e8ba5790732">More...</a><br /></td></tr>
<tr class="separator:a666f1055e5401ecec0278e8ba5790732"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9097a269dd76d833c014149ff3eaab9b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a9097a269dd76d833c014149ff3eaab9b">mxnet::FStatefulCompute</a> = std::function&lt; void(const OpStatePtr &amp;state, const OpContext &amp;ctx, const std::vector&lt; TBlob &gt; &amp;inputs, const std::vector&lt; OpReqType &gt; &amp;req, const std::vector&lt; TBlob &gt; &amp;outputs)&gt;</td></tr>
<tr class="memdesc:a9097a269dd76d833c014149ff3eaab9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resiger a compute function for stateful operator. <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const.">OpStatePtr</a> is a pointer type, it's content is mutable even if <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const.">OpStatePtr</a> is constant. <a href="namespacemxnet.html#a9097a269dd76d833c014149ff3eaab9b">More...</a><br /></td></tr>
<tr class="separator:a9097a269dd76d833c014149ff3eaab9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab12f1853179b1456152a563edff844a9"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ab12f1853179b1456152a563edff844a9">mxnet::FStatefulComputeEx</a> = std::function&lt; void(const OpStatePtr &amp;state, const OpContext &amp;ctx, const std::vector&lt; NDArray &gt; &amp;inputs, const std::vector&lt; OpReqType &gt; &amp;req, const std::vector&lt; NDArray &gt; &amp;outputs)&gt;</td></tr>
<tr class="memdesc:ab12f1853179b1456152a563edff844a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resiger a compute function for stateful operator using <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface">NDArray</a> interface. <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const.">OpStatePtr</a> is a pointer type, it's content is mutable even if <a class="el" href="classmxnet_1_1OpStatePtr.html" title="Operator state. This is a pointer type, its content is mutable even if OpStatePtr is const.">OpStatePtr</a> is constant. <a href="namespacemxnet.html#ab12f1853179b1456152a563edff844a9">More...</a><br /></td></tr>
<tr class="separator:ab12f1853179b1456152a563edff844a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaa687cbca9e992614be285711c1d72d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#afaa687cbca9e992614be285711c1d72d">mxnet::FResourceRequest</a> = std::function&lt; std::vector&lt; ResourceRequest &gt;(const NodeAttrs &amp;n)&gt;</td></tr>
<tr class="memdesc:afaa687cbca9e992614be285711c1d72d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The resource request from the operator. An operator could register ResourceRequestEx, or <a class="el" href="structmxnet_1_1ResourceRequest.html" title="The resources that can be requested by Operator.">ResourceRequest</a>, or neither. <a href="namespacemxnet.html#afaa687cbca9e992614be285711c1d72d">More...</a><br /></td></tr>
<tr class="separator:afaa687cbca9e992614be285711c1d72d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45b0a850c44c45609adc320b04c7ac7f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a45b0a850c44c45609adc320b04c7ac7f">mxnet::FResourceRequestEx</a> = std::function&lt; std::vector&lt; ResourceRequest &gt;(const NodeAttrs &amp;n, const int dev_mask, const DispatchMode dispatch_mode)&gt;</td></tr>
<tr class="memdesc:a45b0a850c44c45609adc320b04c7ac7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The resource request from the operator. An operator could register ResourceRequestEx, or <a class="el" href="structmxnet_1_1ResourceRequest.html" title="The resources that can be requested by Operator.">ResourceRequest</a>, or neither. If an operator registers both ResourceRequestEx and <a class="el" href="structmxnet_1_1ResourceRequest.html" title="The resources that can be requested by Operator.">ResourceRequest</a>, <a class="el" href="structmxnet_1_1ResourceRequest.html" title="The resources that can be requested by Operator.">ResourceRequest</a> is ignored. <a href="namespacemxnet.html#a45b0a850c44c45609adc320b04c7ac7f">More...</a><br /></td></tr>
<tr class="separator:a45b0a850c44c45609adc320b04c7ac7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0906e49a921265634672f555451075ed"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a0906e49a921265634672f555451075ed">mxnet::FNDArrayFunction</a> = std::function&lt; void(const <a class="el" href="structnnvm_1_1NodeAttrs.html">nnvm::NodeAttrs</a> &amp;attrs, const std::vector&lt; NDArray &gt; &amp;inputs, std::vector&lt; NDArray &gt; *outputs)&gt;</td></tr>
<tr class="memdesc:a0906e49a921265634672f555451075ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register an operator called as a <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface">NDArray</a> function. <a href="namespacemxnet.html#a0906e49a921265634672f555451075ed">More...</a><br /></td></tr>
<tr class="separator:a0906e49a921265634672f555451075ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad77e2048b7e8db91a12e05b477aac13e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ad77e2048b7e8db91a12e05b477aac13e">mxnet::FCompute</a> = std::function&lt; void(const <a class="el" href="structnnvm_1_1NodeAttrs.html">nnvm::NodeAttrs</a> &amp;attrs, const OpContext &amp;ctx, const std::vector&lt; TBlob &gt; &amp;inputs, const std::vector&lt; OpReqType &gt; &amp;req, const std::vector&lt; TBlob &gt; &amp;outputs)&gt;</td></tr>
<tr class="memdesc:ad77e2048b7e8db91a12e05b477aac13e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a compute function for simple stateless forward only operator. <a href="namespacemxnet.html#ad77e2048b7e8db91a12e05b477aac13e">More...</a><br /></td></tr>
<tr class="separator:ad77e2048b7e8db91a12e05b477aac13e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a294d2660c065f8d229c27e65f0461e10"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a294d2660c065f8d229c27e65f0461e10">mxnet::FComputeEx</a> = std::function&lt; void(const <a class="el" href="structnnvm_1_1NodeAttrs.html">nnvm::NodeAttrs</a> &amp;attrs, const OpContext &amp;ctx, const std::vector&lt; NDArray &gt; &amp;inputs, const std::vector&lt; OpReqType &gt; &amp;req, const std::vector&lt; NDArray &gt; &amp;outputs)&gt;</td></tr>
<tr class="memdesc:a294d2660c065f8d229c27e65f0461e10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register an <a class="el" href="classmxnet_1_1NDArray.html" title="ndarray interface">NDArray</a> compute function for simple stateless forward only operator. <a href="namespacemxnet.html#a294d2660c065f8d229c27e65f0461e10">More...</a><br /></td></tr>
<tr class="separator:a294d2660c065f8d229c27e65f0461e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a1395f21139ba975a6268539df6a15d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a0a1395f21139ba975a6268539df6a15d">mxnet::FInferStorageType</a> = std::function&lt; bool(const NodeAttrs &amp;attrs, const int dev_mask, DispatchMode *dispatch_mode, std::vector&lt; int &gt; *in_attrs, std::vector&lt; int &gt; *out_attrs)&gt;</td></tr>
<tr class="memdesc:a0a1395f21139ba975a6268539df6a15d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a storage and dispatch mode inference function based on storage types of the inputs and outputs, and the dev_mask for the operator. <a href="namespacemxnet.html#a0a1395f21139ba975a6268539df6a15d">More...</a><br /></td></tr>
<tr class="separator:a0a1395f21139ba975a6268539df6a15d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5d610fd675a9b9c811901394ee07709"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ae5d610fd675a9b9c811901394ee07709">mxnet::FQuantizable</a> = std::function&lt; QuantizeType(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:ae5d610fd675a9b9c811901394ee07709"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a quantized node creation function based on the attrs of the node. <a href="namespacemxnet.html#ae5d610fd675a9b9c811901394ee07709">More...</a><br /></td></tr>
<tr class="separator:ae5d610fd675a9b9c811901394ee07709"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca9a7c38c0a9b100a35eba5f3b0ea108"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#aca9a7c38c0a9b100a35eba5f3b0ea108">mxnet::FQuantizedOp</a> = std::function&lt; <a class="el" href="namespacennvm.html#a573897937ff3b88f0014feabb8e44a92">nnvm::ObjectPtr</a>(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:aca9a7c38c0a9b100a35eba5f3b0ea108"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a quantized node creation function based on the attrs of the node. <a href="namespacemxnet.html#aca9a7c38c0a9b100a35eba5f3b0ea108">More...</a><br /></td></tr>
<tr class="separator:aca9a7c38c0a9b100a35eba5f3b0ea108"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f7c271f6d03ee358eb9e66486e41045"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a7f7c271f6d03ee358eb9e66486e41045">mxnet::FNeedRequantize</a> = std::function&lt; bool(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:a7f7c271f6d03ee358eb9e66486e41045"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the output of a quantized operator needs to be requantized. This is usually used for the operators taking int8 data types while accumulating in int32, e.g. quantized_conv. <a href="namespacemxnet.html#a7f7c271f6d03ee358eb9e66486e41045">More...</a><br /></td></tr>
<tr class="separator:a7f7c271f6d03ee358eb9e66486e41045"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb7e17c82420da9bac723fee0bb044c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a3cb7e17c82420da9bac723fee0bb044c">mxnet::FAvoidQuantizeInput</a> = std::function&lt; bool(const NodeAttrs &amp;attrs, const size_t index, const std::string quantize_granularity)&gt;</td></tr>
<tr class="memdesc:a3cb7e17c82420da9bac723fee0bb044c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the input of a quantized operator needs to be quantized. This is usually used for the quantized operators which can handle fp32 inputs directly. <a href="namespacemxnet.html#a3cb7e17c82420da9bac723fee0bb044c">More...</a><br /></td></tr>
<tr class="separator:a3cb7e17c82420da9bac723fee0bb044c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbd92d7ce22448f485be2946e79322bd"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#abbd92d7ce22448f485be2946e79322bd">mxnet::FNeedCalibrateInput</a> = std::function&lt; std::vector&lt; int &gt;(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:abbd92d7ce22448f485be2946e79322bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the input of a quantized operator needs to be calibrated. This is usually used for the quantized operators which need calibration on its input. <a href="namespacemxnet.html#abbd92d7ce22448f485be2946e79322bd">More...</a><br /></td></tr>
<tr class="separator:abbd92d7ce22448f485be2946e79322bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5874b9dfca8a1e2e7c72da5e3b6a9d0b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a5874b9dfca8a1e2e7c72da5e3b6a9d0b">mxnet::FNeedCalibrateOutput</a> = std::function&lt; std::vector&lt; int &gt;(const NodeAttrs &amp;attrs)&gt;</td></tr>
<tr class="memdesc:a5874b9dfca8a1e2e7c72da5e3b6a9d0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a function to determine if the output of a quantized operator needs to be calibrated. This is usually used for the quantized operators which need calibration on its output. <a href="namespacemxnet.html#a5874b9dfca8a1e2e7c72da5e3b6a9d0b">More...</a><br /></td></tr>
<tr class="separator:a5874b9dfca8a1e2e7c72da5e3b6a9d0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a7cd7094ef222e9ae1f520c3b6a214398"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">mxnet::OpReqType</a> { <a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398a001b85096e07108e174fe4c406368a26">mxnet::kNullOp</a>,
<a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398a03b4c19f34d3add7deecd7ef6c54b42a">mxnet::kWriteTo</a>,
<a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398a640322face587ca12684378d0f053d51">mxnet::kWriteInplace</a>,
<a class="el" href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398a1b850737dba4d2c42a2687d14c10f383">mxnet::kAddTo</a>
}</td></tr>
<tr class="memdesc:a7cd7094ef222e9ae1f520c3b6a214398"><td class="mdescLeft">&#160;</td><td class="mdescRight">operation request type to Forward and Backward <a href="namespacemxnet.html#a7cd7094ef222e9ae1f520c3b6a214398">More...</a><br /></td></tr>
<tr class="separator:a7cd7094ef222e9ae1f520c3b6a214398"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7801fb2dd68294d4c7a9e289bc071ad"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071ad">mxnet::ExecType</a> { <a class="el" href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071adae3bade32f12a5139b27ef40b3689b77c">mxnet::ExecType::kSync</a>,
<a class="el" href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071ada9f2b960005d2a3a5f35ac32809d84db7">mxnet::ExecType::kAsync</a>,
<a class="el" href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071ada3864860a073c64d74d3fc8e765fa6cad">mxnet::ExecType::kCrossDeviceCopy</a>,
<a class="el" href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071adabfccd41d634d8095c956c29c9ee35257">mxnet::ExecType::kSubgraphExec</a>
}</td></tr>
<tr class="memdesc:ad7801fb2dd68294d4c7a9e289bc071ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">the execution type of the operator <a href="namespacemxnet.html#ad7801fb2dd68294d4c7a9e289bc071ad">More...</a><br /></td></tr>
<tr class="separator:ad7801fb2dd68294d4c7a9e289bc071ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad5fec2b4bceabbf4b884460cc2e0a2b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2b">mxnet::DispatchMode</a> { <br />
&#160;&#160;<a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba7934d40c7c17315d892e8d5d745b1c66">mxnet::DispatchMode::kUndefined</a> = -1,
<a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba2157864769b54d1d0f8f9be63393e7d6">mxnet::DispatchMode::kFCompute</a>,
<a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba57f93219462690bc438372ecd92fedd5">mxnet::DispatchMode::kFComputeEx</a>,
<a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2ba18bf63b4c196f79c9bca4ad8637e8fef">mxnet::DispatchMode::kFComputeFallback</a>,
<br />
&#160;&#160;<a class="el" href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2bafb751f6ee1af15e773242f2accd2dbff">mxnet::DispatchMode::kVariable</a>
<br />
}</td></tr>
<tr class="memdesc:aad5fec2b4bceabbf4b884460cc2e0a2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">the dispatch mode of the operator <a href="namespacemxnet.html#aad5fec2b4bceabbf4b884460cc2e0a2b">More...</a><br /></td></tr>
<tr class="separator:aad5fec2b4bceabbf4b884460cc2e0a2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e417d85458838afaba8b269f082226d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a8e417d85458838afaba8b269f082226d">mxnet::QuantizeType</a> { <a class="el" href="namespacemxnet.html#a8e417d85458838afaba8b269f082226da35c3ace1970663a16e5c65baa5941b13">mxnet::QuantizeType::kNone</a> = 0,
<a class="el" href="namespacemxnet.html#a8e417d85458838afaba8b269f082226da9d2303d7a748e1b486e5aeb1f2194610">mxnet::QuantizeType::kMust</a>,
<a class="el" href="namespacemxnet.html#a8e417d85458838afaba8b269f082226daaab0226a1be7a88fdffaa2442c55aa60">mxnet::QuantizeType::kSupport</a>
}</td></tr>
<tr class="memdesc:a8e417d85458838afaba8b269f082226d"><td class="mdescLeft">&#160;</td><td class="mdescRight">the quantization type of the operator <a href="namespacemxnet.html#a8e417d85458838afaba8b269f082226d">More...</a><br /></td></tr>
<tr class="separator:a8e417d85458838afaba8b269f082226d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Additional operator attributes beside the ones provided by NNVM. </p>
<p>Copyright (c) 2016 by Contributors </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Aug 1 2021 20:32:49 for mxnet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>