blob: 1ee9667318b24e9bd9c3b90c6cd2ca10fd443ae5 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mxnet: /work/mxnet/include/mxnet/io.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mxnet
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1143c7affb9ebd026cb6818dd282def7.html">mxnet</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">io.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="include_2mxnet_2io_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * or more contributor license agreements. See the NOTICE file</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * with the License. You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * KIND, either express or implied. See the License for the</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * under the License.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#ifndef MXNET_IO_H_</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#define MXNET_IO_H_</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;queue&gt;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="data_8h.html">dmlc/data.h</a>&quot;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="3rdparty_2dmlc-core_2include_2dmlc_2registry_8h.html">dmlc/registry.h</a>&quot;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="include_2mxnet_2base_8h.html">./base.h</a>&quot;</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="include_2mxnet_2ndarray_8h.html">./ndarray.h</a>&quot;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemxnet.html">mxnet</a> {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> DType&gt;</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classmxnet_1_1IIterator.html"> 43</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmxnet_1_1IIterator.html">IIterator</a> : <span class="keyword">public</span> <a class="code" href="classdmlc_1_1DataIter.html">dmlc::DataIter</a>&lt;DType&gt; {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmxnet_1_1IIterator.html#a774e490e5f3eee767fdc11b779bbd1fe">Init</a>(<span class="keyword">const</span> std::vector&lt;std::pair&lt;std::string, std::string&gt; &gt;&amp; kwargs) = 0;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmxnet_1_1IIterator.html#a37fc8b163cd0158686183cc0f319529a">BeforeFirst</a>(<span class="keywordtype">void</span>) = 0;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmxnet_1_1IIterator.html#ac02dda5d191a7bc629aaa93e5abab3d5">Next</a>(<span class="keywordtype">void</span>) = 0;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> DType &amp;<a class="code" href="classmxnet_1_1IIterator.html#aef2e0b74766cd0283849300c8a081929">Value</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classmxnet_1_1IIterator.html#a6e9049dca03b889bba0d18338e286070"> 57</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classmxnet_1_1IIterator.html#a6e9049dca03b889bba0d18338e286070">~IIterator</a>(<span class="keywordtype">void</span>) {}</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classmxnet_1_1IIterator.html#a65cd81ecf71d54a17a94ca65d27aa014"> 59</a></span>&#160; std::vector&lt;std::string&gt; <a class="code" href="classmxnet_1_1IIterator.html#a65cd81ecf71d54a17a94ca65d27aa014">data_names</a>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classmxnet_1_1IIterator.html#a79ed9023cf4e525c8b4a8c6fa96eea05"> 61</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classmxnet_1_1IIterator.html#a79ed9023cf4e525c8b4a8c6fa96eea05">SetDataName</a>(<span class="keyword">const</span> std::string data_name) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classmxnet_1_1IIterator.html#a65cd81ecf71d54a17a94ca65d27aa014">data_names</a>.push_back(data_name);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classmxnet_1_1IIterator.html#af037a6d4fc12399217961e71a4fd7723"> 68</a></span>&#160; <span class="keyword">virtual</span> int64_t <a class="code" href="classmxnet_1_1IIterator.html#af037a6d4fc12399217961e71a4fd7723">GetLenHint</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}; <span class="comment">// class IIterator</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataInst.html"> 74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1DataInst.html">DataInst</a> {</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataInst.html#a548411c4a3dc77475c5ae6bfa6ee3564"> 76</a></span>&#160; <span class="keywordtype">unsigned</span> <a class="code" href="structmxnet_1_1DataInst.html#a548411c4a3dc77475c5ae6bfa6ee3564">index</a>;</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataInst.html#a3511bbb64add286c9cd1b03c70d4b111"> 78</a></span>&#160; std::vector&lt;TBlob&gt; <a class="code" href="structmxnet_1_1DataInst.html#a3511bbb64add286c9cd1b03c70d4b111">data</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataInst.html#a311b93ed629984fdcb29cb346d3062ee"> 80</a></span>&#160; std::string <a class="code" href="structmxnet_1_1DataInst.html#a311b93ed629984fdcb29cb346d3062ee">extra_data</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}; <span class="comment">// struct DataInst</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataBatch.html"> 86</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1DataBatch.html">DataBatch</a> {</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataBatch.html#acc98dd6f48816ca7462352a929e48959"> 88</a></span>&#160; std::vector&lt;NDArray&gt; <a class="code" href="structmxnet_1_1DataBatch.html#acc98dd6f48816ca7462352a929e48959">data</a>;</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataBatch.html#a26a2ca473161c2c2a914cbc7ae4eb74e"> 90</a></span>&#160; std::vector&lt;uint64_t&gt; <a class="code" href="structmxnet_1_1DataBatch.html#a26a2ca473161c2c2a914cbc7ae4eb74e">index</a>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataBatch.html#a2e9faeff00dd061f04a88c3ea5758aa2"> 92</a></span>&#160; std::string <a class="code" href="structmxnet_1_1DataBatch.html#a2e9faeff00dd061f04a88c3ea5758aa2">extra_data</a>;</div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataBatch.html#aad93df826690100bb16689952fc83558"> 94</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmxnet_1_1DataBatch.html#aad93df826690100bb16689952fc83558">num_batch_padd</a>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}; <span class="comment">// struct DataBatch</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="namespacemxnet.html#a6dca73c81706d54b0ddb0ef967d1e132"> 98</a></span>&#160;<span class="keyword">typedef</span> std::function&lt;IIterator&lt;DataBatch&gt; *()&gt; <a class="code" href="namespacemxnet.html#a6dca73c81706d54b0ddb0ef967d1e132">DataIteratorFactory</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataIteratorReg.html"> 102</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1DataIteratorReg.html">DataIteratorReg</a></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; : <span class="keyword">public</span> <a class="code" href="classdmlc_1_1FunctionRegEntryBase.html">dmlc::FunctionRegEntryBase</a>&lt;DataIteratorReg,</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; DataIteratorFactory&gt; {</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;};</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">// The following part are API Registration of Iterators</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="include_2mxnet_2io_8h.html#ad3d0e409cb072cac4a1eb93ee390077b"> 121</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define MXNET_REGISTER_IO_ITER(name) \</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"> DMLC_REGISTRY_REGISTER(::mxnet::DataIteratorReg, DataIteratorReg, name)</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classmxnet_1_1Dataset.html"> 130</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmxnet_1_1Dataset.html">Dataset</a> {</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> uint64_t <a class="code" href="classmxnet_1_1Dataset.html#a8550593570031a697f75511a5cb36004">GetLen</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmxnet_1_1Dataset.html#a3c339ebde8d952c374b85685f1eebc77">GetItem</a>(uint64_t idx, std::vector&lt;NDArray&gt;* ret) = 0;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// virtual destructor</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classmxnet_1_1Dataset.html#a095b35669c096d79f78fef0001928dc7"> 143</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classmxnet_1_1Dataset.html#a095b35669c096d79f78fef0001928dc7">~Dataset</a>(<span class="keywordtype">void</span>) {}</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}; <span class="comment">// class Dataset</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword">typedef</span> std::function&lt;Dataset *(</div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="namespacemxnet.html#a34e0e9d038576847ddf7ea8022c2d120"> 148</a></span>&#160; <span class="keyword">const</span> std::vector&lt;std::pair&lt;std::string, std::string&gt; &gt;&amp;)&gt; <a class="code" href="namespacemxnet.html#a34e0e9d038576847ddf7ea8022c2d120">DatasetFactory</a>;</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="structmxnet_1_1DatasetReg.html"> 152</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1DatasetReg.html">DatasetReg</a></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; : <span class="keyword">public</span> <a class="code" href="classdmlc_1_1FunctionRegEntryBase.html">dmlc::FunctionRegEntryBase</a>&lt;DatasetReg,</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; DatasetFactory&gt; {</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;};</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment">// The following part are API Registration of Datasets</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="include_2mxnet_2io_8h.html#a9f850e39cd969f9730635e3ef9a274bf"> 171</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define MXNET_REGISTER_IO_DATASET(name) \</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> DMLC_REGISTRY_REGISTER(::mxnet::DatasetReg, DatasetReg, name)</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classmxnet_1_1BatchifyFunction.html"> 174</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmxnet_1_1BatchifyFunction.html">BatchifyFunction</a> {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classmxnet_1_1BatchifyFunction.html#a9e7bcf02bf771716f7088c9a96f3f9d0"> 177</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classmxnet_1_1BatchifyFunction.html#a9e7bcf02bf771716f7088c9a96f3f9d0">~BatchifyFunction</a>(<span class="keywordtype">void</span>) {}</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmxnet_1_1BatchifyFunction.html#a7f597b6307346ae7fa2cefdef24b1c66">Batchify</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;NDArray&gt; &gt;&amp; inputs,</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; std::vector&lt;NDArray&gt;* outputs) = 0;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}; <span class="comment">// class BatchifyFunction</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="namespacemxnet.html#aff1ea0c87600fc3edbe66909c6be498b"> 183</a></span>&#160;<span class="keyword">using</span> <a class="code" href="namespacemxnet.html#aff1ea0c87600fc3edbe66909c6be498b">BatchifyFunctionPtr</a> = std::shared_ptr&lt;BatchifyFunction&gt;;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">typedef</span> std::function&lt;<a class="code" href="classmxnet_1_1BatchifyFunction.html">BatchifyFunction</a> *(</div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="namespacemxnet.html#a19e42fdb34a0c54b343e85668cb7acd2"> 187</a></span>&#160; <span class="keyword">const</span> std::vector&lt;std::pair&lt;std::string, std::string&gt; &gt;&amp;)&gt; <a class="code" href="namespacemxnet.html#a19e42fdb34a0c54b343e85668cb7acd2">BatchifyFunctionFactory</a>;</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="structmxnet_1_1BatchifyFunctionReg.html"> 191</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1BatchifyFunctionReg.html">BatchifyFunctionReg</a></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; : <span class="keyword">public</span> <a class="code" href="classdmlc_1_1FunctionRegEntryBase.html">dmlc::FunctionRegEntryBase</a>&lt;BatchifyFunctionReg,</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; BatchifyFunctionFactory&gt; {</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;};</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment">// The following part are API Registration of Batchify Function</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="include_2mxnet_2io_8h.html#afbf843dbcd7eaddddd8255fc6981d011"> 210</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define MXNET_REGISTER_IO_BATCHIFY_FUNCTION(name) \</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor"> DMLC_REGISTRY_REGISTER(::mxnet::BatchifyFunctionReg, BatchifyFunctionReg, name)</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;} <span class="comment">// namespace mxnet</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#endif // MXNET_IO_H_</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="anamespacemxnet_html"><div class="ttname"><a href="namespacemxnet.html">mxnet</a></div><div class="ttdoc">namespace of mxnet</div><div class="ttdef"><b>Definition:</b> api_registry.h:33</div></div>
<div class="ttc" id="astructmxnet_1_1DataBatch_html_a2e9faeff00dd061f04a88c3ea5758aa2"><div class="ttname"><a href="structmxnet_1_1DataBatch.html#a2e9faeff00dd061f04a88c3ea5758aa2">mxnet::DataBatch::extra_data</a></div><div class="ttdeci">std::string extra_data</div><div class="ttdoc">extra data to be fed to the network</div><div class="ttdef"><b>Definition:</b> io.h:92</div></div>
<div class="ttc" id="astructmxnet_1_1DataInst_html_a3511bbb64add286c9cd1b03c70d4b111"><div class="ttname"><a href="structmxnet_1_1DataInst.html#a3511bbb64add286c9cd1b03c70d4b111">mxnet::DataInst::data</a></div><div class="ttdeci">std::vector&lt; TBlob &gt; data</div><div class="ttdoc">content of data</div><div class="ttdef"><b>Definition:</b> io.h:78</div></div>
<div class="ttc" id="anamespacemxnet_html_a6dca73c81706d54b0ddb0ef967d1e132"><div class="ttname"><a href="namespacemxnet.html#a6dca73c81706d54b0ddb0ef967d1e132">mxnet::DataIteratorFactory</a></div><div class="ttdeci">std::function&lt; IIterator&lt; DataBatch &gt; *()&gt; DataIteratorFactory</div><div class="ttdoc">typedef the factory function of data iterator</div><div class="ttdef"><b>Definition:</b> io.h:98</div></div>
<div class="ttc" id="aclassmxnet_1_1IIterator_html_a65cd81ecf71d54a17a94ca65d27aa014"><div class="ttname"><a href="classmxnet_1_1IIterator.html#a65cd81ecf71d54a17a94ca65d27aa014">mxnet::IIterator::data_names</a></div><div class="ttdeci">std::vector&lt; std::string &gt; data_names</div><div class="ttdoc">store the name of each data, it could be used for making NDArrays</div><div class="ttdef"><b>Definition:</b> io.h:59</div></div>
<div class="ttc" id="aclassdmlc_1_1FunctionRegEntryBase_html"><div class="ttname"><a href="classdmlc_1_1FunctionRegEntryBase.html">dmlc::FunctionRegEntryBase</a></div><div class="ttdoc">Common base class for function registry.</div><div class="ttdef"><b>Definition:</b> registry.h:151</div></div>
<div class="ttc" id="aclassmxnet_1_1BatchifyFunction_html"><div class="ttname"><a href="classmxnet_1_1BatchifyFunction.html">mxnet::BatchifyFunction</a></div><div class="ttdef"><b>Definition:</b> io.h:174</div></div>
<div class="ttc" id="aclassmxnet_1_1Dataset_html"><div class="ttname"><a href="classmxnet_1_1Dataset.html">mxnet::Dataset</a></div><div class="ttdoc">A random accessable dataset which provides GetLen() and GetItem(). Unlike DataIter,...</div><div class="ttdef"><b>Definition:</b> io.h:130</div></div>
<div class="ttc" id="aclassmxnet_1_1Dataset_html_a095b35669c096d79f78fef0001928dc7"><div class="ttname"><a href="classmxnet_1_1Dataset.html#a095b35669c096d79f78fef0001928dc7">mxnet::Dataset::~Dataset</a></div><div class="ttdeci">virtual ~Dataset(void)</div><div class="ttdef"><b>Definition:</b> io.h:143</div></div>
<div class="ttc" id="astructmxnet_1_1DataInst_html"><div class="ttname"><a href="structmxnet_1_1DataInst.html">mxnet::DataInst</a></div><div class="ttdoc">a single data instance</div><div class="ttdef"><b>Definition:</b> io.h:74</div></div>
<div class="ttc" id="aclassmxnet_1_1Dataset_html_a8550593570031a697f75511a5cb36004"><div class="ttname"><a href="classmxnet_1_1Dataset.html#a8550593570031a697f75511a5cb36004">mxnet::Dataset::GetLen</a></div><div class="ttdeci">virtual uint64_t GetLen(void) const =0</div><div class="ttdoc">Get the size of the dataset.</div></div>
<div class="ttc" id="astructmxnet_1_1BatchifyFunctionReg_html"><div class="ttname"><a href="structmxnet_1_1BatchifyFunctionReg.html">mxnet::BatchifyFunctionReg</a></div><div class="ttdoc">Registry entry for DataSampler factory functions.</div><div class="ttdef"><b>Definition:</b> io.h:191</div></div>
<div class="ttc" id="astructmxnet_1_1DatasetReg_html"><div class="ttname"><a href="structmxnet_1_1DatasetReg.html">mxnet::DatasetReg</a></div><div class="ttdoc">Registry entry for Dataset factory functions.</div><div class="ttdef"><b>Definition:</b> io.h:152</div></div>
<div class="ttc" id="aclassmxnet_1_1BatchifyFunction_html_a9e7bcf02bf771716f7088c9a96f3f9d0"><div class="ttname"><a href="classmxnet_1_1BatchifyFunction.html#a9e7bcf02bf771716f7088c9a96f3f9d0">mxnet::BatchifyFunction::~BatchifyFunction</a></div><div class="ttdeci">virtual ~BatchifyFunction(void)</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> io.h:177</div></div>
<div class="ttc" id="anamespacemxnet_html_a19e42fdb34a0c54b343e85668cb7acd2"><div class="ttname"><a href="namespacemxnet.html#a19e42fdb34a0c54b343e85668cb7acd2">mxnet::BatchifyFunctionFactory</a></div><div class="ttdeci">std::function&lt; BatchifyFunction *(const std::vector&lt; std::pair&lt; std::string, std::string &gt; &gt; &amp;)&gt; BatchifyFunctionFactory</div><div class="ttdoc">typedef the factory function of data sampler</div><div class="ttdef"><b>Definition:</b> io.h:187</div></div>
<div class="ttc" id="astructmxnet_1_1DataBatch_html_acc98dd6f48816ca7462352a929e48959"><div class="ttname"><a href="structmxnet_1_1DataBatch.html#acc98dd6f48816ca7462352a929e48959">mxnet::DataBatch::data</a></div><div class="ttdeci">std::vector&lt; NDArray &gt; data</div><div class="ttdoc">content of dense data, if this DataBatch is dense</div><div class="ttdef"><b>Definition:</b> io.h:88</div></div>
<div class="ttc" id="astructmxnet_1_1DataInst_html_a311b93ed629984fdcb29cb346d3062ee"><div class="ttname"><a href="structmxnet_1_1DataInst.html#a311b93ed629984fdcb29cb346d3062ee">mxnet::DataInst::extra_data</a></div><div class="ttdeci">std::string extra_data</div><div class="ttdoc">extra data to be fed to the network</div><div class="ttdef"><b>Definition:</b> io.h:80</div></div>
<div class="ttc" id="aclassmxnet_1_1IIterator_html_a37fc8b163cd0158686183cc0f319529a"><div class="ttname"><a href="classmxnet_1_1IIterator.html#a37fc8b163cd0158686183cc0f319529a">mxnet::IIterator::BeforeFirst</a></div><div class="ttdeci">virtual void BeforeFirst(void)=0</div><div class="ttdoc">reset the iterator</div></div>
<div class="ttc" id="astructmxnet_1_1DataIteratorReg_html"><div class="ttname"><a href="structmxnet_1_1DataIteratorReg.html">mxnet::DataIteratorReg</a></div><div class="ttdoc">Registry entry for DataIterator factory functions.</div><div class="ttdef"><b>Definition:</b> io.h:102</div></div>
<div class="ttc" id="aclassmxnet_1_1IIterator_html"><div class="ttname"><a href="classmxnet_1_1IIterator.html">mxnet::IIterator</a></div><div class="ttdoc">iterator type</div><div class="ttdef"><b>Definition:</b> io.h:43</div></div>
<div class="ttc" id="astructmxnet_1_1DataBatch_html_a26a2ca473161c2c2a914cbc7ae4eb74e"><div class="ttname"><a href="structmxnet_1_1DataBatch.html#a26a2ca473161c2c2a914cbc7ae4eb74e">mxnet::DataBatch::index</a></div><div class="ttdeci">std::vector&lt; uint64_t &gt; index</div><div class="ttdoc">index of image data</div><div class="ttdef"><b>Definition:</b> io.h:90</div></div>
<div class="ttc" id="aclassdmlc_1_1DataIter_html"><div class="ttname"><a href="classdmlc_1_1DataIter.html">dmlc::DataIter</a></div><div class="ttdoc">data iterator interface this is not a C++ style iterator, but nice for data pulling:) This interface ...</div><div class="ttdef"><b>Definition:</b> data.h:56</div></div>
<div class="ttc" id="aclassmxnet_1_1BatchifyFunction_html_a7f597b6307346ae7fa2cefdef24b1c66"><div class="ttname"><a href="classmxnet_1_1BatchifyFunction.html#a7f597b6307346ae7fa2cefdef24b1c66">mxnet::BatchifyFunction::Batchify</a></div><div class="ttdeci">virtual bool Batchify(const std::vector&lt; std::vector&lt; NDArray &gt; &gt; &amp;inputs, std::vector&lt; NDArray &gt; *outputs)=0</div><div class="ttdoc">The batchify logic.</div></div>
<div class="ttc" id="aclassmxnet_1_1IIterator_html_af037a6d4fc12399217961e71a4fd7723"><div class="ttname"><a href="classmxnet_1_1IIterator.html#af037a6d4fc12399217961e71a4fd7723">mxnet::IIterator::GetLenHint</a></div><div class="ttdeci">virtual int64_t GetLenHint(void) const</div><div class="ttdoc">request iterator length hint for current epoch. Note that the returned value can be &lt; 0,...</div><div class="ttdef"><b>Definition:</b> io.h:68</div></div>
<div class="ttc" id="aclassmxnet_1_1IIterator_html_a6e9049dca03b889bba0d18338e286070"><div class="ttname"><a href="classmxnet_1_1IIterator.html#a6e9049dca03b889bba0d18338e286070">mxnet::IIterator::~IIterator</a></div><div class="ttdeci">virtual ~IIterator(void)</div><div class="ttdoc">constructor</div><div class="ttdef"><b>Definition:</b> io.h:57</div></div>
<div class="ttc" id="astructmxnet_1_1DataInst_html_a548411c4a3dc77475c5ae6bfa6ee3564"><div class="ttname"><a href="structmxnet_1_1DataInst.html#a548411c4a3dc77475c5ae6bfa6ee3564">mxnet::DataInst::index</a></div><div class="ttdeci">unsigned index</div><div class="ttdoc">unique id for instance</div><div class="ttdef"><b>Definition:</b> io.h:76</div></div>
<div class="ttc" id="astructmxnet_1_1DataBatch_html_aad93df826690100bb16689952fc83558"><div class="ttname"><a href="structmxnet_1_1DataBatch.html#aad93df826690100bb16689952fc83558">mxnet::DataBatch::num_batch_padd</a></div><div class="ttdeci">int num_batch_padd</div><div class="ttdoc">num of example padded to batch</div><div class="ttdef"><b>Definition:</b> io.h:94</div></div>
<div class="ttc" id="aclassmxnet_1_1IIterator_html_aef2e0b74766cd0283849300c8a081929"><div class="ttname"><a href="classmxnet_1_1IIterator.html#aef2e0b74766cd0283849300c8a081929">mxnet::IIterator::Value</a></div><div class="ttdeci">virtual const DType &amp; Value(void) const =0</div><div class="ttdoc">get current data</div></div>
<div class="ttc" id="adata_8h_html"><div class="ttname"><a href="data_8h.html">data.h</a></div><div class="ttdoc">defines common input data structure, and interface for handling the input data</div></div>
<div class="ttc" id="aclassmxnet_1_1IIterator_html_ac02dda5d191a7bc629aaa93e5abab3d5"><div class="ttname"><a href="classmxnet_1_1IIterator.html#ac02dda5d191a7bc629aaa93e5abab3d5">mxnet::IIterator::Next</a></div><div class="ttdeci">virtual bool Next(void)=0</div><div class="ttdoc">move to next item</div></div>
<div class="ttc" id="astructmxnet_1_1DataBatch_html"><div class="ttname"><a href="structmxnet_1_1DataBatch.html">mxnet::DataBatch</a></div><div class="ttdoc">DataBatch of NDArray, returned by Iterator.</div><div class="ttdef"><b>Definition:</b> io.h:86</div></div>
<div class="ttc" id="aclassmxnet_1_1IIterator_html_a79ed9023cf4e525c8b4a8c6fa96eea05"><div class="ttname"><a href="classmxnet_1_1IIterator.html#a79ed9023cf4e525c8b4a8c6fa96eea05">mxnet::IIterator::SetDataName</a></div><div class="ttdeci">void SetDataName(const std::string data_name)</div><div class="ttdoc">set data name to each attribute of data</div><div class="ttdef"><b>Definition:</b> io.h:61</div></div>
<div class="ttc" id="anamespacemxnet_html_a34e0e9d038576847ddf7ea8022c2d120"><div class="ttname"><a href="namespacemxnet.html#a34e0e9d038576847ddf7ea8022c2d120">mxnet::DatasetFactory</a></div><div class="ttdeci">std::function&lt; Dataset *(const std::vector&lt; std::pair&lt; std::string, std::string &gt; &gt; &amp;)&gt; DatasetFactory</div><div class="ttdoc">typedef the factory function of dataset</div><div class="ttdef"><b>Definition:</b> io.h:148</div></div>
<div class="ttc" id="a3rdparty_2dmlc-core_2include_2dmlc_2registry_8h_html"><div class="ttname"><a href="3rdparty_2dmlc-core_2include_2dmlc_2registry_8h.html">registry.h</a></div><div class="ttdoc">Registry utility that helps to build registry singletons.</div></div>
<div class="ttc" id="ainclude_2mxnet_2ndarray_8h_html"><div class="ttname"><a href="include_2mxnet_2ndarray_8h.html">ndarray.h</a></div><div class="ttdoc">NDArray interface that handles array arithematics.</div></div>
<div class="ttc" id="aclassmxnet_1_1Dataset_html_a3c339ebde8d952c374b85685f1eebc77"><div class="ttname"><a href="classmxnet_1_1Dataset.html#a3c339ebde8d952c374b85685f1eebc77">mxnet::Dataset::GetItem</a></div><div class="ttdeci">virtual bool GetItem(uint64_t idx, std::vector&lt; NDArray &gt; *ret)=0</div><div class="ttdoc">Get the ndarray items given index in dataset.</div></div>
<div class="ttc" id="aclassmxnet_1_1IIterator_html_a774e490e5f3eee767fdc11b779bbd1fe"><div class="ttname"><a href="classmxnet_1_1IIterator.html#a774e490e5f3eee767fdc11b779bbd1fe">mxnet::IIterator::Init</a></div><div class="ttdeci">virtual void Init(const std::vector&lt; std::pair&lt; std::string, std::string &gt; &gt; &amp;kwargs)=0</div><div class="ttdoc">set the parameters and init iter</div></div>
<div class="ttc" id="anamespacemxnet_html_aff1ea0c87600fc3edbe66909c6be498b"><div class="ttname"><a href="namespacemxnet.html#aff1ea0c87600fc3edbe66909c6be498b">mxnet::BatchifyFunctionPtr</a></div><div class="ttdeci">std::shared_ptr&lt; BatchifyFunction &gt; BatchifyFunctionPtr</div><div class="ttdef"><b>Definition:</b> io.h:183</div></div>
<div class="ttc" id="ainclude_2mxnet_2base_8h_html"><div class="ttname"><a href="include_2mxnet_2base_8h.html">base.h</a></div><div class="ttdoc">configuration of MXNet as well as basic data structure.</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Aug 1 2021 20:32:48 for mxnet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>