Modified: incubator/singa/site/trunk/docs/dependencies.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/docs/dependencies.html?rev=1862313&r1=1862312&r2=1862313&view=diff ============================================================================== --- incubator/singa/site/trunk/docs/dependencies.html (original) +++ incubator/singa/site/trunk/docs/dependencies.html Sat Jun 29 14:42:24 2019 @@ -265,10 +265,10 @@ folders).</p> <div class="section" id="faq"> <h2>FAQ<a class="headerlink" href="#faq" title="Permalink to this headline">¶</a></h2> <ol> -<li><p class="first">Error C2375 âsnprintfâ: redefinition; different linkage</p> +<li><p>Error C2375 âsnprintfâ: redefinition; different linkage</p> <p>Add âHAVE_SNPRINTFâ to âC/C++ - Preprocessor - Preprocessor definitionsâ</p> </li> -<li><p class="first">Error due to hash map</p> +<li><p>Error due to hash map</p> <p>Add â_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGSâ to Preprocessor Definitions.</p> </li> </ol>
Modified: incubator/singa/site/trunk/docs/device.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/docs/device.html?rev=1862313&r1=1862312&r2=1862313&view=diff ============================================================================== --- incubator/singa/site/trunk/docs/device.html (original) +++ incubator/singa/site/trunk/docs/device.html Sat Jun 29 14:42:24 2019 @@ -37,7 +37,7 @@ <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="Tensor" href="tensor.html" /> - <link rel="prev" title="Software Stack" href="software_stack.html" /> + <link rel="prev" title="Benchmark for Distributed training" href="benchmark.html" /> <link href="../_static/style.css" rel="stylesheet" type="text/css"> <!--link href="../_static/fontawesome-all.min.css" rel="stylesheet" type="text/css"--> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous"> @@ -104,9 +104,10 @@ <li class="toctree-l1 current"><a class="reference internal" href="index.html">Documentation</a><ul class="current"> <li class="toctree-l2"><a class="reference internal" href="installation.html">Installation</a></li> <li class="toctree-l2"><a class="reference internal" href="software_stack.html">Software Stack</a></li> +<li class="toctree-l2"><a class="reference internal" href="benchmark.html">Benchmark for Distributed training</a></li> <li class="toctree-l2 current"><a class="current reference internal" href="#">Device</a><ul> <li class="toctree-l3"><a class="reference internal" href="#specific-devices">Specific devices</a></li> -<li class="toctree-l3"><a class="reference internal" href="#python-api">Python API</a></li> +<li class="toctree-l3"><a class="reference internal" href="#module-singa.device">Python API</a></li> <li class="toctree-l3"><a class="reference internal" href="#cpp-api">CPP API</a></li> </ul> </li> @@ -218,13 +219,50 @@ of memory and execution are implemented <h2>Specific devices<a class="headerlink" href="#specific-devices" title="Permalink to this headline">¶</a></h2> <p>Currently, SINGA has three Device implmentations,</p> <ol class="arabic simple"> -<li>CudaGPU for an Nvidia GPU card which runs Cuda code</li> -<li>CppCPU for a CPU which runs Cpp code</li> -<li>OpenclGPU for a GPU card which runs OpenCL code</li> +<li><p>CudaGPU for an Nvidia GPU card which runs Cuda code</p></li> +<li><p>CppCPU for a CPU which runs Cpp code</p></li> +<li><p>OpenclGPU for a GPU card which runs OpenCL code</p></li> </ol> </div> -<div class="section" id="python-api"> -<h2>Python API<a class="headerlink" href="#python-api" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-singa.device"> +<span id="python-api"></span><h2>Python API<a class="headerlink" href="#module-singa.device" title="Permalink to this headline">¶</a></h2> +<p>This script includes Device class and its subclasses for python users +to call singa::Device and its methods.</p> +<p>TODO(wangwei) implement py CudaGPU class.</p> +<dl class="function"> +<dt id="singa.device.create_cuda_gpus"> +<code class="descclassname">singa.device.</code><code class="descname">create_cuda_gpus</code><span class="sig-paren">(</span><em>num</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.device.create_cuda_gpus" title="Permalink to this definition">¶</a></dt> +<dd><p>Create a list of CudaGPU devices.</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><p><strong>num</strong> (<em>int</em>) â number of device to create.</p> +</dd> +<dt class="field-even">Returns</dt> +<dd class="field-even"><p>a list of swig converted CudaGPU devices.</p> +</dd> +</dl> +</dd></dl> + +<dl class="function"> +<dt id="singa.device.create_cuda_gpus_on"> +<code class="descclassname">singa.device.</code><code class="descname">create_cuda_gpus_on</code><span class="sig-paren">(</span><em>device_ids</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.device.create_cuda_gpus_on" title="Permalink to this definition">¶</a></dt> +<dd><p>Create a list of CudaGPU devices.</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><p><strong>device_ids</strong> (<em>list</em>) â a list of GPU card IDs.</p> +</dd> +<dt class="field-even">Returns</dt> +<dd class="field-even"><p>a list of swig converted CudaGPU devices.</p> +</dd> +</dl> +</dd></dl> + +<dl class="function"> +<dt id="singa.device.get_default_device"> +<code class="descclassname">singa.device.</code><code class="descname">get_default_device</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#singa.device.get_default_device" title="Permalink to this definition">¶</a></dt> +<dd><p>Get the default host device which is a CppCPU device</p> +</dd></dl> + <p>The following code provides examples of creating devices:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">singa</span> <span class="k">import</span> <span class="n">device</span> <span class="n">cuda</span> <span class="o">=</span> <span class="n">device</span><span class="o">.</span><span class="n">create_cuda_gpu_on</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="c1"># use GPU card of ID 0</span> @@ -250,7 +288,7 @@ of memory and execution are implemented <a href="tensor.html" class="btn btn-neutral float-right" title="Tensor" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> - <a href="software_stack.html" class="btn btn-neutral float-left" title="Software Stack" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> + <a href="benchmark.html" class="btn btn-neutral float-left" title="Benchmark for Distributed training" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> </div> Modified: incubator/singa/site/trunk/docs/docker.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/docs/docker.html?rev=1862313&r1=1862312&r2=1862313&view=diff ============================================================================== --- incubator/singa/site/trunk/docs/docker.html (original) +++ incubator/singa/site/trunk/docs/docker.html Sat Jun 29 14:42:24 2019 @@ -202,8 +202,8 @@ <div class="section" id="available-tags"> <h2>Available tags<a class="headerlink" href="#available-tags" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li><code class="docutils literal notranslate"><span class="pre">devel</span></code>, with SINGA and the development packages installed on Ubuntu16.04 (no GPU)</li> -<li><code class="docutils literal notranslate"><span class="pre">devel-cuda</span></code>, with SINGA, CUDA8.0, CUDNN5, and other development packages installed on Ubuntu16.04</li> +<li><p><code class="docutils literal notranslate"><span class="pre">devel</span></code>, with SINGA and the development packages installed on Ubuntu16.04 (no GPU)</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">devel-cuda</span></code>, with SINGA, CUDA8.0, CUDNN5, and other development packages installed on Ubuntu16.04</p></li> </ul> </div> <div class="section" id="use-the-existing-docker-images"> @@ -234,9 +234,9 @@ Dockerfile folder, e.g., tool/docker/dev </pre></div> </div> <ul class="simple"> -<li>devel: development images with all dependent libsâ header files installed and SINGAâs source code; runtime: the minimal images which can run SINGA programs.</li> -<li>CUDA: cuda10.0, cuda9.0</li> -<li>CUDNN: cudnn7</li> +<li><p>devel: development images with all dependent libsâ header files installed and SINGAâs source code; runtime: the minimal images which can run SINGA programs.</p></li> +<li><p>CUDA: cuda10.0, cuda9.0</p></li> +<li><p>CUDNN: cudnn7</p></li> </ul> <p>Here are some example tags:</p> <p><code class="docutils literal notranslate"><span class="pre">devel-cuda9-cudnn7</span></code>, <code class="docutils literal notranslate"><span class="pre">devel-cuda9-cudnn7</span></code>, <code class="docutils literal notranslate"><span class="pre">devel-cuda10-cudnn7</span></code>, <code class="docutils literal notranslate"><span class="pre">devel-cpu</span></code>, <code class="docutils literal notranslate"><span class="pre">runtime-gpu</span></code> and <code class="docutils literal notranslate"><span class="pre">runtime-cpu</span></code></p> Modified: incubator/singa/site/trunk/docs/image_tool.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/docs/image_tool.html?rev=1862313&r1=1862312&r2=1862313&view=diff ============================================================================== --- incubator/singa/site/trunk/docs/image_tool.html (original) +++ incubator/singa/site/trunk/docs/image_tool.html Sat Jun 29 14:42:24 2019 @@ -104,6 +104,7 @@ <li class="toctree-l1 current"><a class="reference internal" href="index.html">Documentation</a><ul class="current"> <li class="toctree-l2"><a class="reference internal" href="installation.html">Installation</a></li> <li class="toctree-l2"><a class="reference internal" href="software_stack.html">Software Stack</a></li> +<li class="toctree-l2"><a class="reference internal" href="benchmark.html">Benchmark for Distributed training</a></li> <li class="toctree-l2"><a class="reference internal" href="device.html">Device</a></li> <li class="toctree-l2"><a class="reference internal" href="tensor.html">Tensor</a></li> <li class="toctree-l2"><a class="reference internal" href="layer.html">Layer</a></li> @@ -203,8 +204,281 @@ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> - <div class="section" id="image-tool"> -<h1>Image Tool<a class="headerlink" href="#image-tool" title="Permalink to this headline">¶</a></h1> + <div class="section" id="module-singa.image_tool"> +<span id="image-tool"></span><h1>Image Tool<a class="headerlink" href="#module-singa.image_tool" title="Permalink to this headline">¶</a></h1> +<p>An utility model for image augmentation.</p> +<p>Example usage:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">singa</span> <span class="k">import</span> <span class="n">image_tool</span> + +<span class="n">tool</span> <span class="o">=</span> <span class="n">image_tool</span><span class="o">.</span><span class="n">ImageTool</span><span class="p">()</span> +<span class="n">imgs</span> <span class="o">=</span> <span class="n">tool</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s1">'input.png'</span><span class="p">)</span><span class="o">.</span> <span class="n">resize_by_list</span><span class="p">([</span><span class="mi">112</span><span class="p">])</span><span class="o">.</span><span class="n">crop5</span><span class="p">((</span><span class="mi">96</span><span class="p">,</span> <span class="mi">96</span><span class="p">),</span> <span class="mi">5</span><span class="p">)</span><span class="o">.</span><span class="n">enhance</span><span class="p">()</span><span class="o">.</span><span class="n">flip</span><span class="p">()</span><span class="o">.</span><span class="n">get</span><span class="p">()</span> +<span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">img</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">imgs</span><span class="p">):</span> + <span class="n">img</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="s1">'</span><span class="si">%d</span><span class="s1">.png'</span> <span class="o">%</span> <span class="n">idx</span><span class="p">)</span> +</pre></div> +</div> +<dl class="class"> +<dt id="singa.image_tool.ImageTool"> +<em class="property">class </em><code class="descclassname">singa.image_tool.</code><code class="descname">ImageTool</code><a class="headerlink" href="#singa.image_tool.ImageTool" title="Permalink to this definition">¶</a></dt> +<dd><p>A tool for image augmentation.</p> +<p>For operations with inplace=True, the returned value is the ImageTool +instance self, which is for chaining multiple operations; Otherwise, the +preprocessed images would be returned.</p> +<p>For operations that has countable pre-processing cases, argument num_case +could be set to decide the number of pre-processing cases to apply. +Typically, it is set to 1 for training phases and to the max for test +phases.</p> +<dl class="method"> +<dt id="singa.image_tool.ImageTool.color_cast"> +<code class="descname">color_cast</code><span class="sig-paren">(</span><em>offset=20</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.color_cast" title="Permalink to this definition">¶</a></dt> +<dd><p>Add a random value from [-offset, offset] to each channel</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>offset</strong> â cast offset, >0 and <255</p></li> +<li><p><strong>inplace</strong> â inplace imgs or not ( return new_imgs)</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.crop3"> +<code class="descname">crop3</code><span class="sig-paren">(</span><em>patch</em>, <em>num_case=1</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.crop3" title="Permalink to this definition">¶</a></dt> +<dd><p>Crop a max square patch of the input image at given position and +scale it into given size.</p> +<p>According to img size, crop position could be either +(left, center, right) or (top, middle, bottom).</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>patch</strong> (<em>tuple</em>) â the width and height the output image</p></li> +<li><p><strong>num_case</strong> â num of cases, must be in [1,3]</p></li> +<li><p><strong>inplace</strong> â inplace imgs or not ( return new_imgs)</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.crop5"> +<code class="descname">crop5</code><span class="sig-paren">(</span><em>patch</em>, <em>num_case=1</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.crop5" title="Permalink to this definition">¶</a></dt> +<dd><p>Crop at positions from [left_top, left_bottom, right_top, +right_bottom, and center].</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>patch</strong> (<em>tuple</em>) â width and height of the result image.</p></li> +<li><p><strong>num_case</strong> â num of cases, must be in [1,5]</p></li> +<li><p><strong>inplace</strong> â inplace imgs or not ( return new_imgs)</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.crop8"> +<code class="descname">crop8</code><span class="sig-paren">(</span><em>patch</em>, <em>num_case=1</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.crop8" title="Permalink to this definition">¶</a></dt> +<dd><p>This is a union of patch_5 and patch_and_scale.</p> +<p>You can follow this example to union any num of cases of imgtool methods</p> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.enhance"> +<code class="descname">enhance</code><span class="sig-paren">(</span><em>scale=0.2</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.enhance" title="Permalink to this definition">¶</a></dt> +<dd><p>Apply random enhancement for Color,Contrast,Brightness,Sharpness.</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>scale</strong> (<em>float</em>) â enhancement degree is from [1-scale, 1+scale]</p></li> +<li><p><strong>inplace</strong> â inplace imgs or not ( return new_imgs)</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.flip"> +<code class="descname">flip</code><span class="sig-paren">(</span><em>num_case=1</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.flip" title="Permalink to this definition">¶</a></dt> +<dd><p>Randomly flip a img left to right.</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>num_case</strong> â num of cases, must be in {1,2}; if 2, then add the orignal +and flipped img</p></li> +<li><p><strong>inplace</strong> â inplace imgs or not (return new_imgs)</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.flip_down"> +<code class="descname">flip_down</code><span class="sig-paren">(</span><em>num_case=1</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.flip_down" title="Permalink to this definition">¶</a></dt> +<dd><p>Randomly flip a img top to bottom. +:param num_case: num of cases, must be in {1,2}; if 2, then add the orignal</p> +<blockquote> +<div><p>and flip_down img</p> +</div></blockquote> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><p><strong>inplace</strong> â inplace imgs or not (return new_imgs)</p> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.num_augmentation"> +<code class="descname">num_augmentation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.num_augmentation" title="Permalink to this definition">¶</a></dt> +<dd><p>Return the total number of augmentations to each image</p> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.random_crop"> +<code class="descname">random_crop</code><span class="sig-paren">(</span><em>patch</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.random_crop" title="Permalink to this definition">¶</a></dt> +<dd><p>Crop the image at random offset to get a patch of the given size.</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>patch</strong> (<em>tuple</em>) â width and height of the patch</p></li> +<li><p><strong>inplace</strong> (<em>Boolean</em>) â replace the internal images list with the patches +if True; otherwise, return the patches.</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.random_crop_resize"> +<code class="descname">random_crop_resize</code><span class="sig-paren">(</span><em>patch</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.random_crop_resize" title="Permalink to this definition">¶</a></dt> +<dd><dl class="simple"> +<dt>Crop of the image at a random size between 0.08 to 1 of input image</dt><dd><p>and random aspect ratio between 3/4 to 4/3. +This crop is then resized to the given patch size.</p> +</dd> +</dl> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>patch</strong> (<em>tuple</em>) â width and height of the patch</p></li> +<li><p><strong>inplace</strong> (<em>Boolean</em>) â replace the internal images list with the patches +if True; otherwise, return the patches.</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.resize_by_list"> +<code class="descname">resize_by_list</code><span class="sig-paren">(</span><em>size_list</em>, <em>num_case=1</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.resize_by_list" title="Permalink to this definition">¶</a></dt> +<dd><dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>num_case</strong> â num of resize cases, must be <= the length of size_list</p></li> +<li><p><strong>inplace</strong> â inplace imgs or not ( return new_imgs)</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.resize_by_range"> +<code class="descname">resize_by_range</code><span class="sig-paren">(</span><em>rng</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.resize_by_range" title="Permalink to this definition">¶</a></dt> +<dd><dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>rng</strong> â a tuple (begin,end), include begin, exclude end</p></li> +<li><p><strong>inplace</strong> â inplace imgs or not ( return new_imgs)</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.rotate_by_list"> +<code class="descname">rotate_by_list</code><span class="sig-paren">(</span><em>angle_list</em>, <em>num_case=1</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.rotate_by_list" title="Permalink to this definition">¶</a></dt> +<dd><dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>num_case</strong> â num of rotate cases, must be <= the length of angle_list</p></li> +<li><p><strong>inplace</strong> â inplace imgs or not ( return new_imgs)</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="method"> +<dt id="singa.image_tool.ImageTool.rotate_by_range"> +<code class="descname">rotate_by_range</code><span class="sig-paren">(</span><em>rng</em>, <em>inplace=True</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.ImageTool.rotate_by_range" title="Permalink to this definition">¶</a></dt> +<dd><dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>rng</strong> â a tuple (begin,end) in degree, include begin, exclude end</p></li> +<li><p><strong>inplace</strong> â inplace imgs or not ( return new_imgs)</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +</dd></dl> + +<dl class="function"> +<dt id="singa.image_tool.color_cast"> +<code class="descclassname">singa.image_tool.</code><code class="descname">color_cast</code><span class="sig-paren">(</span><em>img</em>, <em>offset</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.color_cast" title="Permalink to this definition">¶</a></dt> +<dd><p>Add a random value from [-offset, offset] to each channel</p> +</dd></dl> + +<dl class="function"> +<dt id="singa.image_tool.crop"> +<code class="descclassname">singa.image_tool.</code><code class="descname">crop</code><span class="sig-paren">(</span><em>img</em>, <em>patch</em>, <em>position</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.crop" title="Permalink to this definition">¶</a></dt> +<dd><p>Crop the input image into given size at given position.</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>patch</strong> (<em>tuple</em>) â width and height of the patch</p></li> +<li><p><strong>position</strong> (<em>list</em><em>(</em><em>str</em><em>)</em>) â left_top, left_bottom, right_top, right_bottom</p></li> +<li><p><strong>center.</strong> (<em>and</em>) â </p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="function"> +<dt id="singa.image_tool.crop_and_resize"> +<code class="descclassname">singa.image_tool.</code><code class="descname">crop_and_resize</code><span class="sig-paren">(</span><em>img</em>, <em>patch</em>, <em>position</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.crop_and_resize" title="Permalink to this definition">¶</a></dt> +<dd><p>Crop a max square patch of the input image at given position and resize +it into given size.</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>patch</strong> (<em>tuple</em>) â width, height</p></li> +<li><p><strong>position</strong> (<em>list</em><em>(</em><em>str</em><em>)</em>) â left, center, right, top, middle, bottom.</p></li> +</ul> +</dd> +</dl> +</dd></dl> + +<dl class="function"> +<dt id="singa.image_tool.enhance"> +<code class="descclassname">singa.image_tool.</code><code class="descname">enhance</code><span class="sig-paren">(</span><em>img</em>, <em>scale</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.enhance" title="Permalink to this definition">¶</a></dt> +<dd><p>Apply random enhancement for Color,Contrast,Brightness,Sharpness.</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><p><strong>scale</strong> (<em>float</em>) â enhancement degree is from [1-scale, 1+scale]</p> +</dd> +</dl> +</dd></dl> + +<dl class="function"> +<dt id="singa.image_tool.load_img"> +<code class="descclassname">singa.image_tool.</code><code class="descname">load_img</code><span class="sig-paren">(</span><em>path</em>, <em>grayscale=False</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.load_img" title="Permalink to this definition">¶</a></dt> +<dd><p>Read the image from a give path</p> +</dd></dl> + +<dl class="function"> +<dt id="singa.image_tool.resize"> +<code class="descclassname">singa.image_tool.</code><code class="descname">resize</code><span class="sig-paren">(</span><em>img</em>, <em>small_size</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.image_tool.resize" title="Permalink to this definition">¶</a></dt> +<dd><p>Resize the image to make the smaller side be at the given size</p> +</dd></dl> + </div> Modified: incubator/singa/site/trunk/docs/index.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/docs/index.html?rev=1862313&r1=1862312&r2=1862313&view=diff ============================================================================== --- incubator/singa/site/trunk/docs/index.html (original) +++ incubator/singa/site/trunk/docs/index.html Sat Jun 29 14:42:24 2019 @@ -104,6 +104,7 @@ <li class="toctree-l1 current"><a class="current reference internal" href="#">Documentation</a><ul> <li class="toctree-l2"><a class="reference internal" href="installation.html">Installation</a></li> <li class="toctree-l2"><a class="reference internal" href="software_stack.html">Software Stack</a></li> +<li class="toctree-l2"><a class="reference internal" href="benchmark.html">Benchmark for Distributed training</a></li> <li class="toctree-l2"><a class="reference internal" href="device.html">Device</a></li> <li class="toctree-l2"><a class="reference internal" href="tensor.html">Tensor</a></li> <li class="toctree-l2"><a class="reference internal" href="layer.html">Layer</a></li> @@ -231,26 +232,27 @@ <li class="toctree-l2"><a class="reference internal" href="software_stack.html#io">IO</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="benchmark.html">Benchmark for Distributed training</a></li> <li class="toctree-l1"><a class="reference internal" href="device.html">Device</a><ul> <li class="toctree-l2"><a class="reference internal" href="device.html#specific-devices">Specific devices</a></li> -<li class="toctree-l2"><a class="reference internal" href="device.html#python-api">Python API</a></li> +<li class="toctree-l2"><a class="reference internal" href="device.html#module-singa.device">Python API</a></li> <li class="toctree-l2"><a class="reference internal" href="device.html#cpp-api">CPP API</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="tensor.html">Tensor</a><ul> <li class="toctree-l2"><a class="reference internal" href="tensor.html#tensor-implementation">Tensor implementation</a></li> -<li class="toctree-l2"><a class="reference internal" href="tensor.html#python-api">Python API</a></li> +<li class="toctree-l2"><a class="reference internal" href="tensor.html#module-singa.tensor">Python API</a></li> <li class="toctree-l2"><a class="reference internal" href="tensor.html#cpp-api">CPP API</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="layer.html">Layer</a><ul> -<li class="toctree-l2"><a class="reference internal" href="layer.html#python-api">Python API</a></li> +<li class="toctree-l2"><a class="reference internal" href="layer.html#module-singa.layer">Python API</a></li> <li class="toctree-l2"><a class="reference internal" href="layer.html#cpp-api">CPP API</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="net.html">FeedForward Net</a></li> <li class="toctree-l1"><a class="reference internal" href="initializer.html">Initializer</a><ul> -<li class="toctree-l2"><a class="reference internal" href="initializer.html#python-api">Python API</a></li> +<li class="toctree-l2"><a class="reference internal" href="initializer.html#module-singa.initializer">Python API</a></li> <li class="toctree-l2"><a class="reference internal" href="initializer.html#cpp-api">CPP API</a></li> </ul> </li> @@ -301,10 +303,6 @@ <li class="toctree-l3"><a class="reference internal" href="model_zoo/char-rnn/README.html#instructions">Instructions</a></li> </ul> </li> -<li class="toctree-l2"><a class="reference internal" href="model_zoo/mnist/README.html">Train a RBM model against MNIST dataset</a><ul> -<li class="toctree-l3"><a class="reference internal" href="model_zoo/mnist/README.html#running-instructions">Running instructions</a></li> -</ul> -</li> <li class="toctree-l2"><a class="reference internal" href="model_zoo/imagenet/alexnet/README.html">Train AlexNet over ImageNet</a><ul> <li class="toctree-l3"><a class="reference internal" href="model_zoo/imagenet/alexnet/README.html#instructions">Instructions</a><ul> <li class="toctree-l4"><a class="reference internal" href="model_zoo/imagenet/alexnet/README.html#compile-singa">Compile SINGA</a></li> @@ -315,15 +313,6 @@ </li> </ul> </li> -<li class="toctree-l2"><a class="reference internal" href="model_zoo/imagenet/densenet/README.html">name: DenseNet models on ImageNet -SINGA version: 1.1.1 -SINGA commit: -license: https://github.com/pytorch/vision/blob/master/torchvision/models/densenet.py</a></li> -<li class="toctree-l2"><a class="reference internal" href="model_zoo/imagenet/densenet/README.html#image-classification-using-densenet">Image Classification using DenseNet</a><ul> -<li class="toctree-l3"><a class="reference internal" href="model_zoo/imagenet/densenet/README.html#instructions">Instructions</a></li> -<li class="toctree-l3"><a class="reference internal" href="model_zoo/imagenet/densenet/README.html#details">Details</a></li> -</ul> -</li> <li class="toctree-l2"><a class="reference internal" href="model_zoo/imagenet/googlenet/README.html">name: GoogleNet on ImageNet SINGA version: 1.0.1 SINGA commit: 8c990f7da2de220e8a012c6a8ecc897dc7532744 @@ -335,36 +324,6 @@ license: unrestricted https://github.com <li class="toctree-l3"><a class="reference internal" href="model_zoo/imagenet/googlenet/README.html#details">Details</a></li> </ul> </li> -<li class="toctree-l2"><a class="reference internal" href="model_zoo/imagenet/inception/README.html">name: Inception V4 on ImageNet -SINGA version: 1.1.1 -SINGA commit: -parameter_url: https://s3-ap-southeast-1.amazonaws.com/dlfile/inception_v4.tar.gz -parameter_sha1: 5fdd6f5d8af8fd10e7321d9b38bb87ef14e80d56 -license: https://github.com/tensorflow/models/tree/master/slim</a></li> -<li class="toctree-l2"><a class="reference internal" href="model_zoo/imagenet/inception/README.html#image-classification-using-inception-v4">Image Classification using Inception V4</a><ul> -<li class="toctree-l3"><a class="reference internal" href="model_zoo/imagenet/inception/README.html#instructions">Instructions</a></li> -<li class="toctree-l3"><a class="reference internal" href="model_zoo/imagenet/inception/README.html#details">Details</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="model_zoo/imagenet/resnet/README.html">name: Resnets on ImageNet -SINGA version: 1.1 -SINGA commit: 45ec92d8ffc1fa1385a9307fdf07e21da939ee2f -parameter_url: https://s3-ap-southeast-1.amazonaws.com/dlfile/resnet/resnet-18.tar.gz -license: Apache V2, https://github.com/facebook/fb.resnet.torch/blob/master/LICENSE</a></li> -<li class="toctree-l2"><a class="reference internal" href="model_zoo/imagenet/resnet/README.html#image-classification-using-residual-networks">Image Classification using Residual Networks</a><ul> -<li class="toctree-l3"><a class="reference internal" href="model_zoo/imagenet/resnet/README.html#instructions">Instructions</a></li> -<li class="toctree-l3"><a class="reference internal" href="model_zoo/imagenet/resnet/README.html#details">Details</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="model_zoo/imagenet/vgg/README.html">name: VGG models on ImageNet -SINGA version: 1.1.1 -SINGA commit: -license: https://github.com/pytorch/vision/blob/master/torchvision/models/vgg.py</a></li> -<li class="toctree-l2"><a class="reference internal" href="model_zoo/imagenet/vgg/README.html#image-classification-using-vgg">Image Classification using VGG</a><ul> -<li class="toctree-l3"><a class="reference internal" href="model_zoo/imagenet/vgg/README.html#instructions">Instructions</a></li> -<li class="toctree-l3"><a class="reference internal" href="model_zoo/imagenet/vgg/README.html#details">Details</a></li> -</ul> -</li> </ul> </li> </ul> Modified: incubator/singa/site/trunk/docs/initializer.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/docs/initializer.html?rev=1862313&r1=1862312&r2=1862313&view=diff ============================================================================== --- incubator/singa/site/trunk/docs/initializer.html (original) +++ incubator/singa/site/trunk/docs/initializer.html Sat Jun 29 14:42:24 2019 @@ -104,12 +104,13 @@ <li class="toctree-l1 current"><a class="reference internal" href="index.html">Documentation</a><ul class="current"> <li class="toctree-l2"><a class="reference internal" href="installation.html">Installation</a></li> <li class="toctree-l2"><a class="reference internal" href="software_stack.html">Software Stack</a></li> +<li class="toctree-l2"><a class="reference internal" href="benchmark.html">Benchmark for Distributed training</a></li> <li class="toctree-l2"><a class="reference internal" href="device.html">Device</a></li> <li class="toctree-l2"><a class="reference internal" href="tensor.html">Tensor</a></li> <li class="toctree-l2"><a class="reference internal" href="layer.html">Layer</a></li> <li class="toctree-l2"><a class="reference internal" href="net.html">FeedForward Net</a></li> <li class="toctree-l2 current"><a class="current reference internal" href="#">Initializer</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#python-api">Python API</a></li> +<li class="toctree-l3"><a class="reference internal" href="#module-singa.initializer">Python API</a></li> <li class="toctree-l3"><a class="reference internal" href="#cpp-api">CPP API</a></li> </ul> </li> @@ -209,8 +210,60 @@ <div class="section" id="initializer"> <h1>Initializer<a class="headerlink" href="#initializer" title="Permalink to this headline">¶</a></h1> -<div class="section" id="python-api"> -<h2>Python API<a class="headerlink" href="#python-api" title="Permalink to this headline">¶</a></h2> +<div class="section" id="module-singa.initializer"> +<span id="python-api"></span><h2>Python API<a class="headerlink" href="#module-singa.initializer" title="Permalink to this headline">¶</a></h2> +<p>Popular initialization methods for parameter values (Tensor objects).</p> +<p>Example usages:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">singa</span> <span class="k">import</span> <span class="n">tensor</span> +<span class="kn">from</span> <span class="nn">singa</span> <span class="k">import</span> <span class="n">initializer</span> + +<span class="n">x</span> <span class="o">=</span> <span class="n">tensor</span><span class="o">.</span><span class="n">Tensor</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span> +<span class="n">initializer</span><span class="o">.</span><span class="n">uniform</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span> <span class="c1"># use both fan_in and fan_out</span> +<span class="n">initializer</span><span class="o">.</span><span class="n">uniform</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="c1"># use only fan_in</span> +</pre></div> +</div> +<dl class="function"> +<dt id="singa.initializer.uniform"> +<code class="descclassname">singa.initializer.</code><code class="descname">uniform</code><span class="sig-paren">(</span><em>t</em>, <em>fan_in=0</em>, <em>fan_out=0</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.initializer.uniform" title="Permalink to this definition">¶</a></dt> +<dd><p>Initialize the values of the input tensor following a uniform +distribution with specific bounds.</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>fan_in</strong> (<em>int</em>) â for the weight Tensor of a convolution layer, +fan_in = nb_channel * kh * kw; for dense layer, +fan_in = input_feature_length</p></li> +<li><p><strong>fan_out</strong> (<em>int</em>) â for the convolution layer weight Tensor, +fan_out = nb_filter * kh * kw; for the weight Tensor of a dense +layer, fan_out = output_feature_length</p></li> +</ul> +</dd> +</dl> +<p>Ref: [Bengio and Glorot 2010]: Understanding the difficulty of +training deep feedforward neuralnetworks.</p> +</dd></dl> + +<dl class="function"> +<dt id="singa.initializer.gaussian"> +<code class="descclassname">singa.initializer.</code><code class="descname">gaussian</code><span class="sig-paren">(</span><em>t</em>, <em>fan_in=0</em>, <em>fan_out=0</em><span class="sig-paren">)</span><a class="headerlink" href="#singa.initializer.gaussian" title="Permalink to this definition">¶</a></dt> +<dd><p>Initialize the values of the input tensor following a Gaussian +distribution with specific std.</p> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>fan_in</strong> (<em>int</em>) â for the weight Tensor of a convolution layer, +fan_in = nb_channel * kh * kw; for dense layer, +fan_in = input_feature_length</p></li> +<li><p><strong>fan_out</strong> (<em>int</em>) â for the convolution layer weight Tensor, +fan_out = nb_filter * kh * kw; for the weight Tensor of a dense +layer, fan_out = output_feature_length</p></li> +</ul> +</dd> +</dl> +<p>Ref Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun: Delving Deep into +Rectifiers: Surpassing Human-Level Performance on ImageNet Classification</p> +</dd></dl> + </div> <div class="section" id="cpp-api"> <h2>CPP API<a class="headerlink" href="#cpp-api" title="Permalink to this headline">¶</a></h2> Modified: incubator/singa/site/trunk/docs/install_macos1013.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/docs/install_macos1013.html?rev=1862313&r1=1862312&r2=1862313&view=diff ============================================================================== --- incubator/singa/site/trunk/docs/install_macos1013.html (original) +++ incubator/singa/site/trunk/docs/install_macos1013.html Sat Jun 29 14:42:24 2019 @@ -185,14 +185,14 @@ <div class="section" id="requirements"> <h2>Requirements<a class="headerlink" href="#requirements" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>homebrew is used to install the requirements. Try:</li> +<li><p>homebrew is used to install the requirements. Try:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>brew update </pre></div> </div> <p>If you donât have homebrew in your system or if you upgraded from a previous operating system, you may see an error message. See FAQ below.</p> <ul class="simple"> -<li>installing required software for building SINGA:</li> +<li><p>installing required software for building SINGA:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>brew tap homebrew/science brew tap homebrew/python @@ -215,7 +215,7 @@ brew install wget </pre></div> </div> <ul class="simple"> -<li>preparing compiler</li> +<li><p>preparing compiler</p></li> </ul> <p>To let the compiler (and cmake) know the openblas path,</p> @@ -232,7 +232,7 @@ path,</p> </pre></div> </div> <ul class="simple"> -<li>Get the source code and build it:</li> +<li><p>Get the source code and build it:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git clone https://github.com/apache/incubator-singa.git @@ -245,14 +245,14 @@ make </pre></div> </div> <ul class="simple"> -<li>Optional: create virtual enviromnet:</li> +<li><p>Optional: create virtual enviromnet:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>virtualenv ~/venv <span class="nb">source</span> ~/venv/bin/activate </pre></div> </div> <ul class="simple"> -<li>Install the python module</li> +<li><p>Install the python module</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span> python pip install . @@ -264,7 +264,7 @@ pip install . </div> <p>then SINGA is installed successfully.</p> <ul class="simple"> -<li>Run Jupyter notebook</li> +<li><p>Run Jupyter notebook</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pip install matplotlib @@ -276,12 +276,12 @@ jupyter notebook <div class="section" id="video-tutorial"> <h2>Video Tutorial<a class="headerlink" href="#video-tutorial" title="Permalink to this headline">¶</a></h2> <p>See these steps in the following video:</p> -<table border="1" class="docutils"> +<table class="docutils align-center"> <colgroup> -<col width="100%" /> +<col style="width: 100%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><a class="reference external" href="https://www.youtube.com/watch?v=T8xGTH9vCBs"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/T8xGTH9vCBs/0.jpg" /></a></td> +<tbody> +<tr class="row-odd"><td><p><a class="reference external" href="https://www.youtube.com/watch?v=T8xGTH9vCBs"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/T8xGTH9vCBs/0.jpg" /></a></p></td> </tr> </tbody> </table> @@ -289,13 +289,13 @@ jupyter notebook <div class="section" id="faq"> <h2>FAQ<a class="headerlink" href="#faq" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>How to install or update homebrew:</li> +<li><p>How to install or update homebrew:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>/usr/bin/ruby -e <span class="s2">"</span><span class="k">$(</span>curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install<span class="k">)</span><span class="s2">"</span> </pre></div> </div> <ul class="simple"> -<li>There is an error with protobuf.</li> +<li><p>There is an error with protobuf.</p></li> </ul> <p>Try overwriting the links:</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>brew link --overwrite protobuf Modified: incubator/singa/site/trunk/docs/install_win.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/docs/install_win.html?rev=1862313&r1=1862312&r2=1862313&view=diff ============================================================================== --- incubator/singa/site/trunk/docs/install_win.html (original) +++ incubator/singa/site/trunk/docs/install_win.html Sat Jun 29 14:42:24 2019 @@ -188,71 +188,65 @@ <p>You may create a folder for building the dependencies.</p> <p>The dependencies are:</p> <ul> -<li><dl class="first docutils"> -<dt>Compiler and IDE</dt> -<dd><ul class="first last simple"> -<li>Visual Studio. The community edition is free and can be used to build SINGA. <a class="reference external" href="https://www.visualstudio.com/">https://www.visualstudio.com/</a></li> +<li><dl class="simple"> +<dt>Compiler and IDE</dt><dd><ul class="simple"> +<li><p>Visual Studio. The community edition is free and can be used to build SINGA. <a class="reference external" href="https://www.visualstudio.com/">https://www.visualstudio.com/</a></p></li> </ul> </dd> </dl> </li> -<li><dl class="first docutils"> -<dt>CMake</dt> -<dd><ul class="first last simple"> -<li>Can be downloaded from <a class="reference external" href="http://cmake.org/">http://cmake.org/</a></li> -<li>Make sure the path to cmake executable is in the system path, or use full path when calling cmake.</li> +<li><dl class="simple"> +<dt>CMake</dt><dd><ul class="simple"> +<li><p>Can be downloaded from <a class="reference external" href="http://cmake.org/">http://cmake.org/</a></p></li> +<li><p>Make sure the path to cmake executable is in the system path, or use full path when calling cmake.</p></li> </ul> </dd> </dl> </li> -<li><dl class="first docutils"> -<dt>SWIG</dt> -<dd><ul class="first last simple"> -<li>Can be downloaded from <a class="reference external" href="http://swig.org/">http://swig.org/</a></li> -<li>Make sure the path to swig executable is in the system path, or use full path when calling swig. Use a recent version such as 3.0.12.</li> +<li><dl class="simple"> +<dt>SWIG</dt><dd><ul class="simple"> +<li><p>Can be downloaded from <a class="reference external" href="http://swig.org/">http://swig.org/</a></p></li> +<li><p>Make sure the path to swig executable is in the system path, or use full path when calling swig. Use a recent version such as 3.0.12.</p></li> </ul> </dd> </dl> </li> -<li><dl class="first docutils"> -<dt>Protocol Buffers</dt> -<dd><ul class="first last simple"> -<li>Download a suitable version such as 2.6.1: <a class="reference external" href="https://github.com/google/protobuf/releases/tag/v2.6.1">https://github.com/google/protobuf/releases/tag/v2.6.1</a> .</li> -<li>Download both protobuf-2.6.1.zip and protoc-2.6.1-win32.zip .</li> -<li>Extract both of them in dependencies folder. Add the path to protoc executable to the system path, or use full path when calling it.</li> -<li>Open the Visual Studio solution which can be found in vsproject folder.</li> -<li>Change the build settings to Release and x64.</li> -<li>build libprotobuf project.</li> +<li><dl class="simple"> +<dt>Protocol Buffers</dt><dd><ul class="simple"> +<li><p>Download a suitable version such as 2.6.1: <a class="reference external" href="https://github.com/google/protobuf/releases/tag/v2.6.1">https://github.com/google/protobuf/releases/tag/v2.6.1</a> .</p></li> +<li><p>Download both protobuf-2.6.1.zip and protoc-2.6.1-win32.zip .</p></li> +<li><p>Extract both of them in dependencies folder. Add the path to protoc executable to the system path, or use full path when calling it.</p></li> +<li><p>Open the Visual Studio solution which can be found in vsproject folder.</p></li> +<li><p>Change the build settings to Release and x64.</p></li> +<li><p>build libprotobuf project.</p></li> </ul> </dd> </dl> </li> -<li><dl class="first docutils"> -<dt>Openblas</dt> -<dd><ul class="first simple"> -<li>Download a suitable source version such as 0.2.20 from <a class="reference external" href="http://www.openblas.net">http://www.openblas.net</a></li> -<li>Extract the source in the dependencies folder.</li> -<li>If you donât have Perl installed, download a perl environment such as Strawberry Perl (<a class="reference external" href="http://strawberryperl.com/">http://strawberryperl.com/</a>)</li> -<li>Build the Visual Studio solution by running this command in the source folder:</li> +<li><dl> +<dt>Openblas</dt><dd><ul class="simple"> +<li><p>Download a suitable source version such as 0.2.20 from <a class="reference external" href="http://www.openblas.net">http://www.openblas.net</a></p></li> +<li><p>Extract the source in the dependencies folder.</p></li> +<li><p>If you donât have Perl installed, download a perl environment such as Strawberry Perl (<a class="reference external" href="http://strawberryperl.com/">http://strawberryperl.com/</a>)</p></li> +<li><p>Build the Visual Studio solution by running this command in the source folder:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> </pre></div> </div> -<ul class="last simple"> -<li>Open the Visual Studio solution and change the build settings to Release and x64.</li> -<li>Build libopenblas project</li> +<ul class="simple"> +<li><p>Open the Visual Studio solution and change the build settings to Release and x64.</p></li> +<li><p>Build libopenblas project</p></li> </ul> </dd> </dl> </li> -<li><dl class="first docutils"> -<dt>Google glog</dt> -<dd><ul class="first last simple"> -<li>Download a suitable version such as 0.3.5 from <a class="reference external" href="https://github.com/google/glog/releases">https://github.com/google/glog/releases</a></li> -<li>Extract the source in the dependencies folder.</li> -<li>Open the Visual Studio solution.</li> -<li>Change the build settings to Release and x64.</li> -<li>Build libglog project</li> +<li><dl class="simple"> +<dt>Google glog</dt><dd><ul class="simple"> +<li><p>Download a suitable version such as 0.3.5 from <a class="reference external" href="https://github.com/google/glog/releases">https://github.com/google/glog/releases</a></p></li> +<li><p>Extract the source in the dependencies folder.</p></li> +<li><p>Open the Visual Studio solution.</p></li> +<li><p>Change the build settings to Release and x64.</p></li> +<li><p>Build libglog project</p></li> </ul> </dd> </dl> @@ -262,11 +256,10 @@ <div class="section" id="build-singa-source"> <h2>2. Build SINGA source<a class="headerlink" href="#build-singa-source" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>Download SINGA source code</li> -<li><dl class="first docutils"> -<dt>Compile the protobuf files:</dt> -<dd><ul class="first last"> -<li>Goto src/proto folder</li> +<li><p>Download SINGA source code</p></li> +<li><dl class="simple"> +<dt>Compile the protobuf files:</dt><dd><ul> +<li><p>Goto src/proto folder</p></li> </ul> </dd> </dl> @@ -277,9 +270,9 @@ protoc.exe *.proto --python_out python_o </pre></div> </div> <ul class="simple"> -<li><dl class="first docutils"> -<dt>Generate swig interfaces for C++ and Python:</dt> -<dd>Goto src/api</dd> +<li><dl class="simple"> +<dt>Generate swig interfaces for C++ and Python:</dt><dd><p>Goto src/api</p> +</dd> </dl> </li> </ul> @@ -287,9 +280,9 @@ protoc.exe *.proto --python_out python_o </pre></div> </div> <ul class="simple"> -<li><dl class="first docutils"> -<dt>generate Visual Studio solution for SINGA:</dt> -<dd>Goto SINGA source code root folder</dd> +<li><dl class="simple"> +<dt>generate Visual Studio solution for SINGA:</dt><dd><p>Goto SINGA source code root folder</p> +</dd> </dl> </li> </ul> @@ -298,7 +291,7 @@ protoc.exe *.proto --python_out python_o </pre></div> </div> <ul class="simple"> -<li>Call cmake and add the paths in your system similar to the following example:</li> +<li><p>Call cmake and add the paths in your system similar to the following example:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> ^ -DGLOG_INCLUDE_DIR<span class="o">=</span><span class="s2">"D:/WinSinga/dependencies/glog-0.3.5/src/windows"</span> ^ @@ -312,37 +305,36 @@ protoc.exe *.proto --python_out python_o </pre></div> </div> <ul class="simple"> -<li>Open the generated solution in Visual Studio</li> -<li>Change the build settings to Release and x64</li> -<li>Add the singa_wrap.cxx file from src/api to the singa_objects project</li> -<li>In the singa_objects project, open Additional Include Directories.</li> -<li>Add Python include path</li> -<li>Add numpy include path</li> -<li>Add protobuf include path</li> -<li>In the preprocessor definitions of the singa_objects project, add USE_GLOG</li> -<li>Build singa_objects project</li> -<li><dl class="first docutils"> -<dt>In singa project:</dt> -<dd><ul class="first last"> -<li>add singa_wrap.obj to Object Libraries</li> -<li>change target name to _singa_wrap</li> -<li>change target extension to .pyd</li> -<li>change configuration type to Dynamic Library (.dll)</li> -<li>goto Additional Library Directories and add the path to python, openblas, protobuf and glog libraries</li> -<li>goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib</li> +<li><p>Open the generated solution in Visual Studio</p></li> +<li><p>Change the build settings to Release and x64</p></li> +<li><p>Add the singa_wrap.cxx file from src/api to the singa_objects project</p></li> +<li><p>In the singa_objects project, open Additional Include Directories.</p></li> +<li><p>Add Python include path</p></li> +<li><p>Add numpy include path</p></li> +<li><p>Add protobuf include path</p></li> +<li><p>In the preprocessor definitions of the singa_objects project, add USE_GLOG</p></li> +<li><p>Build singa_objects project</p></li> +<li><dl class="simple"> +<dt>In singa project:</dt><dd><ul> +<li><p>add singa_wrap.obj to Object Libraries</p></li> +<li><p>change target name to _singa_wrap</p></li> +<li><p>change target extension to .pyd</p></li> +<li><p>change configuration type to Dynamic Library (.dll)</p></li> +<li><p>goto Additional Library Directories and add the path to python, openblas, protobuf and glog libraries</p></li> +<li><p>goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib</p></li> </ul> </dd> </dl> </li> -<li>build singa project</li> +<li><p>build singa project</p></li> </ul> </div> <div class="section" id="install-python-module"> <h2>3. Install Python module<a class="headerlink" href="#install-python-module" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>Change _singa_wrap.so to _singa_wrap.pyd in build/python/setup.py</li> -<li>Copy the files in src/proto/python_out to build/python/singa/proto</li> -<li>Optionally create and activate a virtual environment:</li> +<li><p>Change _singa_wrap.so to _singa_wrap.pyd in build/python/setup.py</p></li> +<li><p>Copy the files in src/proto/python_out to build/python/singa/proto</p></li> +<li><p>Optionally create and activate a virtual environment:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mkdir SingaEnv virtualenv SingaEnv @@ -350,25 +342,25 @@ SingaEnv<span class="se">\S</span>cripts </pre></div> </div> <ul class="simple"> -<li>goto build/python folder and run:</li> +<li><p>goto build/python folder and run:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python setup.py install </pre></div> </div> <ul class="simple"> -<li>Make _singa_wrap.pyd, libglog.dll and libopenblas.dll available by adding them to the path or by copying them to singa package folder in the python site-packages</li> -<li>Verify that SINGA is installed by running:</li> +<li><p>Make _singa_wrap.pyd, libglog.dll and libopenblas.dll available by adding them to the path or by copying them to singa package folder in the python site-packages</p></li> +<li><p>Verify that SINGA is installed by running:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python -c <span class="s2">"from singa import tensor"</span> </pre></div> </div> <p>A video tutorial for the build process can be found here:</p> -<table border="1" class="docutils"> +<table class="docutils align-center"> <colgroup> -<col width="100%" /> +<col style="width: 100%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></td> +<tbody> +<tr class="row-odd"><td><p><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></p></td> </tr> </tbody> </table> @@ -376,47 +368,41 @@ SingaEnv<span class="se">\S</span>cripts <div class="section" id="run-unit-tests"> <h2>4. Run Unit Tests<a class="headerlink" href="#run-unit-tests" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>In the test folder, generate the Visual Studio solution:</li> +<li><p>In the test folder, generate the Visual Studio solution:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> </pre></div> </div> <ul> -<li><p class="first">Open the generated solution in Visual Studio.</p> -</li> -<li><p class="first">Change the build settings to Release and x64.</p> -</li> -<li><p class="first">Build glog project.</p> -</li> -<li><p class="first">In test_singa project:</p> +<li><p>Open the generated solution in Visual Studio.</p></li> +<li><p>Change the build settings to Release and x64.</p></li> +<li><p>Build glog project.</p></li> +<li><p>In test_singa project:</p> <blockquote> <div><ul class="simple"> -<li>Add USE_GLOG to the Preprocessor Definitions.</li> -<li>In Additional Include Directories, add path of GLOG_INCLUDE_DIR, CBLAS_INCLUDE_DIR and Protobuf_INCLUDE_DIR which were used in step 2 above. Add also build and build/include folders.</li> -<li>Goto Additional Library Directories and add the path to openblas, protobuf and glog libraries. Add also build/src/singa_objects.dir/Release.</li> -<li>Goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib. Fix the names of the two libraries: gtest.lib and singa_objects.lib.</li> +<li><p>Add USE_GLOG to the Preprocessor Definitions.</p></li> +<li><p>In Additional Include Directories, add path of GLOG_INCLUDE_DIR, CBLAS_INCLUDE_DIR and Protobuf_INCLUDE_DIR which were used in step 2 above. Add also build and build/include folders.</p></li> +<li><p>Goto Additional Library Directories and add the path to openblas, protobuf and glog libraries. Add also build/src/singa_objects.dir/Release.</p></li> +<li><p>Goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib. Fix the names of the two libraries: gtest.lib and singa_objects.lib.</p></li> </ul> </div></blockquote> </li> -<li><p class="first">Build test_singa project.</p> -</li> -<li><p class="first">Make libglog.dll and libopenblas.dll available by adding them to the path or by copying them to test/release folder</p> -</li> -<li><p class="first">The unit tests can be executed</p> +<li><p>Build test_singa project.</p></li> +<li><p>Make libglog.dll and libopenblas.dll available by adding them to the path or by copying them to test/release folder</p></li> +<li><p>The unit tests can be executed</p> <blockquote> <div><ul> -<li><p class="first">From the command line:</p> +<li><p>From the command line:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>test_singa.exe </pre></div> </div> </div></blockquote> </li> -<li><dl class="first docutils"> -<dt>From Visual Studio:</dt> -<dd><ul class="first last simple"> -<li>right click on the test_singa project and choose âSet as StartUp Projectâ.</li> -<li>from the Debug menu, choose âStart Without Debuggingâ</li> +<li><dl class="simple"> +<dt>From Visual Studio:</dt><dd><ul class="simple"> +<li><p>right click on the test_singa project and choose âSet as StartUp Projectâ.</p></li> +<li><p>from the Debug menu, choose âStart Without Debuggingâ</p></li> </ul> </dd> </dl> @@ -426,12 +412,12 @@ SingaEnv<span class="se">\S</span>cripts </li> </ul> <p>A video tutorial for running the unit tests can be found here:</p> -<table border="1" class="docutils"> +<table class="docutils align-center"> <colgroup> -<col width="100%" /> +<col style="width: 100%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></td> +<tbody> +<tr class="row-odd"><td><p><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></p></td> </tr> </tbody> </table> @@ -444,34 +430,30 @@ SingaEnv<span class="se">\S</span>cripts <h2>5.1 Install Dependencies<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2> <p>In addition to the dependencies in section 1 above, we will need the following:</p> <ul> -<li><p class="first">CUDA</p> +<li><p>CUDA</p> <blockquote> <div><p>Download a suitable version such as 9.1 from <a class="reference external" href="https://developer.nvidia.com/cuda-downloads">https://developer.nvidia.com/cuda-downloads</a> . Make sure to install the Visual Studio integration module.</p> </div></blockquote> </li> -<li><p class="first">cuDNN</p> +<li><p>cuDNN</p> <blockquote> <div><p>Download a suitable version such as 7.1 from <a class="reference external" href="https://developer.nvidia.com/cudnn">https://developer.nvidia.com/cudnn</a></p> </div></blockquote> </li> -<li><p class="first">cnmem:</p> +<li><p>cnmem:</p> <blockquote> <div><ul> -<li><p class="first">Download the latest version from <a class="reference external" href="https://github.com/NVIDIA/cnmem">https://github.com/NVIDIA/cnmem</a></p> -</li> -<li><p class="first">Build the Visual Studio solution:</p> +<li><p>Download the latest version from <a class="reference external" href="https://github.com/NVIDIA/cnmem">https://github.com/NVIDIA/cnmem</a></p></li> +<li><p>Build the Visual Studio solution:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> </pre></div> </div> </div></blockquote> </li> -<li><p class="first">Open the generated solution in Visual Studio.</p> -</li> -<li><p class="first">Change the build settings to Release and x64.</p> -</li> -<li><p class="first">Build the cnmem project.</p> -</li> +<li><p>Open the generated solution in Visual Studio.</p></li> +<li><p>Change the build settings to Release and x64.</p></li> +<li><p>Build the cnmem project.</p></li> </ul> </div></blockquote> </li> @@ -480,7 +462,7 @@ SingaEnv<span class="se">\S</span>cripts <div class="section" id="id2"> <h2>5.2 Build SINGA source<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h2> <ul> -<li><p class="first">Call cmake and add the paths in your system similar to the following example:</p> +<li><p>Call cmake and add the paths in your system similar to the following example:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> ^ -DGLOG_INCLUDE_DIR<span class="o">=</span><span class="s2">"D:/WinSinga/dependencies/glog-0.3.5/src/windows"</span> ^ @@ -501,83 +483,75 @@ SingaEnv<span class="se">\S</span>cripts </div> </div></blockquote> </li> -<li><dl class="first docutils"> -<dt>Generate swig interfaces for C++ and Python:</dt> -<dd><p class="first">Goto src/api</p> -<div class="last highlight-bash notranslate"><div class="highlight"><pre><span></span>swig -python -c++ singa.i +<li><dl> +<dt>Generate swig interfaces for C++ and Python:</dt><dd><p>Goto src/api</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>swig -python -c++ singa.i </pre></div> </div> </dd> </dl> </li> -<li><p class="first">Open the generated solution in Visual Studio</p> -</li> -<li><p class="first">Change the build settings to Release and x64</p> -</li> +<li><p>Open the generated solution in Visual Studio</p></li> +<li><p>Change the build settings to Release and x64</p></li> </ul> </div> <div class="section" id="building-singa-objects"> <h2>5.2.1 Building singa_objects<a class="headerlink" href="#building-singa-objects" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>Add the singa_wrap.cxx file from src/api to the singa_objects project</li> -<li>In the singa_objects project, open Additional Include Directories.</li> -<li>Add Python include path</li> -<li>Add numpy include path</li> -<li>Add protobuf include path</li> -<li>Add include path for CUDA, cuDNN and cnmem</li> -<li>In the preprocessor definitions of the singa_objects project, add USE_GLOG, USE_CUDA and USE_CUDNN. Remove DISABLE_WARNINGS.</li> -<li>Build singa_objects project</li> +<li><p>Add the singa_wrap.cxx file from src/api to the singa_objects project</p></li> +<li><p>In the singa_objects project, open Additional Include Directories.</p></li> +<li><p>Add Python include path</p></li> +<li><p>Add numpy include path</p></li> +<li><p>Add protobuf include path</p></li> +<li><p>Add include path for CUDA, cuDNN and cnmem</p></li> +<li><p>In the preprocessor definitions of the singa_objects project, add USE_GLOG, USE_CUDA and USE_CUDNN. Remove DISABLE_WARNINGS.</p></li> +<li><p>Build singa_objects project</p></li> </ul> </div> <div class="section" id="building-singa-kernel"> <h2>5.2.2 Building singa-kernel<a class="headerlink" href="#building-singa-kernel" title="Permalink to this headline">¶</a></h2> <ul> -<li><p class="first">Create a new Visual Studio project of type âCUDA 9.1 Runtimeâ. Give it a name such as singa-kernel.</p> -</li> -<li><p class="first">The project comes with an initial file called kernel.cu. Remove this file from the project.</p> -</li> -<li><p class="first">Add this file: src/core/tensor/math_kernel.cu</p> -</li> -<li><p class="first">In the project settings:</p> +<li><p>Create a new Visual Studio project of type âCUDA 9.1 Runtimeâ. Give it a name such as singa-kernel.</p></li> +<li><p>The project comes with an initial file called kernel.cu. Remove this file from the project.</p></li> +<li><p>Add this file: src/core/tensor/math_kernel.cu</p></li> +<li><p>In the project settings:</p> <blockquote> <div><ul class="simple"> -<li>Set Platform Toolset to âVisual Studio 2015 (v140)â</li> -<li>Set Configuration Type to â Static Library (.lib)â</li> -<li>In the Include Directories, add build/include.</li> +<li><p>Set Platform Toolset to âVisual Studio 2015 (v140)â</p></li> +<li><p>Set Configuration Type to â Static Library (.lib)â</p></li> +<li><p>In the Include Directories, add build/include.</p></li> </ul> </div></blockquote> </li> -<li><p class="first">Build singa-kernel project</p> -</li> +<li><p>Build singa-kernel project</p></li> </ul> </div> <div class="section" id="building-singa"> <h2>5.2.3 Building singa<a class="headerlink" href="#building-singa" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li><dl class="first docutils"> -<dt>In singa project:</dt> -<dd><ul class="first last"> -<li>add singa_wrap.obj to Object Libraries</li> -<li>change target name to _singa_wrap</li> -<li>change target extension to .pyd</li> -<li>change configuration type to Dynamic Library (.dll)</li> -<li>goto Additional Library Directories and add the path to python, openblas, protobuf and glog libraries</li> -<li>Add also the library path to singa-kernel, cnmem, cuda and cudnn.</li> -<li>goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib.</li> -<li>Add also: singa-kernel.lib, cnmem.lib, cudnn.lib, cuda.lib , cublas.lib, curand.lib and cudart.lib.</li> +<li><dl class="simple"> +<dt>In singa project:</dt><dd><ul> +<li><p>add singa_wrap.obj to Object Libraries</p></li> +<li><p>change target name to _singa_wrap</p></li> +<li><p>change target extension to .pyd</p></li> +<li><p>change configuration type to Dynamic Library (.dll)</p></li> +<li><p>goto Additional Library Directories and add the path to python, openblas, protobuf and glog libraries</p></li> +<li><p>Add also the library path to singa-kernel, cnmem, cuda and cudnn.</p></li> +<li><p>goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib.</p></li> +<li><p>Add also: singa-kernel.lib, cnmem.lib, cudnn.lib, cuda.lib , cublas.lib, curand.lib and cudart.lib.</p></li> </ul> </dd> </dl> </li> -<li>build singa project</li> +<li><p>build singa project</p></li> </ul> </div> <div class="section" id="id3"> <h2>5.3. Install Python module<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>Change _singa_wrap.so to _singa_wrap.pyd in build/python/setup.py</li> -<li>Copy the files in src/proto/python_out to build/python/singa/proto</li> -<li>Optionally create and activate a virtual environment:</li> +<li><p>Change _singa_wrap.so to _singa_wrap.pyd in build/python/setup.py</p></li> +<li><p>Copy the files in src/proto/python_out to build/python/singa/proto</p></li> +<li><p>Optionally create and activate a virtual environment:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mkdir SingaEnv virtualenv SingaEnv @@ -585,25 +559,25 @@ SingaEnv<span class="se">\S</span>cripts </pre></div> </div> <ul class="simple"> -<li>goto build/python folder and run:</li> +<li><p>goto build/python folder and run:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python setup.py install </pre></div> </div> <ul class="simple"> -<li>Make _singa_wrap.pyd, libglog.dll, libopenblas.dll, cnmem.dll, CUDA Runtime (e.g. cudart64_91.dll) and cuDNN (e.g. cudnn64_7.dll) available by adding them to the path or by copying them to singa package folder in the python site-packages</li> -<li>Verify that SINGA is installed by running:</li> +<li><p>Make _singa_wrap.pyd, libglog.dll, libopenblas.dll, cnmem.dll, CUDA Runtime (e.g. cudart64_91.dll) and cuDNN (e.g. cudnn64_7.dll) available by adding them to the path or by copying them to singa package folder in the python site-packages</p></li> +<li><p>Verify that SINGA is installed by running:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python -c <span class="s2">"from singa import device; dev = device.create_cuda_gpu()"</span> </pre></div> </div> <p>A video tutorial for this part can be found here:</p> -<table border="1" class="docutils"> +<table class="docutils align-center"> <colgroup> -<col width="100%" /> +<col style="width: 100%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></td> +<tbody> +<tr class="row-odd"><td><p><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></p></td> </tr> </tbody> </table> @@ -611,47 +585,41 @@ SingaEnv<span class="se">\S</span>cripts <div class="section" id="id4"> <h2>5.4. Run Unit Tests<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>In the test folder, generate the Visual Studio solution:</li> +<li><p>In the test folder, generate the Visual Studio solution:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> </pre></div> </div> <ul> -<li><p class="first">Open the generated solution in Visual Studio, or add the project to the singa solution that was created in step 5.2</p> -</li> -<li><p class="first">Change the build settings to Release and x64.</p> -</li> -<li><p class="first">Build glog project.</p> -</li> -<li><p class="first">In test_singa project:</p> +<li><p>Open the generated solution in Visual Studio, or add the project to the singa solution that was created in step 5.2</p></li> +<li><p>Change the build settings to Release and x64.</p></li> +<li><p>Build glog project.</p></li> +<li><p>In test_singa project:</p> <blockquote> <div><ul class="simple"> -<li>Add USE_GLOG; USE_CUDA; USE_CUDNN to the Preprocessor Definitions.</li> -<li>In Additional Include Directories, add path of GLOG_INCLUDE_DIR, CBLAS_INCLUDE_DIR and Protobuf_INCLUDE_DIR which were used in step 5.2 above. Add also build, build/include, CUDA and cuDNN include folders.</li> -<li>Goto Additional Library Directories and add the path to openblas, protobuf and glog libraries. Add also build/src/singa_objects.dir/Release, singa-kernel, cnmem, CUDA and cuDNN library paths.</li> -<li>Goto Additional Dependencies and add libopenblas.lib; libglog.lib; libprotobuf.lib; cnmem.lib; cudnn.lib; cuda.lib; cublas.lib; curand.lib; cudart.lib; singa-kernel.lib. Fix the names of the two libraries: gtest.lib and singa_objects.lib.</li> +<li><p>Add USE_GLOG; USE_CUDA; USE_CUDNN to the Preprocessor Definitions.</p></li> +<li><p>In Additional Include Directories, add path of GLOG_INCLUDE_DIR, CBLAS_INCLUDE_DIR and Protobuf_INCLUDE_DIR which were used in step 5.2 above. Add also build, build/include, CUDA and cuDNN include folders.</p></li> +<li><p>Goto Additional Library Directories and add the path to openblas, protobuf and glog libraries. Add also build/src/singa_objects.dir/Release, singa-kernel, cnmem, CUDA and cuDNN library paths.</p></li> +<li><p>Goto Additional Dependencies and add libopenblas.lib; libglog.lib; libprotobuf.lib; cnmem.lib; cudnn.lib; cuda.lib; cublas.lib; curand.lib; cudart.lib; singa-kernel.lib. Fix the names of the two libraries: gtest.lib and singa_objects.lib.</p></li> </ul> </div></blockquote> </li> -<li><p class="first">Build test_singa project.</p> -</li> -<li><p class="first">Make libglog.dll, libopenblas.dll, cnmem.dll, cudart64_91.dll and cudnn64_7.dll available by adding them to the path or by copying them to test/release folder</p> -</li> -<li><p class="first">The unit tests can be executed</p> +<li><p>Build test_singa project.</p></li> +<li><p>Make libglog.dll, libopenblas.dll, cnmem.dll, cudart64_91.dll and cudnn64_7.dll available by adding them to the path or by copying them to test/release folder</p></li> +<li><p>The unit tests can be executed</p> <blockquote> <div><ul> -<li><p class="first">From the command line:</p> +<li><p>From the command line:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>test_singa.exe </pre></div> </div> </div></blockquote> </li> -<li><dl class="first docutils"> -<dt>From Visual Studio:</dt> -<dd><ul class="first last simple"> -<li>right click on the test_singa project and choose âSet as StartUp Projectâ.</li> -<li>from the Debug menu, choose âStart Without Debuggingâ</li> +<li><dl class="simple"> +<dt>From Visual Studio:</dt><dd><ul class="simple"> +<li><p>right click on the test_singa project and choose âSet as StartUp Projectâ.</p></li> +<li><p>from the Debug menu, choose âStart Without Debuggingâ</p></li> </ul> </dd> </dl> @@ -661,12 +629,12 @@ SingaEnv<span class="se">\S</span>cripts </li> </ul> <p>A video tutorial for running the unit tests can be found here:</p> -<table border="1" class="docutils"> +<table class="docutils align-center"> <colgroup> -<col width="100%" /> +<col style="width: 100%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></td> +<tbody> +<tr class="row-odd"><td><p><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></p></td> </tr> </tbody> </table>
