<!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 content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.11" name="generator"/>
<title>mxnet: mxnet::op::Input0 Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script src="jquery.js" type="text/javascript"></script>
<script src="dynsections.js" type="text/javascript"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script src="search/searchdata.js" type="text/javascript"></script>
<script src="search/search.js" type="text/javascript"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</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 cellpadding="0" cellspacing="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.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div class="tabs" id="navrow1">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div class="MSearchBoxInactive" id="MSearchBox">
<span class="left">
<img alt="" id="MSearchSelect" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()" src="search/mag_sel.png"/>
<input accesskey="S" id="MSearchField" onblur="searchBox.OnSearchFieldFocus(false)" onfocus="searchBox.OnSearchFieldFocus(true)" onkeyup="searchBox.OnSearchFieldChange(event)" type="text" value="Search"/>
</span><span class="right">
<a href="javascript:searchBox.CloseResultsWindow()" id="MSearchClose"><img alt="" border="0" id="MSearchCloseImg" src="search/close.png"/></a>
</span>
</div>
</li>
</ul>
</div>
<div class="tabs2" id="navrow2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class List</span></a></li>
<li><a href="classes.html"><span>Class Index</span></a></li>
<li><a href="inherits.html"><span>Class Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
<ul>
<li class="navelem"><a class="el" href="namespacemxnet.html">mxnet</a></li><li class="navelem"><a class="el" href="namespacemxnet_1_1op.html">op</a></li><li class="navelem"><a class="el" href="structmxnet_1_1op_1_1Input0.html">Input0</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="structmxnet_1_1op_1_1Input0-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">mxnet::op::Input0 Struct Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>First input to the function.  
 <a href="structmxnet_1_1op_1_1Input0.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="operator__util_8h_source.html">operator_util.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mxnet::op::Input0:</div>
<div class="dyncontent">
<div class="center"><img alt="Inheritance graph" border="0" src="structmxnet_1_1op_1_1Input0__inherit__graph.png" usemap="#mxnet_1_1op_1_1Input0_inherit__map"/></div>
<map id="mxnet_1_1op_1_1Input0_inherit__map" name="mxnet_1_1op_1_1Input0_inherit__map">
<area alt="" coords="5,5,228,83" href="structmxnet_1_1op_1_1GradFunctionArgument.html" id="node2" shape="rect" title="super class of all gradient function argument "/>
</map>
</div>
<div class="dynheader">
Collaboration diagram for mxnet::op::Input0:</div>
<div class="dyncontent">
<div class="center"><img alt="Collaboration graph" border="0" src="structmxnet_1_1op_1_1Input0__coll__graph.png" usemap="#mxnet_1_1op_1_1Input0_coll__map"/></div>
<map id="mxnet_1_1op_1_1Input0_coll__map" name="mxnet_1_1op_1_1Input0_coll__map">
<area alt="" coords="5,321,228,399" href="structmxnet_1_1op_1_1GradFunctionArgument.html" id="node2" shape="rect" title="super class of all gradient function argument "/>
<area alt="" coords="43,5,190,259" href="classmxnet_1_1TBlob.html" id="node3" shape="rect" title="tensor blob class that can be used to hold tensor of any dimension, any device and any data type..."/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_attribs_structmxnet_1_1op_1_1GradFunctionArgument"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_structmxnet_1_1op_1_1GradFunctionArgument')"><img alt="-" src="closed.png"/> Public Attributes inherited from <a class="el" href="structmxnet_1_1op_1_1GradFunctionArgument.html">mxnet::op::GradFunctionArgument</a></td></tr>
<tr class="memitem:ab9214ef3cfcf53b375a2e8f716e66929 inherit pub_attribs_structmxnet_1_1op_1_1GradFunctionArgument"><td align="right" class="memItemLeft" valign="top"><a class="el" href="classmxnet_1_1TBlob.html">TBlob</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1op_1_1GradFunctionArgument.html#ab9214ef3cfcf53b375a2e8f716e66929">data</a></td></tr>
<tr class="memdesc:ab9214ef3cfcf53b375a2e8f716e66929 inherit pub_attribs_structmxnet_1_1op_1_1GradFunctionArgument"><td class="mdescLeft"> </td><td class="mdescRight">The real data.  <a href="#ab9214ef3cfcf53b375a2e8f716e66929">More...</a><br/></td></tr>
<tr class="separator:ab9214ef3cfcf53b375a2e8f716e66929 inherit pub_attribs_structmxnet_1_1op_1_1GradFunctionArgument"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>First input to the function. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>include/mxnet/<a class="el" href="operator__util_8h_source.html">operator_util.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Feb 28 2018 22:11:06 for mxnet by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="doxygen.png"/>
</a> 1.8.11
</small></address>
</body>
</html>
