blob: 1fb488afbadfb677b919508c8d55fc73e040d495 [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Train AlexNet over ImageNet &mdash; incubator-singa 1.1.0 documentation</title>
<link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
<link rel="top" title="incubator-singa 1.1.0 documentation" href="../../../index.html"/>
<link href="../../../_static/style.css" rel="stylesheet" type="text/css">
<script src="../../../_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="../../../index.html" class="icon icon-home"> incubator-singa
<img src="../../../_static/singa.png" class="logo" />
</a>
<div class="version">
1.1
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../downloads.html">Download SINGA</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../index.html">Documentation</a></li>
</ul>
<p class="caption"><span class="caption-text">Development</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../develop/schedule.html">Development Schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../develop/how-contribute.html">How to Contribute to SINGA</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../develop/contribute-code.html">How to Contribute Code</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../develop/contribute-docs.html">How to Contribute to Documentation</a></li>
</ul>
<p class="caption"><span class="caption-text">Community</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../community/source-repository.html">Source Repository</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../community/mail-lists.html">Project Mailing Lists</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../community/issue-tracking.html">Issue Tracking</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../community/team-list.html">The SINGA Team</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">incubator-singa</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html">Docs</a> &raquo;</li>
<li>Train AlexNet over ImageNet</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="train-alexnet-over-imagenet">
<span id="train-alexnet-over-imagenet"></span><h1>Train AlexNet over ImageNet<a class="headerlink" href="#train-alexnet-over-imagenet" title="Permalink to this headline"></a></h1>
<p>Convolution neural network (CNN) is a type of feed-forward neural
network widely used for image and video classification. In this example, we will
use a <a class="reference external" href="http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks">deep CNN model</a>
to do image classification against the ImageNet dataset.</p>
<div class="section" id="instructions">
<span id="instructions"></span><h2>Instructions<a class="headerlink" href="#instructions" title="Permalink to this headline"></a></h2>
<div class="section" id="compile-singa">
<span id="compile-singa"></span><h3>Compile SINGA<a class="headerlink" href="#compile-singa" title="Permalink to this headline"></a></h3>
<p>Please compile SINGA with CUDA, CUDNN and OpenCV. You can manually turn on the
options in CMakeLists.txt or run <code class="docutils literal"><span class="pre">ccmake</span> <span class="pre">..</span></code> in build/ folder.</p>
<p>We have tested CUDNN V4 and V5 (V5 requires CUDA 7.5)</p>
</div>
<div class="section" id="data-download">
<span id="data-download"></span><h3>Data download<a class="headerlink" href="#data-download" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li>Please refer to step1-3 on <a class="reference external" href="https://github.com/amd/OpenCL-caffe/wiki/Instructions-to-create-ImageNet-2012-data">Instructions to create ImageNet 2012 data</a>
to download and decompress the data.</li>
<li>You can download the training and validation list by
<a class="reference external" href="https://github.com/BVLC/caffe/blob/master/data/ilsvrc12/get_ilsvrc_aux.sh">get_ilsvrc_aux.sh</a>
or from <a class="reference external" href="http://www.image-net.org/download-images">Imagenet</a>.</li>
</ul>
</div>
<div class="section" id="data-preprocessing">
<span id="data-preprocessing"></span><h3>Data preprocessing<a class="headerlink" href="#data-preprocessing" title="Permalink to this headline"></a></h3>
<ul>
<li><p class="first">Assuming you have downloaded the data and the list.
Now we should transform the data into binary files. You can run:</p>
<div class="highlight-python"><div class="highlight"><pre> sh create_data.sh
</pre></div>
</div>
<p>The script will generate a test file(<code class="docutils literal"><span class="pre">test.bin</span></code>), a mean file(<code class="docutils literal"><span class="pre">mean.bin</span></code>) and
several training files(<code class="docutils literal"><span class="pre">trainX.bin</span></code>) in the specified output folder.</p>
</li>
<li><p class="first">You can also change the parameters in <code class="docutils literal"><span class="pre">create_data.sh</span></code>.</p>
<ul class="simple">
<li><code class="docutils literal"><span class="pre">-trainlist</span> <span class="pre">&lt;file&gt;</span></code>: the file of training list;</li>
<li><code class="docutils literal"><span class="pre">-trainfolder</span> <span class="pre">&lt;folder&gt;</span></code>: the folder of training images;</li>
<li><code class="docutils literal"><span class="pre">-testlist</span> <span class="pre">&lt;file&gt;</span></code>: the file of test list;</li>
<li><code class="docutils literal"><span class="pre">-testfolder</span> <span class="pre">&lt;floder&gt;</span></code>: the folder of test images;</li>
<li><code class="docutils literal"><span class="pre">-outdata</span> <span class="pre">&lt;folder&gt;</span></code>: the folder to save output files, including mean, training and test files.
The script will generate these files in the specified folder;</li>
<li><code class="docutils literal"><span class="pre">-filesize</span> <span class="pre">&lt;int&gt;</span></code>: number of training images that stores in each binary file.</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="training">
<span id="training"></span><h3>Training<a class="headerlink" href="#training" title="Permalink to this headline"></a></h3>
<ul>
<li><p class="first">After preparing data, you can run the following command to train the Alexnet model.</p>
<div class="highlight-python"><div class="highlight"><pre> sh run.sh
</pre></div>
</div>
</li>
<li><p class="first">You may change the parameters in <code class="docutils literal"><span class="pre">run.sh</span></code>.</p>
<ul class="simple">
<li><code class="docutils literal"><span class="pre">-epoch</span> <span class="pre">&lt;int&gt;</span></code>: number of epoch to be trained, default is 90;</li>
<li><code class="docutils literal"><span class="pre">-lr</span> <span class="pre">&lt;float&gt;</span></code>: base learning rate, the learning rate will decrease each 20 epochs,
more specifically, <code class="docutils literal"><span class="pre">lr</span> <span class="pre">=</span> <span class="pre">lr</span> <span class="pre">*</span> <span class="pre">exp(0.1</span> <span class="pre">*</span> <span class="pre">(epoch</span> <span class="pre">/</span> <span class="pre">20))</span></code>;</li>
<li><code class="docutils literal"><span class="pre">-batchsize</span> <span class="pre">&lt;int&gt;</span></code>: batchsize, it should be changed regarding to your memory;</li>
<li><code class="docutils literal"><span class="pre">-filesize</span> <span class="pre">&lt;int&gt;</span></code>: number of training images that stores in each binary file, it is the
same as the <code class="docutils literal"><span class="pre">filesize</span></code> in data preprocessing;</li>
<li><code class="docutils literal"><span class="pre">-ntrain</span> <span class="pre">&lt;int&gt;</span></code>: number of training images;</li>
<li><code class="docutils literal"><span class="pre">-ntest</span> <span class="pre">&lt;int&gt;</span></code>: number of test images;</li>
<li><code class="docutils literal"><span class="pre">-data</span> <span class="pre">&lt;folder&gt;</span></code>: the folder which stores the binary files, it is exactly the output
folder in data preprocessing step;</li>
<li><code class="docutils literal"><span class="pre">-pfreq</span> <span class="pre">&lt;int&gt;</span></code>: the frequency(in batch) of printing current model status(loss and accuracy);</li>
<li><code class="docutils literal"><span class="pre">-nthreads</span> <span class="pre">&lt;int&gt;</span></code>: the number of threads to load data which feed to the model.</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2017 The Apache Software Foundation. All rights reserved. Apache Singa, Apache, the Apache feather logo, and the Apache Singa project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners..
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../../../',
VERSION:'1.1.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../../../_static/jquery.js"></script>
<script type="text/javascript" src="../../../_static/underscore.js"></script>
<script type="text/javascript" src="../../../_static/doctools.js"></script>
<script type="text/javascript" src="../../../_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
<div class="rst-versions shift-up" data-toggle="rst-versions" role="note" aria-label="versions">
<a href="http://incubator.apache.org/">
<img src= "../../../_static/apache.jpg">
</a>
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> incubator-singa </span>
v: 1.1
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Languages</dt>
<dd><a href="../../../../en/index.html">English</a></dd>
<dd><a href="../../../../zh/index.html">中文</a></dd>
</dl>
<dl>
<dt>Versions</dt>
<dd><a href="http://singa.apache.org/v0.3.0/">0.3</a></dd>
</dl>
</div>
</div>
<a href="https://github.com/apache/incubator-singa">
<img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"
alt="Fork me on GitHub">
</a>
</body>
</html>