<!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/operator.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="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a>  </div>
  <div class="headertitle">
<div class="title">operator.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Operator interface of mxnet.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;<a class="el" href="3rdparty_2dmlc-core_2include_2dmlc_2base_8h_source.html">dmlc/base.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="json_8h_source.html">dmlc/json.h</a>&gt;</code><br />
<code>#include &lt;dmlc/logging.h&gt;</code><br />
<code>#include &lt;<a class="el" href="3rdparty_2dmlc-core_2include_2dmlc_2registry_8h_source.html">dmlc/registry.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2node_8h_source.html">nnvm/node.h</a>&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;map&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;utility&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="resource_8h_source.html">./resource.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="include_2mxnet_2op__attr__types_8h_source.html">./op_attr_types.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for operator.h:</div>
<div class="dyncontent">
<div class="center"><img src="include_2mxnet_2operator_8h__incl.png" border="0" usemap="#_2work_2mxnet_2include_2mxnet_2operator_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_2operator_8h__dep__incl.png" border="0" usemap="#_2work_2mxnet_2include_2mxnet_2operator_8hdep" alt=""/></div>
<!-- MAP 1 -->
</div>
</div>
<p><a href="include_2mxnet_2operator_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">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmxnet_1_1Operator.html">mxnet::Operator</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> interface. <a class="el" href="classmxnet_1_1Operator.html" title="Operator interface. Operator defines basic operation unit of optimized computation graph in mxnet....">Operator</a> defines basic operation unit of optimized computation graph in mxnet. This interface relies on pre-allocated memory in <a class="el" href="classmxnet_1_1TBlob.html" title="tensor blob class that can be used to hold tensor of any dimension, any device and any data type,...">TBlob</a>, the caller need to set the memory region in <a class="el" href="classmxnet_1_1TBlob.html" title="tensor blob class that can be used to hold tensor of any dimension, any device and any data type,...">TBlob</a> correctly before calling Forward and Backward.  <a href="classmxnet_1_1Operator.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_1OperatorProperty.html">mxnet::OperatorProperty</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classmxnet_1_1OperatorProperty.html" title="OperatorProperty is a object that stores all information about Operator. It also contains method to g...">OperatorProperty</a> is a object that stores all information about <a class="el" href="classmxnet_1_1Operator.html" title="Operator interface. Operator defines basic operation unit of optimized computation graph in mxnet....">Operator</a>. It also contains method to generate context(device) specific operators.  <a href="classmxnet_1_1OperatorProperty.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">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1OperatorPropertyReg.html">mxnet::OperatorPropertyReg</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registry entry for <a class="el" href="classmxnet_1_1OperatorProperty.html" title="OperatorProperty is a object that stores all information about Operator. It also contains method to g...">OperatorProperty</a> factory functions.  <a href="structmxnet_1_1OperatorPropertyReg.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="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a926db042759256e94d20696c66f65709"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2mxnet_2operator_8h.html#a926db042759256e94d20696c66f65709">MXNET_REGISTER_OP_PROPERTY</a>(name,  OperatorPropertyType)</td></tr>
<tr class="memdesc:a926db042759256e94d20696c66f65709"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to register OperatorProperty.  <a href="include_2mxnet_2operator_8h.html#a926db042759256e94d20696c66f65709">More...</a><br /></td></tr>
<tr class="separator:a926db042759256e94d20696c66f65709"><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:ae4a8cd5223645e84d61318401dd9a4e0"><td class="memItemLeft" align="right" valign="top">typedef std::function&lt; OperatorProperty *()&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#ae4a8cd5223645e84d61318401dd9a4e0">mxnet::OperatorPropertyFactory</a></td></tr>
<tr class="memdesc:ae4a8cd5223645e84d61318401dd9a4e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">typedef the factory function of operator property  <a href="namespacemxnet.html#ae4a8cd5223645e84d61318401dd9a4e0">More...</a><br /></td></tr>
<tr class="separator:ae4a8cd5223645e84d61318401dd9a4e0"><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>Operator interface of mxnet. </p>
<dl class="section author"><dt>Author</dt><dd>Naiyan Wang </dd></dl>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a926db042759256e94d20696c66f65709"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a926db042759256e94d20696c66f65709">&#9670;&nbsp;</a></span>MXNET_REGISTER_OP_PROPERTY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MXNET_REGISTER_OP_PROPERTY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">name, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">OperatorPropertyType&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  <a class="code" href="3rdparty_2dmlc-core_2include_2dmlc_2registry_8h.html#af6870c3bce5b56d427a4d225b1194816">DMLC_REGISTRY_REGISTER</a>(::<a class="code" href="structmxnet_1_1OperatorPropertyReg.html">mxnet::OperatorPropertyReg</a>, OperatorPropertyReg, name) \</div>
<div class="line">      .set_body([]() { <span class="keywordflow">return</span> <span class="keyword">new</span> OperatorPropertyType(); })                      \</div>
<div class="line">      .set_return_type(<span class="stringliteral">&quot;NDArray-or-Symbol&quot;</span>)                                       \</div>
<div class="line">      .check_name()</div>
</div><!-- fragment -->
<p>Macro to register OperatorProperty. </p>
<div class="fragment"><div class="line"><span class="comment">// example of registering a fully connected operator</span></div>
<div class="line">REGISTER_OP_PROPERTY(FullyConnected, FullyConnectedOpProp)</div>
<div class="line">.describe(<span class="stringliteral">&quot;Fully connected layer&quot;</span>);</div>
</div><!-- fragment --> 
</div>
</div>
</div><!-- contents -->
<div class="ttc" id="a3rdparty_2dmlc-core_2include_2dmlc_2registry_8h_html_af6870c3bce5b56d427a4d225b1194816"><div class="ttname"><a href="3rdparty_2dmlc-core_2include_2dmlc_2registry_8h.html#af6870c3bce5b56d427a4d225b1194816">DMLC_REGISTRY_REGISTER</a></div><div class="ttdeci">#define DMLC_REGISTRY_REGISTER(EntryType, EntryTypeName, Name)</div><div class="ttdoc">Generic macro to register an EntryType There is a complete example in FactoryRegistryEntryBase.</div><div class="ttdef"><b>Definition:</b> registry.h:250</div></div>
<div class="ttc" id="astructmxnet_1_1OperatorPropertyReg_html"><div class="ttname"><a href="structmxnet_1_1OperatorPropertyReg.html">mxnet::OperatorPropertyReg</a></div><div class="ttdoc">Registry entry for OperatorProperty factory functions.</div><div class="ttdef"><b>Definition:</b> operator.h:454</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Nov 5 2022 01:16:57 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>
