blob: 6ac0b21babbe09e24fec620ea28e8082cda350db [file] [log] [blame]
<!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>mxnet: /work/mxnet/3rdparty/tvm/nnvm/include/nnvm/c_api.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.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>
<!-- 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_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_d40daf7ef9783ad6669561b9a39523a5.html">tvm</a></li><li class="navelem"><a class="el" href="dir_59ab2d7405f48271a817356d16f4868c.html">nnvm</a></li><li class="navelem"><a class="el" href="dir_564b1b3930cee8f0cd6786ede046ff35.html">include</a></li><li class="navelem"><a class="el" href="dir_aadb892b7c99db7e2c3fc68a6c967545.html">nnvm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">c_api.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>C API of NNVM symbolic construction and pass. Enables construction and transformation of Graph in any other host languages.
<a href="#details">More...</a></p>
<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="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h__dep__incl.png" border="0" usemap="#_2work_2mxnet_23rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8hdep" alt=""/></div>
<map name="_2work_2mxnet_23rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8hdep" id="_2work_2mxnet_23rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8hdep">
<area shape="rect" id="node2" href="op_8h.html" title="Operator information structor. " alt="" coords="1089,109,1306,151"/>
<area shape="rect" id="node24" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2node_8h.html" title="Graph node data structure. " alt="" coords="1243,199,1429,255"/>
<area shape="rect" id="node31" href="cpp-package_2include_2mxnet-cpp_2base_8h.html" title="/work/mxnet/cpp&#45;package\l/include/mxnet&#45;cpp/base.h" alt="" coords="2372,109,2567,151"/>
<area shape="rect" id="node3" href="include_2mxnet_2base_8h.html" title="/work/mxnet/include\l/mxnet/base.h" alt="" coords="765,711,920,753"/>
<area shape="rect" id="node14" href="imperative_8h.html" title="/work/mxnet/include\l/mxnet/imperative.h" alt="" coords="1320,1180,1475,1221"/>
<area shape="rect" id="node4" href="packed__func_8h.html" title="Type&#45;erased function used across MXNET API. " alt="" coords="145,987,319,1043"/>
<area shape="rect" id="node7" href="engine_8h.html" title="Engine that schedules all the operations according to dependency. " alt="" coords="1267,808,1421,849"/>
<area shape="rect" id="node8" href="include_2mxnet_2ndarray_8h.html" title="/work/mxnet/include\l/mxnet/ndarray.h" alt="" coords="1072,897,1227,939"/>
<area shape="rect" id="node9" href="include_2mxnet_2executor_8h.html" title="/work/mxnet/include\l/mxnet/executor.h" alt="" coords="449,1180,604,1221"/>
<area shape="rect" id="node10" href="include_2mxnet_2op__attr__types_8h.html" title="/work/mxnet/include\l/mxnet/op_attr_types.h" alt="" coords="1251,994,1424,1035"/>
<area shape="rect" id="node11" href="include_2mxnet_2operator_8h.html" title="/work/mxnet/include\l/mxnet/operator.h" alt="" coords="304,1091,459,1132"/>
<area shape="rect" id="node12" href="operator__util_8h.html" title="Utility functions and registries to help quickly build new operators. [Deprecated] Use the register f..." alt="" coords="258,1180,425,1221"/>
<area shape="rect" id="node17" href="include_2mxnet_2io_8h.html" title="/work/mxnet/include\l/mxnet/io.h" alt="" coords="580,994,735,1035"/>
<area shape="rect" id="node19" href="resource_8h.html" title="Global resource allocation handling. " alt="" coords="835,897,989,939"/>
<area shape="rect" id="node20" href="storage_8h.html" title="Storage manager across multiple devices. " alt="" coords="1037,808,1192,849"/>
<area shape="rect" id="node21" href="random__generator_8h.html" title="Parallel random number generator. " alt="" coords="811,808,1013,849"/>
<area shape="rect" id="node22" href="rtc_8h.html" title="/work/mxnet/include\l/mxnet/rtc.h" alt="" coords="397,808,552,849"/>
<area shape="rect" id="node23" href="tensor__blob_8h.html" title="TBlob class that holds common representation of arbirary dimension tensor, can be used to transformed..." alt="" coords="576,808,736,849"/>
<area shape="rect" id="node5" href="include_2mxnet_2runtime_2registry_8h.html" title="/work/mxnet/include\l/mxnet/runtime/registry.h" alt="" coords="93,1091,280,1132"/>
<area shape="rect" id="node6" href="api__registry_8h.html" title="This file contains utilities related to the MXNet&#39;s global function registry. " alt="" coords="75,1180,234,1221"/>
<area shape="rect" id="node15" href="utils_8h.html" title="Basic utilility functions. " alt="" coords="1246,1277,1434,1318"/>
<area shape="rect" id="node18" href="include_2mxnet_2kvstore_8h.html" title="/work/mxnet/include\l/mxnet/kvstore.h" alt="" coords="1072,994,1227,1035"/>
<area shape="rect" id="node13" href="include_2mxnet_2graph__attr__types_8h.html" title="/work/mxnet/include\l/mxnet/graph_attr_types.h" alt="" coords="1179,1091,1373,1132"/>
<area shape="rect" id="node16" href="exec__utils_8h.html" title="Common utility functions for executors. " alt="" coords="1850,1373,2038,1415"/>
<area shape="rect" id="node25" href="graph_8h.html" title="Configuation of nnvm as well as basic data structure. " alt="" coords="1750,407,1935,463"/>
<area shape="rect" id="node29" href="symbolic_8h.html" title="Symbolic graph construction API. " alt="" coords="1549,303,1734,359"/>
<area shape="rect" id="node30" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2op__attr__types_8h.html" title="Data structures that can appear in operator attributes. " alt="" coords="1438,511,1623,567"/>
<area shape="rect" id="node26" href="include_2mxnet_2tuple_8h.html" title="Data structure Tuple and TShape to store dynamic sized shapes. " alt="" coords="1699,615,1853,656"/>
<area shape="rect" id="node27" href="pass_8h.html" title="Pass that can be applied to a graph. " alt="" coords="1750,511,1935,567"/>
<area shape="rect" id="node28" href="pass__functions_8h.html" title="Pass functions that simply redirect the calls to ApplyPass. " alt="" coords="1851,1269,2037,1325"/>
<area shape="rect" id="node32" href="cpp-package_2include_2mxnet-cpp_2executor_8h.html" title="/work/mxnet/cpp&#45;package\l/include/mxnet&#45;cpp/executor.h" alt="" coords="2599,518,2817,559"/>
<area shape="rect" id="node33" href="monitor_8h.html" title="monitor definition " alt="" coords="2601,615,2815,656"/>
<area shape="rect" id="node34" href="cpp-package_2include_2mxnet-cpp_2io_8h.html" title="/work/mxnet/cpp&#45;package\l/include/mxnet&#45;cpp/io.h" alt="" coords="2366,414,2557,455"/>
<area shape="rect" id="node35" href="model_8h.html" title="MXNET.cpp model module. " alt="" coords="3179,518,3383,559"/>
<area shape="rect" id="node36" href="cpp-package_2include_2mxnet-cpp_2ndarray_8h.html" title="/work/mxnet/cpp&#45;package\l/include/mxnet&#45;cpp/ndarray.h" alt="" coords="2972,310,3183,351"/>
<area shape="rect" id="node39" href="op__suppl_8h.html" title="A supplement and amendment of the operators from op.h. " alt="" coords="3189,704,3379,760"/>
<area shape="rect" id="node42" href="optimizer_8h.html" title="definition of optimizer " alt="" coords="2581,414,2805,455"/>
<area shape="rect" id="node43" href="symbol_8h.html" title="definition of symbol " alt="" coords="2829,414,3040,455"/>
<area shape="rect" id="node45" href="cpp-package_2include_2mxnet-cpp_2operator_8h.html" title="/work/mxnet/cpp&#45;package\l/include/mxnet&#45;cpp/operator.h" alt="" coords="2247,518,2465,559"/>
<area shape="rect" id="node46" href="op__map_8h.html" title="definition of OpMap " alt="" coords="2458,310,2673,351"/>
<area shape="rect" id="node47" href="shape_8h.html" title="definition of shape " alt="" coords="2976,206,3179,247"/>
<area shape="rect" id="node37" href="initializer_8h.html" title="random initializer " alt="" coords="3407,518,3630,559"/>
<area shape="rect" id="node40" href="cpp-package_2include_2mxnet-cpp_2kvstore_8h.html" title="/work/mxnet/cpp&#45;package\l/include/mxnet&#45;cpp/kvstore.h" alt="" coords="3114,414,3326,455"/>
<area shape="rect" id="node41" href="metric_8h.html" title="/work/mxnet/cpp&#45;package\l/include/mxnet&#45;cpp/metric.h" alt="" coords="3501,414,3707,455"/>
<area shape="rect" id="node38" href="MxNetCpp_8h.html" title="meta include file for mxnet.cpp " alt="" coords="3169,615,3399,656"/>
<area shape="rect" id="node44" href="contrib_8h.html" title="utility function to enable some contrib features " alt="" coords="2947,518,3155,559"/>
</map>
</div>
</div>
<p><a href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_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="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a528178e3caf0ffc542b9f12a50c1c7b0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a>&#160;&#160;&#160;__attribute__((visibility(&quot;default&quot;)))</td></tr>
<tr class="memdesc:a528178e3caf0ffc542b9f12a50c1c7b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">NNVM_DLL prefix for windows. <a href="#a528178e3caf0ffc542b9f12a50c1c7b0">More...</a><br /></td></tr>
<tr class="separator:a528178e3caf0ffc542b9f12a50c1c7b0"><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:a830ae32828b06eab796e2f76852591ab"><td class="memItemLeft" align="right" valign="top">typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a></td></tr>
<tr class="memdesc:a830ae32828b06eab796e2f76852591ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">manually define unsigned int <a href="#a830ae32828b06eab796e2f76852591ab">More...</a><br /></td></tr>
<tr class="separator:a830ae32828b06eab796e2f76852591ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf157e26d64edaf2b857b04a69deb52b"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acf157e26d64edaf2b857b04a69deb52b">OpHandle</a></td></tr>
<tr class="memdesc:acf157e26d64edaf2b857b04a69deb52b"><td class="mdescLeft">&#160;</td><td class="mdescRight">handle to a function that takes param and creates symbol <a href="#acf157e26d64edaf2b857b04a69deb52b">More...</a><br /></td></tr>
<tr class="separator:acf157e26d64edaf2b857b04a69deb52b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a301e9a7722b326126defdd39ccd99b37"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a></td></tr>
<tr class="memdesc:a301e9a7722b326126defdd39ccd99b37"><td class="mdescLeft">&#160;</td><td class="mdescRight">handle to a symbol that can be bind as operator <a href="#a301e9a7722b326126defdd39ccd99b37">More...</a><br /></td></tr>
<tr class="separator:a301e9a7722b326126defdd39ccd99b37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42cfaee0f6c134e30b14acf1e5276823"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a></td></tr>
<tr class="memdesc:a42cfaee0f6c134e30b14acf1e5276823"><td class="mdescLeft">&#160;</td><td class="mdescRight">handle to Graph <a href="#a42cfaee0f6c134e30b14acf1e5276823">More...</a><br /></td></tr>
<tr class="separator:a42cfaee0f6c134e30b14acf1e5276823"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a5f371979a9d09cb58ad81a065f7d8902"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a5f371979a9d09cb58ad81a065f7d8902">NNAPISetLastError</a> (const char *msg)</td></tr>
<tr class="memdesc:a5f371979a9d09cb58ad81a065f7d8902"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the last error message needed by C API. <a href="#a5f371979a9d09cb58ad81a065f7d8902">More...</a><br /></td></tr>
<tr class="separator:a5f371979a9d09cb58ad81a065f7d8902"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd8481f2eee30230850be6117ce9d90c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acd8481f2eee30230850be6117ce9d90c">NNGetLastError</a> (void)</td></tr>
<tr class="memdesc:acd8481f2eee30230850be6117ce9d90c"><td class="mdescLeft">&#160;</td><td class="mdescRight">return str message of the last error all function in this file will return 0 when success and -1 when an error occurred, NNGetLastError can be called to retrieve the error <a href="#acd8481f2eee30230850be6117ce9d90c">More...</a><br /></td></tr>
<tr class="separator:acd8481f2eee30230850be6117ce9d90c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae30c2e10259ce167bc7ba3f989094d88"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#ae30c2e10259ce167bc7ba3f989094d88">NNListAllOpNames</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *out_size, const char ***out_array)</td></tr>
<tr class="memdesc:ae30c2e10259ce167bc7ba3f989094d88"><td class="mdescLeft">&#160;</td><td class="mdescRight">list all the available operator names, include entries. <a href="#ae30c2e10259ce167bc7ba3f989094d88">More...</a><br /></td></tr>
<tr class="separator:ae30c2e10259ce167bc7ba3f989094d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1604f8df7177a3b0acead0b816bd9536"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a1604f8df7177a3b0acead0b816bd9536">NNGetOpHandle</a> (const char *op_name, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acf157e26d64edaf2b857b04a69deb52b">OpHandle</a> *op_out)</td></tr>
<tr class="memdesc:a1604f8df7177a3b0acead0b816bd9536"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get operator handle given name. <a href="#a1604f8df7177a3b0acead0b816bd9536">More...</a><br /></td></tr>
<tr class="separator:a1604f8df7177a3b0acead0b816bd9536"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3107847f239016cfc86de09df045e500"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a3107847f239016cfc86de09df045e500">NNListUniqueOps</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *out_size, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acf157e26d64edaf2b857b04a69deb52b">OpHandle</a> **out_array)</td></tr>
<tr class="memdesc:a3107847f239016cfc86de09df045e500"><td class="mdescLeft">&#160;</td><td class="mdescRight">list all the available operators. This won't include the alias, use ListAllNames instead to get all alias names. <a href="#a3107847f239016cfc86de09df045e500">More...</a><br /></td></tr>
<tr class="separator:a3107847f239016cfc86de09df045e500"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae23adb2fdc373b8dba52687c9449f2f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#ae23adb2fdc373b8dba52687c9449f2f9">NNGetOpInfo</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acf157e26d64edaf2b857b04a69deb52b">OpHandle</a> op, const char **real_name, const char **description, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *num_doc_args, const char ***arg_names, const char ***arg_type_infos, const char ***arg_descriptions, const char **return_type)</td></tr>
<tr class="memdesc:ae23adb2fdc373b8dba52687c9449f2f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the detailed information about atomic symbol. <a href="#ae23adb2fdc373b8dba52687c9449f2f9">More...</a><br /></td></tr>
<tr class="separator:ae23adb2fdc373b8dba52687c9449f2f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d389b16e4ce03e679b90323851af9c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a3d389b16e4ce03e679b90323851af9c8">NNSymbolCreateAtomicSymbol</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acf157e26d64edaf2b857b04a69deb52b">OpHandle</a> op, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> num_param, const char **keys, const char **vals, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *out)</td></tr>
<tr class="memdesc:a3d389b16e4ce03e679b90323851af9c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an AtomicSymbol functor. <a href="#a3d389b16e4ce03e679b90323851af9c8">More...</a><br /></td></tr>
<tr class="separator:a3d389b16e4ce03e679b90323851af9c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dbc040c114785d692bfe04859be7dff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a1dbc040c114785d692bfe04859be7dff">NNSymbolCreateVariable</a> (const char *name, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *out)</td></tr>
<tr class="memdesc:a1dbc040c114785d692bfe04859be7dff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a Variable Symbol. <a href="#a1dbc040c114785d692bfe04859be7dff">More...</a><br /></td></tr>
<tr class="separator:a1dbc040c114785d692bfe04859be7dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14e613b4d707d3cc76d7d417adf9511f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a14e613b4d707d3cc76d7d417adf9511f">NNSymbolCreateGroup</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> num_symbols, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *symbols, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *out)</td></tr>
<tr class="memdesc:a14e613b4d707d3cc76d7d417adf9511f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a Symbol by grouping list of symbols together. <a href="#a14e613b4d707d3cc76d7d417adf9511f">More...</a><br /></td></tr>
<tr class="separator:a14e613b4d707d3cc76d7d417adf9511f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4218ee4d1053f2e0c00d914c748d9aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#ab4218ee4d1053f2e0c00d914c748d9aa">NNAddControlDeps</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> handle, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> src_dep)</td></tr>
<tr class="memdesc:ab4218ee4d1053f2e0c00d914c748d9aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add src_dep to the handle as control dep. <a href="#ab4218ee4d1053f2e0c00d914c748d9aa">More...</a><br /></td></tr>
<tr class="separator:ab4218ee4d1053f2e0c00d914c748d9aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea876d94e36d2e586df0b68e62625763"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#aea876d94e36d2e586df0b68e62625763">NNSymbolFree</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol)</td></tr>
<tr class="memdesc:aea876d94e36d2e586df0b68e62625763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the symbol handle. <a href="#aea876d94e36d2e586df0b68e62625763">More...</a><br /></td></tr>
<tr class="separator:aea876d94e36d2e586df0b68e62625763"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a549475e7290662ec6cf494fd2c48baa9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a549475e7290662ec6cf494fd2c48baa9">NNSymbolCopy</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *out)</td></tr>
<tr class="memdesc:a549475e7290662ec6cf494fd2c48baa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the symbol to another handle. <a href="#a549475e7290662ec6cf494fd2c48baa9">More...</a><br /></td></tr>
<tr class="separator:a549475e7290662ec6cf494fd2c48baa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a81775bd9cead7fada5b19c11dbcf0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a2a81775bd9cead7fada5b19c11dbcf0c">NNSymbolPrint</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, const char **out_str)</td></tr>
<tr class="memdesc:a2a81775bd9cead7fada5b19c11dbcf0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the content of symbol, used for debug. <a href="#a2a81775bd9cead7fada5b19c11dbcf0c">More...</a><br /></td></tr>
<tr class="separator:a2a81775bd9cead7fada5b19c11dbcf0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44aa0799d8af8adcc8b9a8688e7f841f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a44aa0799d8af8adcc8b9a8688e7f841f">NNSymbolGetAttr</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, const char *key, const char **out, int *success)</td></tr>
<tr class="memdesc:a44aa0799d8af8adcc8b9a8688e7f841f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get string attribute from symbol. <a href="#a44aa0799d8af8adcc8b9a8688e7f841f">More...</a><br /></td></tr>
<tr class="separator:a44aa0799d8af8adcc8b9a8688e7f841f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b664ff2f188337b86e5d8d1ba1471a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a6b664ff2f188337b86e5d8d1ba1471a5">NNSymbolSetAttrs</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> num_param, const char **keys, const char **values)</td></tr>
<tr class="memdesc:a6b664ff2f188337b86e5d8d1ba1471a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set string attribute from symbol. NOTE: Setting attribute to a symbol can affect the semantics(mutable/immutable) of symbolic graph. <a href="#a6b664ff2f188337b86e5d8d1ba1471a5">More...</a><br /></td></tr>
<tr class="separator:a6b664ff2f188337b86e5d8d1ba1471a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a335b789d27a16abe01b17435902a5a1b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a335b789d27a16abe01b17435902a5a1b">NNSymbolListAttrs</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, int recursive_option, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *out_size, const char ***out)</td></tr>
<tr class="memdesc:a335b789d27a16abe01b17435902a5a1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all attributes from symbol, including all descendents. <a href="#a335b789d27a16abe01b17435902a5a1b">More...</a><br /></td></tr>
<tr class="separator:a335b789d27a16abe01b17435902a5a1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2186dcb8ec09a86ddf5642cc0f71bd85"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a2186dcb8ec09a86ddf5642cc0f71bd85">NNSymbolListInputVariables</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, int option, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *out_size, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> **out_sym_array)</td></tr>
<tr class="memdesc:a2186dcb8ec09a86ddf5642cc0f71bd85"><td class="mdescLeft">&#160;</td><td class="mdescRight">List inputs variables in the symbol. <a href="#a2186dcb8ec09a86ddf5642cc0f71bd85">More...</a><br /></td></tr>
<tr class="separator:a2186dcb8ec09a86ddf5642cc0f71bd85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41134d2fbb83648b571235bdbd2fb0fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a41134d2fbb83648b571235bdbd2fb0fb">NNSymbolListInputNames</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, int option, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *out_size, const char ***out_str_array)</td></tr>
<tr class="memdesc:a41134d2fbb83648b571235bdbd2fb0fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">List input names in the symbol. <a href="#a41134d2fbb83648b571235bdbd2fb0fb">More...</a><br /></td></tr>
<tr class="separator:a41134d2fbb83648b571235bdbd2fb0fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28f7059903fa303d31a0f7a6145f222f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a28f7059903fa303d31a0f7a6145f222f">NNSymbolListOutputNames</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *out_size, const char ***out_str_array)</td></tr>
<tr class="memdesc:a28f7059903fa303d31a0f7a6145f222f"><td class="mdescLeft">&#160;</td><td class="mdescRight">List returns names in the symbol. <a href="#a28f7059903fa303d31a0f7a6145f222f">More...</a><br /></td></tr>
<tr class="separator:a28f7059903fa303d31a0f7a6145f222f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa996ee89a6cb060154657cdff0779b4e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#aa996ee89a6cb060154657cdff0779b4e">NNSymbolGetNumOutputs</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *output_count)</td></tr>
<tr class="memdesc:aa996ee89a6cb060154657cdff0779b4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supply number of outputs of the symbol. <a href="#aa996ee89a6cb060154657cdff0779b4e">More...</a><br /></td></tr>
<tr class="separator:aa996ee89a6cb060154657cdff0779b4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae519f15a2a86be61fd85bc6c6acccdb0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#ae519f15a2a86be61fd85bc6c6acccdb0">NNSymbolGetInternals</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *out)</td></tr>
<tr class="memdesc:ae519f15a2a86be61fd85bc6c6acccdb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a symbol that contains all the internals. <a href="#ae519f15a2a86be61fd85bc6c6acccdb0">More...</a><br /></td></tr>
<tr class="separator:ae519f15a2a86be61fd85bc6c6acccdb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cb737751471af960814aa8624af2457"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a8cb737751471af960814aa8624af2457">NNSymbolGetChildren</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *out)</td></tr>
<tr class="memdesc:a8cb737751471af960814aa8624af2457"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a symbol that contains only direct children. <a href="#a8cb737751471af960814aa8624af2457">More...</a><br /></td></tr>
<tr class="separator:a8cb737751471af960814aa8624af2457"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4320b87b7f5f6f142e5aac901fa8d9ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a4320b87b7f5f6f142e5aac901fa8d9ac">NNSymbolGetOutput</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> index, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *out)</td></tr>
<tr class="memdesc:a4320b87b7f5f6f142e5aac901fa8d9ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get index-th outputs of the symbol. <a href="#a4320b87b7f5f6f142e5aac901fa8d9ac">More...</a><br /></td></tr>
<tr class="separator:a4320b87b7f5f6f142e5aac901fa8d9ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fb0156063805c01095424ff3184410d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a3fb0156063805c01095424ff3184410d">NNSymbolCompose</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> sym, const char *name, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> num_args, const char **keys, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *args)</td></tr>
<tr class="memdesc:a3fb0156063805c01095424ff3184410d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compose the symbol on other symbols. <a href="#a3fb0156063805c01095424ff3184410d">More...</a><br /></td></tr>
<tr class="separator:a3fb0156063805c01095424ff3184410d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a277212f08ab798a150385ab4d6f0606c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a277212f08ab798a150385ab4d6f0606c">NNGraphCreate</a> (<a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> symbol, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a> *graph)</td></tr>
<tr class="memdesc:a277212f08ab798a150385ab4d6f0606c"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a graph handle from symbol <a href="#a277212f08ab798a150385ab4d6f0606c">More...</a><br /></td></tr>
<tr class="separator:a277212f08ab798a150385ab4d6f0606c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b93d6b22c3fe9175edc1ef31f4e17d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a4b93d6b22c3fe9175edc1ef31f4e17d2">NNGraphFree</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a> handle)</td></tr>
<tr class="memdesc:a4b93d6b22c3fe9175edc1ef31f4e17d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">free the graph handle <a href="#a4b93d6b22c3fe9175edc1ef31f4e17d2">More...</a><br /></td></tr>
<tr class="separator:a4b93d6b22c3fe9175edc1ef31f4e17d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67cb2496d49ab065e97f1fc846171bac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a67cb2496d49ab065e97f1fc846171bac">NNGraphGetSymbol</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a> graph, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *symbol)</td></tr>
<tr class="memdesc:a67cb2496d49ab065e97f1fc846171bac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a new symbol from the graph. <a href="#a67cb2496d49ab065e97f1fc846171bac">More...</a><br /></td></tr>
<tr class="separator:a67cb2496d49ab065e97f1fc846171bac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cfeafc7c551f1d130426c2e6dcd3595"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a6cfeafc7c551f1d130426c2e6dcd3595">NNGraphSetJSONAttr</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a> handle, const char *key, const char *json_value)</td></tr>
<tr class="memdesc:a6cfeafc7c551f1d130426c2e6dcd3595"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Set a attribute in json format. This feature allows pass graph attributes back and forth in reasonable speed. <a href="#a6cfeafc7c551f1d130426c2e6dcd3595">More...</a><br /></td></tr>
<tr class="separator:a6cfeafc7c551f1d130426c2e6dcd3595"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e42594211892043dcf1640bf62bf0cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a2e42594211892043dcf1640bf62bf0cb">NNGraphGetJSONAttr</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a> handle, const char *key, const char **json_out, int *success)</td></tr>
<tr class="memdesc:a2e42594211892043dcf1640bf62bf0cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a serialized attrirbute from graph. This feature allows pass graph attributes back and forth in reasonable speed. <a href="#a2e42594211892043dcf1640bf62bf0cb">More...</a><br /></td></tr>
<tr class="separator:a2e42594211892043dcf1640bf62bf0cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e03e78095e13e516567ec210e53ed02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a9e03e78095e13e516567ec210e53ed02">NNGraphSetNodeEntryListAttr_</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a> handle, const char *key, <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> list)</td></tr>
<tr class="memdesc:a9e03e78095e13e516567ec210e53ed02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a attribute whose type is std::vector&lt;NodeEntry&gt; in c++ This feature allows pass List of symbolic variables for gradient request. <a href="#a9e03e78095e13e516567ec210e53ed02">More...</a><br /></td></tr>
<tr class="separator:a9e03e78095e13e516567ec210e53ed02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee727202c3eeddda7d911ab27ddfd453"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#aee727202c3eeddda7d911ab27ddfd453">NNGraphApplyPasses</a> (<a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a> src, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> num_pass, const char **pass_names, <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a> *dst)</td></tr>
<tr class="memdesc:aee727202c3eeddda7d911ab27ddfd453"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply passes on the src graph. <a href="#aee727202c3eeddda7d911ab27ddfd453">More...</a><br /></td></tr>
<tr class="separator:aee727202c3eeddda7d911ab27ddfd453"><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>C API of NNVM symbolic construction and pass. Enables construction and transformation of Graph in any other host languages. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a528178e3caf0ffc542b9f12a50c1c7b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a528178e3caf0ffc542b9f12a50c1c7b0">&#9670;&nbsp;</a></span>NNVM_DLL</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define NNVM_DLL&#160;&#160;&#160;__attribute__((visibility(&quot;default&quot;)))</td>
</tr>
</table>
</div><div class="memdoc">
<p>NNVM_DLL prefix for windows. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a42cfaee0f6c134e30b14acf1e5276823"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42cfaee0f6c134e30b14acf1e5276823">&#9670;&nbsp;</a></span>GraphHandle</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>handle to Graph </p>
</div>
</div>
<a id="a830ae32828b06eab796e2f76852591ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a830ae32828b06eab796e2f76852591ab">&#9670;&nbsp;</a></span>nn_uint</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned int <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>manually define unsigned int </p>
</div>
</div>
<a id="acf157e26d64edaf2b857b04a69deb52b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf157e26d64edaf2b857b04a69deb52b">&#9670;&nbsp;</a></span>OpHandle</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acf157e26d64edaf2b857b04a69deb52b">OpHandle</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>handle to a function that takes param and creates symbol </p>
</div>
</div>
<a id="a301e9a7722b326126defdd39ccd99b37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a301e9a7722b326126defdd39ccd99b37">&#9670;&nbsp;</a></span>SymbolHandle</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>handle to a symbol that can be bind as operator </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ab4218ee4d1053f2e0c00d914c748d9aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4218ee4d1053f2e0c00d914c748d9aa">&#9670;&nbsp;</a></span>NNAddControlDeps()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNAddControlDeps </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>src_dep</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add src_dep to the handle as control dep. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>The symbol to add dependency edges on. </td></tr>
<tr><td class="paramname">src_dep</td><td>the source handles. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a5f371979a9d09cb58ad81a065f7d8902"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f371979a9d09cb58ad81a065f7d8902">&#9670;&nbsp;</a></span>NNAPISetLastError()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> void NNAPISetLastError </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>msg</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the last error message needed by C API. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">msg</td><td>The error message to set. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="acd8481f2eee30230850be6117ce9d90c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd8481f2eee30230850be6117ce9d90c">&#9670;&nbsp;</a></span>NNGetLastError()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> const char* NNGetLastError </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>return str message of the last error all function in this file will return 0 when success and -1 when an error occurred, NNGetLastError can be called to retrieve the error </p>
<p>this function is threadsafe and can be called by different thread </p><dl class="section return"><dt>Returns</dt><dd>error info </dd></dl>
</div>
</div>
<a id="a1604f8df7177a3b0acead0b816bd9536"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1604f8df7177a3b0acead0b816bd9536">&#9670;&nbsp;</a></span>NNGetOpHandle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNGetOpHandle </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>op_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acf157e26d64edaf2b857b04a69deb52b">OpHandle</a> *&#160;</td>
<td class="paramname"><em>op_out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get operator handle given name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">op_name</td><td>The name of the operator. </td></tr>
<tr><td class="paramname">op_out</td><td>The returnning op handle. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae23adb2fdc373b8dba52687c9449f2f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae23adb2fdc373b8dba52687c9449f2f9">&#9670;&nbsp;</a></span>NNGetOpInfo()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNGetOpInfo </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acf157e26d64edaf2b857b04a69deb52b">OpHandle</a>&#160;</td>
<td class="paramname"><em>op</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>real_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>description</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *&#160;</td>
<td class="paramname"><em>num_doc_args</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ***&#160;</td>
<td class="paramname"><em>arg_names</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ***&#160;</td>
<td class="paramname"><em>arg_type_infos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ***&#160;</td>
<td class="paramname"><em>arg_descriptions</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>return_type</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the detailed information about atomic symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">op</td><td>The operator handle. </td></tr>
<tr><td class="paramname">real_name</td><td>The returned name of the creator. This name is not the alias name of the atomic symbol. </td></tr>
<tr><td class="paramname">description</td><td>The returned description of the symbol. </td></tr>
<tr><td class="paramname">num_doc_args</td><td>Number of arguments that contain documents. </td></tr>
<tr><td class="paramname">arg_names</td><td>Name of the arguments of doc args </td></tr>
<tr><td class="paramname">arg_type_infos</td><td>Type informations about the arguments. </td></tr>
<tr><td class="paramname">arg_descriptions</td><td>Description information about the arguments. </td></tr>
<tr><td class="paramname">return_type</td><td>Return type of the function, if any. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="aee727202c3eeddda7d911ab27ddfd453"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee727202c3eeddda7d911ab27ddfd453">&#9670;&nbsp;</a></span>NNGraphApplyPasses()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNGraphApplyPasses </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a>&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a>&#160;</td>
<td class="paramname"><em>num_pass</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>pass_names</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a> *&#160;</td>
<td class="paramname"><em>dst</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply passes on the src graph. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">src</td><td>The source graph handle. </td></tr>
<tr><td class="paramname">num_pass</td><td>The number of pass to be applied. </td></tr>
<tr><td class="paramname">pass_names</td><td>The names of the pass. </td></tr>
<tr><td class="paramname">dst</td><td>The result graph. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a277212f08ab798a150385ab4d6f0606c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a277212f08ab798a150385ab4d6f0606c">&#9670;&nbsp;</a></span>NNGraphCreate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNGraphCreate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a> *&#160;</td>
<td class="paramname"><em>graph</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>create a graph handle from symbol </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>The symbol representing the graph. </td></tr>
<tr><td class="paramname">graph</td><td>The graph handle created. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a4b93d6b22c3fe9175edc1ef31f4e17d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b93d6b22c3fe9175edc1ef31f4e17d2">&#9670;&nbsp;</a></span>NNGraphFree()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNGraphFree </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>free the graph handle </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>The handle to be freed. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a2e42594211892043dcf1640bf62bf0cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e42594211892043dcf1640bf62bf0cb">&#9670;&nbsp;</a></span>NNGraphGetJSONAttr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNGraphGetJSONAttr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>json_out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>success</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a serialized attrirbute from graph. This feature allows pass graph attributes back and forth in reasonable speed. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>The graph handle. </td></tr>
<tr><td class="paramname">key</td><td>The key to the attribute. </td></tr>
<tr><td class="paramname">json_out</td><td>The result attribute, can be NULL if the attribute do not exist. The json_out is an array of [type_name, value]. Where the type_name is a registered type string in C++ side via DMLC_JSON_ENABLE_ANY. </td></tr>
<tr><td class="paramname">success</td><td>Whether the result is contained in out. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a67cb2496d49ab065e97f1fc846171bac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67cb2496d49ab065e97f1fc846171bac">&#9670;&nbsp;</a></span>NNGraphGetSymbol()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNGraphGetSymbol </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a>&#160;</td>
<td class="paramname"><em>graph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *&#160;</td>
<td class="paramname"><em>symbol</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a new symbol from the graph. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">graph</td><td>The graph handle. </td></tr>
<tr><td class="paramname">symbol</td><td>The corresponding symbol </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a6cfeafc7c551f1d130426c2e6dcd3595"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cfeafc7c551f1d130426c2e6dcd3595">&#9670;&nbsp;</a></span>NNGraphSetJSONAttr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNGraphSetJSONAttr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>json_value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get Set a attribute in json format. This feature allows pass graph attributes back and forth in reasonable speed. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>The graph handle. </td></tr>
<tr><td class="paramname">key</td><td>The key to the attribute. </td></tr>
<tr><td class="paramname">json_value</td><td>The value need to be in format [type_name, value], Where type_name is a registered type string in C++ side via DMLC_JSON_ENABLE_ANY. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a9e03e78095e13e516567ec210e53ed02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e03e78095e13e516567ec210e53ed02">&#9670;&nbsp;</a></span>NNGraphSetNodeEntryListAttr_()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNGraphSetNodeEntryListAttr_ </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a42cfaee0f6c134e30b14acf1e5276823">GraphHandle</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>list</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a attribute whose type is std::vector&lt;NodeEntry&gt; in c++ This feature allows pass List of symbolic variables for gradient request. </p>
<dl class="section note"><dt>Note</dt><dd>This is beta feature only used for test purpos</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>The graph handle. </td></tr>
<tr><td class="paramname">key</td><td>The key to the attribute. </td></tr>
<tr><td class="paramname">list</td><td>The symbol whose outputs represents the list of NodeEntry to be passed. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="ae30c2e10259ce167bc7ba3f989094d88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae30c2e10259ce167bc7ba3f989094d88">&#9670;&nbsp;</a></span>NNListAllOpNames()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNListAllOpNames </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *&#160;</td>
<td class="paramname"><em>out_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ***&#160;</td>
<td class="paramname"><em>out_array</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>list all the available operator names, include entries. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">out_size</td><td>the size of returned array </td></tr>
<tr><td class="paramname">out_array</td><td>the output operator name array. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a3107847f239016cfc86de09df045e500"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3107847f239016cfc86de09df045e500">&#9670;&nbsp;</a></span>NNListUniqueOps()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNListUniqueOps </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *&#160;</td>
<td class="paramname"><em>out_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acf157e26d64edaf2b857b04a69deb52b">OpHandle</a> **&#160;</td>
<td class="paramname"><em>out_array</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>list all the available operators. This won't include the alias, use ListAllNames instead to get all alias names. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">out_size</td><td>the size of returned array </td></tr>
<tr><td class="paramname">out_array</td><td>the output AtomicSymbolCreator array </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a3fb0156063805c01095424ff3184410d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3fb0156063805c01095424ff3184410d">&#9670;&nbsp;</a></span>NNSymbolCompose()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolCompose </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>sym</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a>&#160;</td>
<td class="paramname"><em>num_args</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *&#160;</td>
<td class="paramname"><em>args</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Compose the symbol on other symbols. </p>
<p>This function will change the sym hanlde. To achieve function apply behavior, copy the symbol first before apply.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">sym</td><td>the symbol to apply </td></tr>
<tr><td class="paramname">name</td><td>the name of symbol </td></tr>
<tr><td class="paramname">num_args</td><td>number of arguments </td></tr>
<tr><td class="paramname">keys</td><td>the key of keyword args (optional) </td></tr>
<tr><td class="paramname">args</td><td>arguments to sym </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a549475e7290662ec6cf494fd2c48baa9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a549475e7290662ec6cf494fd2c48baa9">&#9670;&nbsp;</a></span>NNSymbolCopy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolCopy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *&#160;</td>
<td class="paramname"><em>out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy the symbol to another handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>the source symbol </td></tr>
<tr><td class="paramname">out</td><td>used to hold the result of copy </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a3d389b16e4ce03e679b90323851af9c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d389b16e4ce03e679b90323851af9c8">&#9670;&nbsp;</a></span>NNSymbolCreateAtomicSymbol()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolCreateAtomicSymbol </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#acf157e26d64edaf2b857b04a69deb52b">OpHandle</a>&#160;</td>
<td class="paramname"><em>op</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a>&#160;</td>
<td class="paramname"><em>num_param</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>vals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *&#160;</td>
<td class="paramname"><em>out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create an AtomicSymbol functor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">op</td><td>The operator handle </td></tr>
<tr><td class="paramname">num_param</td><td>the number of parameters </td></tr>
<tr><td class="paramname">keys</td><td>the keys to the params </td></tr>
<tr><td class="paramname">vals</td><td>the vals of the params </td></tr>
<tr><td class="paramname">out</td><td>pointer to the created symbol handle </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a14e613b4d707d3cc76d7d417adf9511f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14e613b4d707d3cc76d7d417adf9511f">&#9670;&nbsp;</a></span>NNSymbolCreateGroup()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolCreateGroup </td>
<td>(</td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a>&#160;</td>
<td class="paramname"><em>num_symbols</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *&#160;</td>
<td class="paramname"><em>symbols</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *&#160;</td>
<td class="paramname"><em>out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a Symbol by grouping list of symbols together. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">num_symbols</td><td>number of symbols to be grouped </td></tr>
<tr><td class="paramname">symbols</td><td>array of symbol handles </td></tr>
<tr><td class="paramname">out</td><td>pointer to the created symbol handle </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a1dbc040c114785d692bfe04859be7dff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1dbc040c114785d692bfe04859be7dff">&#9670;&nbsp;</a></span>NNSymbolCreateVariable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolCreateVariable </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *&#160;</td>
<td class="paramname"><em>out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a Variable Symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>name of the variable </td></tr>
<tr><td class="paramname">out</td><td>pointer to the created symbol handle </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="aea876d94e36d2e586df0b68e62625763"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea876d94e36d2e586df0b68e62625763">&#9670;&nbsp;</a></span>NNSymbolFree()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolFree </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Free the symbol handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>the symbol </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a44aa0799d8af8adcc8b9a8688e7f841f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44aa0799d8af8adcc8b9a8688e7f841f">&#9670;&nbsp;</a></span>NNSymbolGetAttr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolGetAttr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>success</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get string attribute from symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>the source symbol </td></tr>
<tr><td class="paramname">key</td><td>The key of the symbol. </td></tr>
<tr><td class="paramname">out</td><td>The result attribute, can be NULL if the attribute do not exist. </td></tr>
<tr><td class="paramname">success</td><td>Whether the result is contained in out. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a8cb737751471af960814aa8624af2457"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cb737751471af960814aa8624af2457">&#9670;&nbsp;</a></span>NNSymbolGetChildren()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolGetChildren </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *&#160;</td>
<td class="paramname"><em>out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a symbol that contains only direct children. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>The symbol </td></tr>
<tr><td class="paramname">out</td><td>The output symbol whose outputs are the direct children. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="ae519f15a2a86be61fd85bc6c6acccdb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae519f15a2a86be61fd85bc6c6acccdb0">&#9670;&nbsp;</a></span>NNSymbolGetInternals()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolGetInternals </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *&#160;</td>
<td class="paramname"><em>out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a symbol that contains all the internals. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>The symbol </td></tr>
<tr><td class="paramname">out</td><td>The output symbol whose outputs are all the internals. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="aa996ee89a6cb060154657cdff0779b4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa996ee89a6cb060154657cdff0779b4e">&#9670;&nbsp;</a></span>NNSymbolGetNumOutputs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolGetNumOutputs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *&#160;</td>
<td class="paramname"><em>output_count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Supply number of outputs of the symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>the symbol </td></tr>
<tr><td class="paramname">output_count</td><td>number of outputs </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a4320b87b7f5f6f142e5aac901fa8d9ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4320b87b7f5f6f142e5aac901fa8d9ac">&#9670;&nbsp;</a></span>NNSymbolGetOutput()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolGetOutput </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a>&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> *&#160;</td>
<td class="paramname"><em>out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get index-th outputs of the symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>The symbol </td></tr>
<tr><td class="paramname">index</td><td>the Index of the output. </td></tr>
<tr><td class="paramname">out</td><td>The output symbol whose outputs are the index-th symbol. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a335b789d27a16abe01b17435902a5a1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a335b789d27a16abe01b17435902a5a1b">&#9670;&nbsp;</a></span>NNSymbolListAttrs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolListAttrs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>recursive_option</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *&#160;</td>
<td class="paramname"><em>out_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ***&#160;</td>
<td class="paramname"><em>out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get all attributes from symbol, including all descendents. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>the source symbol </td></tr>
<tr><td class="paramname">recursive_option</td><td>0 for recursive, 1 for shallow. </td></tr>
<tr><td class="paramname">out_size</td><td>The number of output attributes </td></tr>
<tr><td class="paramname">out</td><td>2*out_size strings representing key value pairs. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a41134d2fbb83648b571235bdbd2fb0fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a41134d2fbb83648b571235bdbd2fb0fb">&#9670;&nbsp;</a></span>NNSymbolListInputNames()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolListInputNames </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>option</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *&#160;</td>
<td class="paramname"><em>out_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ***&#160;</td>
<td class="paramname"><em>out_str_array</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>List input names in the symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>the symbol </td></tr>
<tr><td class="paramname">option</td><td>The option to list the inputs option=0 means list all arguments. option=1 means list arguments that are readed only by the graph. option=2 means list arguments that are mutated by the graph. </td></tr>
<tr><td class="paramname">out_size</td><td>output size </td></tr>
<tr><td class="paramname">out_str_array</td><td>pointer to hold the output string array </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a2186dcb8ec09a86ddf5642cc0f71bd85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2186dcb8ec09a86ddf5642cc0f71bd85">&#9670;&nbsp;</a></span>NNSymbolListInputVariables()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolListInputVariables </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>option</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *&#160;</td>
<td class="paramname"><em>out_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a> **&#160;</td>
<td class="paramname"><em>out_sym_array</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>List inputs variables in the symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>the symbol </td></tr>
<tr><td class="paramname">option</td><td>The option to list the inputs option=0 means list all arguments. option=1 means list arguments that are readed only by the graph. option=2 means list arguments that are mutated by the graph. </td></tr>
<tr><td class="paramname">out_size</td><td>output size </td></tr>
<tr><td class="paramname">out_sym_array</td><td>the output array. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a28f7059903fa303d31a0f7a6145f222f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28f7059903fa303d31a0f7a6145f222f">&#9670;&nbsp;</a></span>NNSymbolListOutputNames()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolListOutputNames </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a> *&#160;</td>
<td class="paramname"><em>out_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ***&#160;</td>
<td class="paramname"><em>out_str_array</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>List returns names in the symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>the symbol </td></tr>
<tr><td class="paramname">out_size</td><td>output size </td></tr>
<tr><td class="paramname">out_str_array</td><td>pointer to hold the output string array </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a2a81775bd9cead7fada5b19c11dbcf0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a81775bd9cead7fada5b19c11dbcf0c">&#9670;&nbsp;</a></span>NNSymbolPrint()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolPrint </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>out_str</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Print the content of symbol, used for debug. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>the symbol </td></tr>
<tr><td class="paramname">out_str</td><td>pointer to hold the output string of the printing. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
<a id="a6b664ff2f188337b86e5d8d1ba1471a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b664ff2f188337b86e5d8d1ba1471a5">&#9670;&nbsp;</a></span>NNSymbolSetAttrs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a528178e3caf0ffc542b9f12a50c1c7b0">NNVM_DLL</a> int NNSymbolSetAttrs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="include_2mxnet_2c__api_8h.html#a301e9a7722b326126defdd39ccd99b37">SymbolHandle</a>&#160;</td>
<td class="paramname"><em>symbol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="3rdparty_2tvm_2nnvm_2include_2nnvm_2c__api_8h.html#a830ae32828b06eab796e2f76852591ab">nn_uint</a>&#160;</td>
<td class="paramname"><em>num_param</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>keys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>values</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set string attribute from symbol. NOTE: Setting attribute to a symbol can affect the semantics(mutable/immutable) of symbolic graph. </p>
<p>Safe recommendaton: use immutable graph</p><ul>
<li>Only allow set attributes during creation of new symbol as optional parameter</li>
</ul>
<p>Mutable graph (be careful about the semantics):</p><ul>
<li>Allow set attr at any point.</li>
<li>Mutating an attribute of some common node of two graphs can cause confusion from user.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">symbol</td><td>the source symbol </td></tr>
<tr><td class="paramname">num_param</td><td>Number of parameters to set. </td></tr>
<tr><td class="paramname">keys</td><td>The keys of the attribute </td></tr>
<tr><td class="paramname">values</td><td>The value to be set </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when success, -1 when failure happens </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 5 2023 00:58:43 for mxnet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>