blob: 3fcc76445f893863c5bbf6520aa769593d4e920f [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="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#ifndef MXNET_IO_H_</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#define MXNET_IO_H_</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;queue&gt;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</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="l00032"></a><span class="lineno"> 32</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="l00033"></a><span class="lineno"> 33</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="l00034"></a><span class="lineno"> 34</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="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemxnet.html">mxnet</a> {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> DType&gt;</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classmxnet_1_1IIterator.html"> 42</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="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</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="l00050"></a><span class="lineno"> 50</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="l00052"></a><span class="lineno"> 52</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="l00054"></a><span class="lineno"> 54</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="l00056"></a><span class="lineno"><a class="line" href="classmxnet_1_1IIterator.html#a6e9049dca03b889bba0d18338e286070"> 56</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="l00058"></a><span class="lineno"><a class="line" href="classmxnet_1_1IIterator.html#a65cd81ecf71d54a17a94ca65d27aa014"> 58</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="l00060"></a><span class="lineno"><a class="line" href="classmxnet_1_1IIterator.html#a79ed9023cf4e525c8b4a8c6fa96eea05"> 60</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="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="classmxnet_1_1IIterator.html#a65cd81ecf71d54a17a94ca65d27aa014">data_names</a>.push_back(data_name);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classmxnet_1_1IIterator.html#af037a6d4fc12399217961e71a4fd7723"> 67</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="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}; <span class="comment">// class IIterator</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataInst.html"> 73</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1DataInst.html">DataInst</a> {</div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataInst.html#a548411c4a3dc77475c5ae6bfa6ee3564"> 75</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="l00077"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataInst.html#a3511bbb64add286c9cd1b03c70d4b111"> 77</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="l00079"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataInst.html#a311b93ed629984fdcb29cb346d3062ee"> 79</a></span>&#160; std::string <a class="code" href="structmxnet_1_1DataInst.html#a311b93ed629984fdcb29cb346d3062ee">extra_data</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}; <span class="comment">// struct DataInst</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataBatch.html"> 85</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1DataBatch.html">DataBatch</a> {</div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataBatch.html#acc98dd6f48816ca7462352a929e48959"> 87</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="l00089"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataBatch.html#a26a2ca473161c2c2a914cbc7ae4eb74e"> 89</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="l00091"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataBatch.html#a2e9faeff00dd061f04a88c3ea5758aa2"> 91</a></span>&#160; std::string <a class="code" href="structmxnet_1_1DataBatch.html#a2e9faeff00dd061f04a88c3ea5758aa2">extra_data</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataBatch.html#aad93df826690100bb16689952fc83558"> 93</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="l00094"></a><span class="lineno"> 94</span>&#160;}; <span class="comment">// struct DataBatch</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="namespacemxnet.html#ae383aacc8acb3e7a68e3fb876b953564"> 97</a></span>&#160;<span class="keyword">typedef</span> std::function&lt;IIterator&lt;DataBatch&gt;*()&gt; <a class="code" href="namespacemxnet.html#ae383aacc8acb3e7a68e3fb876b953564">DataIteratorFactory</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structmxnet_1_1DataIteratorReg.html"> 101</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1DataIteratorReg.html">DataIteratorReg</a> : <span class="keyword">public</span> <a class="code" href="classdmlc_1_1FunctionRegEntryBase.html">dmlc::FunctionRegEntryBase</a>&lt;DataIteratorReg, DataIteratorFactory&gt; {};</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">// The following part are API Registration of Iterators</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="include_2mxnet_2io_8h.html#ad3d0e409cb072cac4a1eb93ee390077b"> 117</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define MXNET_REGISTER_IO_ITER(name) \</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"> DMLC_REGISTRY_REGISTER(::mxnet::DataIteratorReg, DataIteratorReg, name)</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classmxnet_1_1Dataset.html"> 126</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmxnet_1_1Dataset.html">Dataset</a> {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</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="l00137"></a><span class="lineno"> 137</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="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// virtual destructor</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classmxnet_1_1Dataset.html#a095b35669c096d79f78fef0001928dc7"> 139</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="l00140"></a><span class="lineno"> 140</span>&#160;}; <span class="comment">// class Dataset</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword">typedef</span> std::function&lt;Dataset*(<span class="keyword">const</span> std::vector&lt;std::pair&lt;std::string, std::string&gt; &gt;&amp;)&gt;</div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="namespacemxnet.html#a03c0d6c6560258821a2f870d4e7e30b9"> 144</a></span>&#160; <a class="code" href="namespacemxnet.html#a03c0d6c6560258821a2f870d4e7e30b9">DatasetFactory</a>;</div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="structmxnet_1_1DatasetReg.html"> 148</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1DatasetReg.html">DatasetReg</a> : <span class="keyword">public</span> <a class="code" href="classdmlc_1_1FunctionRegEntryBase.html">dmlc::FunctionRegEntryBase</a>&lt;DatasetReg, DatasetFactory&gt; {};</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment">// The following part are API Registration of Datasets</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="include_2mxnet_2io_8h.html#a9f850e39cd969f9730635e3ef9a274bf"> 164</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define MXNET_REGISTER_IO_DATASET(name) \</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor"> DMLC_REGISTRY_REGISTER(::mxnet::DatasetReg, DatasetReg, name)</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classmxnet_1_1BatchifyFunction.html"> 167</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmxnet_1_1BatchifyFunction.html">BatchifyFunction</a> {</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classmxnet_1_1BatchifyFunction.html#a9e7bcf02bf771716f7088c9a96f3f9d0"> 170</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="l00172"></a><span class="lineno"> 172</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="l00173"></a><span class="lineno"> 173</span>&#160; std::vector&lt;NDArray&gt;* outputs) = 0;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}; <span class="comment">// class BatchifyFunction</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="namespacemxnet.html#aff1ea0c87600fc3edbe66909c6be498b"> 176</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="l00177"></a><span class="lineno"> 177</span>&#160; </div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keyword">typedef</span> std::function&lt;<a class="code" href="classmxnet_1_1BatchifyFunction.html">BatchifyFunction</a>*(<span class="keyword">const</span> std::vector&lt;std::pair&lt;std::string, std::string&gt; &gt;&amp;)&gt;</div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="namespacemxnet.html#a8ae46ad4378c3a9dc6f7dfd095885bdf"> 180</a></span>&#160; <a class="code" href="namespacemxnet.html#a8ae46ad4378c3a9dc6f7dfd095885bdf">BatchifyFunctionFactory</a>;</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structmxnet_1_1BatchifyFunctionReg.html"> 184</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1BatchifyFunctionReg.html">BatchifyFunctionReg</a></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; : <span class="keyword">public</span> <a class="code" href="classdmlc_1_1FunctionRegEntryBase.html">dmlc::FunctionRegEntryBase</a>&lt;BatchifyFunctionReg, BatchifyFunctionFactory&gt; {};</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">// The following part are API Registration of Batchify Function</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment">//--------------------------------------------------------------</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="include_2mxnet_2io_8h.html#afbf843dbcd7eaddddd8255fc6981d011"> 201</a></span>&#160;<span class="comment"></span><span class="preprocessor">#define MXNET_REGISTER_IO_BATCHIFY_FUNCTION(name) \</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"> DMLC_REGISTRY_REGISTER(::mxnet::BatchifyFunctionReg, BatchifyFunctionReg, name)</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;} <span class="comment">// namespace mxnet</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</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:91</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:77</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:58</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="anamespacemxnet_html_a8ae46ad4378c3a9dc6f7dfd095885bdf"><div class="ttname"><a href="namespacemxnet.html#a8ae46ad4378c3a9dc6f7dfd095885bdf">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:180</div></div>
<div class="ttc" id="anamespacemxnet_html_a03c0d6c6560258821a2f870d4e7e30b9"><div class="ttname"><a href="namespacemxnet.html#a03c0d6c6560258821a2f870d4e7e30b9">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:144</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:167</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:126</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:139</div></div>
<div class="ttc" id="anamespacemxnet_html_ae383aacc8acb3e7a68e3fb876b953564"><div class="ttname"><a href="namespacemxnet.html#ae383aacc8acb3e7a68e3fb876b953564">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:97</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:73</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:184</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:148</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:170</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:87</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:79</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:101</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:42</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:89</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:67</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:56</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:75</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:93</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:85</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:60</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:176</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 Thu Jan 5 2023 03:47:39 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>