blob: b8456400655383ca2216b900994be1b5e60afe82 [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>Interactive Training using Python &mdash; incubator-singa 0.3.0 documentation</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="top" title="incubator-singa 0.3.0 documentation" href="../index.html"/>
<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">
0.3.0
</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 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>Interactive Training using Python</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="interactive-training-using-python">
<span id="interactive-training-using-python"></span><h1>Interactive Training using Python<a class="headerlink" href="#interactive-training-using-python" title="Permalink to this headline"></a></h1>
<hr class="docutils" />
<p><code class="docutils literal"><span class="pre">Layer</span></code> class (<a class="reference external" href="layer.py">layer.py</a>) has the following methods for an interactive training.
For the basic usage of Python binding features, please refer to <a class="reference external" href="python.md">python.md</a>.</p>
<p><strong>ComputeFeature(self, *srclys)</strong></p>
<ul class="simple">
<li>This method creates and sets up singa::Layer and maintains its source layers, then call singa::Layer::ComputeFeature(...) for data transformation.<ul>
<li><code class="docutils literal"><span class="pre">*srclys</span></code>: (an arbtrary number of) source layers</li>
</ul>
</li>
</ul>
<p><strong>ComputeGradient(self)</strong></p>
<ul class="simple">
<li>This method creates calls singa::Layer::ComputeGradient(...) for gradient computation.</li>
</ul>
<p><strong>GetParams(self)</strong></p>
<ul class="simple">
<li>This method calls singa::Layer::GetParam() to retrieve parameter values of the layer. Currently, it returns weight and bias. Each parameter is a 2D numpy array.</li>
</ul>
<p><strong>SetParams(self, *params)</strong></p>
<ul class="simple">
<li>This method sets parameter values of the layer.<ul>
<li><code class="docutils literal"><span class="pre">*params</span></code>: (an arbitrary number of) parameters, each of which is a 2D numpy array. Typically, it sets weight and bias, 2D numpy array.</li>
</ul>
</li>
</ul>
<hr class="docutils" />
<p><code class="docutils literal"><span class="pre">Dummy</span></code> class is a subclass of <code class="docutils literal"><span class="pre">Layer</span></code>, which is provided to fetch input data and/or label information.
Specifically, it creates singa::DummyLayer.</p>
<p><strong>Feed(self, shape, data, aux_data)</strong></p>
<ul class="simple">
<li>This method sets input data and/or auxiary data such as labels.<ul>
<li><code class="docutils literal"><span class="pre">shape</span></code>: the shape (width and height) of dataset</li>
<li><code class="docutils literal"><span class="pre">data</span></code>: input dataset</li>
<li><code class="docutils literal"><span class="pre">aux_data</span></code>: auxiary dataset (e.g., labels)</li>
</ul>
</li>
</ul>
<p>In addition, <code class="docutils literal"><span class="pre">Dummy</span></code> class has two subclasses named <code class="docutils literal"><span class="pre">ImageInput</span></code> and <code class="docutils literal"><span class="pre">LabelInput</span></code>.</p>
<ul>
<li><p class="first"><code class="docutils literal"><span class="pre">ImageInput</span></code> class will take three arguments as follows.</p>
<p><strong>__init__(self, height=None, width=None, nb_channel=1)</strong></p>
</li>
<li><p class="first">Both <code class="docutils literal"><span class="pre">ImageInput</span></code> and <code class="docutils literal"><span class="pre">LabelInput</span></code> classes have their own Feed method to call Feed of Dummy class.</p>
<p><strong>Feed(self, data)</strong></p>
</li>
</ul>
<!--<p>Users can save or load model parameter (e.g., weight and bias) at anytime during training.
The following methods are provided in <code class="docutils literal"><span class="pre">model.py</span></code>.</p>
<p><strong>save_model_parameter(step, fout, neuralnet)</strong></p>
<ul class="simple">
<li>This method saves model parameters into the specified checkpoint (fout).<ul>
<li><code class="docutils literal"><span class="pre">step</span></code>: the step id of training</li>
<li><code class="docutils literal"><span class="pre">fout</span></code>: the name of checkpoint (output filename)</li>
<li><code class="docutils literal"><span class="pre">neuralnet</span></code>: neural network model, i.e., a list of layers</li>
</ul>
</li>
</ul>
<p><strong>load_model_parameter(fin, neuralnet, batchsize=1, data_shape=None)</strong></p>
<ul class="simple">
<li>This method loads model parameters from the specified checkpoint (fin).<ul>
<li><code class="docutils literal"><span class="pre">fin</span></code>: the name of checkpoint (input filename)</li>
<li><code class="docutils literal"><span class="pre">neuralnet</span></code>: neural network model, i.e., a list of layers</li>
<li><code class="docutils literal"><span class="pre">batchsize</span></code>:</li>
<li><code class="docutils literal"><span class="pre">data_shape</span></code>:
&#8211;&gt;</li>
</ul>
</li>
</ul>
<hr class="docutils" />
<div class="section" id="example-scripts-for-the-interactive-training">
<span id="example-scripts-for-the-interactive-training"></span><h2>Example scripts for the interactive training<a class="headerlink" href="#example-scripts-for-the-interactive-training" title="Permalink to this headline">¶</a></h2>
<p>Two example scripts are provided at <a class="reference external" href="#"><code class="docutils literal"><span class="pre">train_mnist.py</span></code></a> and <a class="reference external" href="#"><code class="docutils literal"><span class="pre">train_cifar10.py</span></code></a>, one is training MLP model for MNIST dataset, and another is training CNN model for CIFAR10 dataset.</p>
<ul class="simple">
<li>Assume that <code class="docutils literal"><span class="pre">nn</span></code> is a neural network model, i.e., a list of layers. Currently, this examples considers sequential models. Example MLP and CNN are shown below.</li>
<li><code class="docutils literal"><span class="pre">load_dataset()</span></code> method loads input data and corresponding labels, each of which is a 2D numpy array.
For example, loading MNIST dataset returns x: [60000 x 784] and y: [60000 x 1]. Loading CIFAR10 dataset, x: [10000 x 3072] and y: [10000 x 1].</li>
<li><code class="docutils literal"><span class="pre">sgd</span></code> is an Updater instance. Please see <a class="reference external" href="python.md"><code class="docutils literal"><span class="pre">python.md</span></code></a> and <a class="reference external" href="#"><code class="docutils literal"><span class="pre">model.py</span></code></a> for more details.</li>
</ul>
<div class="section" id="basic-steps-for-the-interactive-training">
<span id="basic-steps-for-the-interactive-training"></span><h3>Basic steps for the interactive training<a class="headerlink" href="#basic-steps-for-the-interactive-training" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li>Step 1: Prepare batchsized data and corresponding label information, and then input the data using <code class="docutils literal"><span class="pre">Feed()</span></code> method.</li>
<li>Step 2: (a) Transform data according to neuralnet (nn) structure using <code class="docutils literal"><span class="pre">ComputeFeature()</span></code>. Note that this example considers a sequential model, so it uses a simple loop. (b) Users need to provide <code class="docutils literal"><span class="pre">label</span></code> information for loss layer to compute loss function. (c) Users can print out the training performance, e.g., loss and accuracy.</li>
<li>Step 3: Compute gradient in a reverse order of neuralnet (nn) structure using <code class="docutils literal"><span class="pre">ComputeGradient()</span></code>.</li>
<li>Step 4: Update parameters, e.g., weight and bias, of layers using <code class="docutils literal"><span class="pre">Update()</span></code> of the updater.</li>
</ul>
<p>Here is an example script for the interactive training.</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">bsize</span> <span class="o">=</span> <span class="mi">64</span> <span class="c1"># batchsize</span>
<span class="n">disp_freq</span> <span class="o">=</span> <span class="mi">10</span> <span class="c1"># step to show the training accuracy</span>
<span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">load_dataset</span><span class="p">()</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">/</span> <span class="n">bsize</span><span class="p">):</span>
<span class="c1"># (Step1) Input data containing &quot;bsize&quot; samples</span>
<span class="n">xb</span><span class="p">,</span> <span class="n">yb</span> <span class="o">=</span> <span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="o">*</span><span class="n">bsize</span><span class="p">:(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">bsize</span><span class="p">,</span> <span class="p">:],</span> <span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="o">*</span><span class="n">bsize</span><span class="p">:(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">bsize</span><span class="p">,</span> <span class="p">:]</span>
<span class="n">nn</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">Feed</span><span class="p">(</span><span class="n">xb</span><span class="p">)</span>
<span class="n">label</span><span class="o">.</span><span class="n">Feed</span><span class="p">(</span><span class="n">yb</span><span class="p">)</span>
<span class="c1"># (Step2-a) Transform data according to the neuralnet (nn) structure</span>
<span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">nn</span><span class="p">)):</span>
<span class="n">nn</span><span class="p">[</span><span class="n">h</span><span class="p">]</span><span class="o">.</span><span class="n">ComputeFeature</span><span class="p">(</span><span class="n">nn</span><span class="p">[</span><span class="n">h</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
<span class="c1"># (Step2-b) Provide label to compute loss function</span>
<span class="n">loss</span><span class="o">.</span><span class="n">ComputeFeature</span><span class="p">(</span><span class="n">nn</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">label</span><span class="p">)</span>
<span class="c1"># (Step2-c) Print out performance, e.g., loss and accuracy</span>
<span class="k">if</span> <span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="n">disp_freq</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="nb">print</span> <span class="s1">&#39; Step </span><span class="si">{:&gt;3}</span><span class="s1">: &#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span>
<span class="n">loss</span><span class="o">.</span><span class="n">display</span><span class="p">()</span>
<span class="c1"># (Step3) Compute gradient in a reverse order</span>
<span class="n">loss</span><span class="o">.</span><span class="n">ComputeGradient</span><span class="p">()</span>
<span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">nn</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">):</span>
<span class="n">nn</span><span class="p">[</span><span class="n">h</span><span class="p">]</span><span class="o">.</span><span class="n">ComputeGradient</span><span class="p">()</span>
<span class="c1"># (Step 4) Update parameter</span>
<span class="n">sgd</span><span class="o">.</span><span class="n">Update</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="n">nn</span><span class="p">[</span><span class="n">h</span><span class="p">])</span>
</pre></div>
</div>
<p><a id="model"></a></p>
</div>
<div class="section" id="a-href-model-example-mlp-a">
<span id="a-href-model-example-mlp-a"></span><h3><a href="#model">Example MLP</a><a class="headerlink" href="#a-href-model-example-mlp-a" title="Permalink to this headline">¶</a></h3>
<p>Here is an example MLP model with 5 fully-connected hidden layers.
Please refer to <a class="reference external" href="python.md"><code class="docutils literal"><span class="pre">python.md</span></code></a> and <a class="reference external" href="#"><code class="docutils literal"><span class="pre">layer.py</span></code></a> for more details about layer definition. <code class="docutils literal"><span class="pre">SGD()</span></code> is an updater defined in <a class="reference external" href="#"><code class="docutils literal"><span class="pre">model.py</span></code></a>.</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="nb">input</span> <span class="o">=</span> <span class="n">ImageInput</span><span class="p">(</span><span class="mi">28</span><span class="p">,</span> <span class="mi">28</span><span class="p">)</span> <span class="c1"># image width and height</span>
<span class="n">label</span> <span class="o">=</span> <span class="n">LabelInput</span><span class="p">()</span>
<span class="n">nn</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">input</span><span class="p">)</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Dense</span><span class="p">(</span><span class="mi">2500</span><span class="p">,</span> <span class="n">init</span><span class="o">=</span><span class="s1">&#39;uniform&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Activation</span><span class="p">(</span><span class="s1">&#39;stanh&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Dense</span><span class="p">(</span><span class="mi">2000</span><span class="p">,</span> <span class="n">init</span><span class="o">=</span><span class="s1">&#39;uniform&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Activation</span><span class="p">(</span><span class="s1">&#39;stanh&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Dense</span><span class="p">(</span><span class="mi">1500</span><span class="p">,</span> <span class="n">init</span><span class="o">=</span><span class="s1">&#39;uniform&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Activation</span><span class="p">(</span><span class="s1">&#39;stanh&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Dense</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span> <span class="n">init</span><span class="o">=</span><span class="s1">&#39;uniform&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Activation</span><span class="p">(</span><span class="s1">&#39;stanh&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Dense</span><span class="p">(</span><span class="mi">500</span><span class="p">,</span> <span class="n">init</span><span class="o">=</span><span class="s1">&#39;uniform&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Activation</span><span class="p">(</span><span class="s1">&#39;stanh&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Dense</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">init</span><span class="o">=</span><span class="s1">&#39;uniform&#39;</span><span class="p">))</span>
<span class="n">loss</span> <span class="o">=</span> <span class="n">Loss</span><span class="p">(</span><span class="s1">&#39;softmaxloss&#39;</span><span class="p">)</span>
<span class="n">sgd</span> <span class="o">=</span> <span class="n">SGD</span><span class="p">(</span><span class="n">lr</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span> <span class="n">lr_type</span><span class="o">=</span><span class="s1">&#39;step&#39;</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="section" id="a-href-model2-example-cnn-a">
<span id="a-href-model2-example-cnn-a"></span><h3><a href="#model2">Example CNN</a><a class="headerlink" href="#a-href-model2-example-cnn-a" title="Permalink to this headline">¶</a></h3>
<p>Here is an example MLP model with 3 convolution and pooling layers.
Please refer to <a class="reference external" href="#"><code class="docutils literal"><span class="pre">python.md</span></code></a> and <a class="reference external" href="#"><code class="docutils literal"><span class="pre">layer.py</span></code></a> for more details about layer definition. <code class="docutils literal"><span class="pre">SGD()</span></code> is an updater defined in <a class="reference external" href="#"><code class="docutils literal"><span class="pre">model.py</span></code></a>.</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="nb">input</span> <span class="o">=</span> <span class="n">ImageInput</span><span class="p">(</span><span class="mi">32</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="c1"># image width, height, channel</span>
<span class="n">label</span> <span class="o">=</span> <span class="n">LabelInput</span><span class="p">()</span>
<span class="n">nn</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">input</span><span class="p">)</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Convolution2D</span><span class="p">(</span><span class="mi">32</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">w_std</span><span class="o">=</span><span class="mf">0.0001</span><span class="p">,</span> <span class="n">b_lr</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">MaxPooling2D</span><span class="p">(</span><span class="n">pool_size</span><span class="o">=</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">),</span> <span class="n">stride</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Activation</span><span class="p">(</span><span class="s1">&#39;relu&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">LRN2D</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.00005</span><span class="p">,</span> <span class="n">beta</span><span class="o">=</span><span class="mf">0.75</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Convolution2D</span><span class="p">(</span><span class="mi">32</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">b_lr</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Activation</span><span class="p">(</span><span class="s1">&#39;relu&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">AvgPooling2D</span><span class="p">(</span><span class="n">pool_size</span><span class="o">=</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">),</span> <span class="n">stride</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">LRN2D</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.00005</span><span class="p">,</span> <span class="n">beta</span><span class="o">=</span><span class="mf">0.75</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Convolution2D</span><span class="p">(</span><span class="mi">64</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Activation</span><span class="p">(</span><span class="s1">&#39;relu&#39;</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">AvgPooling2D</span><span class="p">(</span><span class="n">pool_size</span><span class="o">=</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">),</span> <span class="n">stride</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
<span class="n">nn</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Dense</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">w_wd</span><span class="o">=</span><span class="mi">250</span><span class="p">,</span> <span class="n">b_lr</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">b_wd</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
<span class="n">loss</span> <span class="o">=</span> <span class="n">Loss</span><span class="p">(</span><span class="s1">&#39;softmaxloss&#39;</span><span class="p">)</span>
<span class="n">sgd</span> <span class="o">=</span> <span class="n">SGD</span><span class="p">(</span><span class="n">decay</span><span class="o">=</span><span class="mf">0.004</span><span class="p">,</span> <span class="n">momentum</span><span class="o">=</span><span class="mf">0.9</span><span class="p">,</span> <span class="n">lr_type</span><span class="o">=</span><span class="s1">&#39;manual&#39;</span><span class="p">,</span> <span class="n">step</span><span class="o">=</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">60000</span><span class="p">,</span><span class="mi">65000</span><span class="p">),</span> <span class="n">step_lr</span><span class="o">=</span><span class="p">(</span><span class="mf">0.001</span><span class="p">,</span><span class="mf">0.0001</span><span class="p">,</span><span class="mf">0.00001</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2016 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:'0.3.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">
<img src="../_static/apache.jpg">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> incubator-singa </span>
v: 0.3.0
<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>
<dd><a href="../../jp/index.html">日本語</a></dd>
<dd><a href="../../kr/index.html">한국어</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>