blob: 625aaf7b9bbe6f749c345023009d2bfb59cdf31a [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
<meta content="width=device-width, initial-scale=1" name="viewport"/>
<title>Installing MXNet in Windows — mxnet documentation</title>
<link crossorigin="anonymous" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" rel="stylesheet"/>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet"/>
<link href="../_static/basic.css" rel="stylesheet" type="text/css"/>
<link href="../_static/pygments.css" rel="stylesheet" type="text/css"/>
<link href="../_static/mxnet.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: ''
};
</script>
<script src="../_static/jquery-1.11.1.js" type="text/javascript"></script>
<script src="../_static/underscore.js" type="text/javascript"></script>
<script src="../_static/searchtools_custom.js" type="text/javascript"></script>
<script src="../_static/doctools.js" type="text/javascript"></script>
<script src="../_static/selectlang.js" type="text/javascript"></script>
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
<script type="text/javascript"> jQuery(function() { Search.loadIndex("/searchindex.js"); Search.init();}); </script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new
Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-96378503-1', 'auto');
ga('send', 'pageview');
</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="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> -->
<!-- -->
<link href="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/image/mxnet-icon.png" rel="icon" type="image/png">
</link></link></head>
<body role="document"><div class="navbar navbar-fixed-top">
<div class="container" id="navContainer">
<div class="innder" id="header-inner">
<h1 id="logo-wrap">
<a href="../" id="logo"><img src="../_static/mxnet.png"/></a>
</h1>
<nav class="nav-bar" id="main-nav">
<a class="main-nav-link" href="../get_started/install.html">Install</a>
<a class="main-nav-link" href="../tutorials/index.html">Tutorials</a>
<span id="dropdown-menu-position-anchor">
<a aria-expanded="true" aria-haspopup="true" class="main-nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Gluon <span class="caret"></span></a>
<ul class="dropdown-menu" id="package-dropdown-menu">
<li><a class="main-nav-link" href="../gluon/index.html">About</a></li>
<li><a class="main-nav-link" href="http://gluon.mxnet.io/">Tutorials</a></li>
</ul>
</span>
<a class="main-nav-link" href="../how_to/index.html">How To</a>
<span id="dropdown-menu-position-anchor">
<a aria-expanded="true" aria-haspopup="true" class="main-nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">API <span class="caret"></span></a>
<ul class="dropdown-menu" id="package-dropdown-menu">
<li><a class="main-nav-link" href="../api/python/index.html">Python</a></li>
<li><a class="main-nav-link" href="../api/scala/index.html">Scala</a></li>
<li><a class="main-nav-link" href="../api/r/index.html">R</a></li>
<li><a class="main-nav-link" href="../api/julia/index.html">Julia</a></li>
<li><a class="main-nav-link" href="../api/c++/index.html">C++</a></li>
<li><a class="main-nav-link" href="../api/perl/index.html">Perl</a></li>
</ul>
</span>
<a class="main-nav-link" href="../architecture/index.html">Architecture</a>
<!-- <a class="main-nav-link" href="../community/index.html">Community</a> -->
<a class="main-nav-link" href="https://github.com/dmlc/mxnet">Github</a>
<span id="dropdown-menu-position-anchor-version" style="position: relative"><a href="#" class="main-nav-link dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true">Versions(1.0.0)<span class="caret"></span></a><ul id="package-dropdown-menu" class="dropdown-menu"><li><a class="main-nav-link" href=https://mxnet.incubator.apache.org/>1.1.0</a></li><li><a class="main-nav-link" href=https://mxnet.incubator.apache.org/versions/1.0.0/index.html>1.0.0</a></li><li><a class="main-nav-link" href=https://mxnet.incubator.apache.org/versions/0.12.1/index.html>0.12.1</a></li><li><a class="main-nav-link" href=https://mxnet.incubator.apache.org/versions/0.12.0/index.html>0.12.0</a></li><li><a class="main-nav-link" href=https://mxnet.incubator.apache.org/versions/0.11.0/index.html>0.11.0</a></li><li><a class="main-nav-link" href=https://mxnet.incubator.apache.org/versions/master/index.html>master</a></li></ul></span></nav>
<script> function getRootPath(){ return "../" } </script>
<div class="burgerIcon dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button"></a>
<ul class="dropdown-menu dropdown-menu-right" id="burgerMenu">
<li><a href="../get_started/install.html">Install</a></li>
<li><a href="../tutorials/index.html">Tutorials</a></li>
<li><a href="../how_to/index.html">How To</a></li>
<li class="dropdown-submenu">
<a href="#" tabindex="-1">API</a>
<ul class="dropdown-menu">
<li><a href="../api/python/index.html" tabindex="-1">Python</a>
</li>
<li><a href="../api/scala/index.html" tabindex="-1">Scala</a>
</li>
<li><a href="../api/r/index.html" tabindex="-1">R</a>
</li>
<li><a href="../api/julia/index.html" tabindex="-1">Julia</a>
</li>
<li><a href="../api/c++/index.html" tabindex="-1">C++</a>
</li>
<li><a href="../api/perl/index.html" tabindex="-1">Perl</a>
</li>
</ul>
</li>
<li><a href="../architecture/index.html">Architecture</a></li>
<li><a class="main-nav-link" href="https://github.com/dmlc/mxnet">Github</a></li>
<li id="dropdown-menu-position-anchor-version-mobile" class="dropdown-submenu" style="position: relative"><a href="#" tabindex="-1">Versions(1.0.0)</a><ul class="dropdown-menu"><li><a tabindex="-1" href=https://mxnet.incubator.apache.org/>1.1.0</a></li><li><a tabindex="-1" href=https://mxnet.incubator.apache.org/versions/1.0.0/index.html>1.0.0</a></li><li><a tabindex="-1" href=https://mxnet.incubator.apache.org/versions/0.12.1/index.html>0.12.1</a></li><li><a tabindex="-1" href=https://mxnet.incubator.apache.org/versions/0.12.0/index.html>0.12.0</a></li><li><a tabindex="-1" href=https://mxnet.incubator.apache.org/versions/0.11.0/index.html>0.11.0</a></li><li><a tabindex="-1" href=https://mxnet.incubator.apache.org/versions/master/index.html>master</a></li></ul></li></ul>
</div>
<div class="plusIcon dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button"><span aria-hidden="true" class="glyphicon glyphicon-plus"></span></a>
<ul class="dropdown-menu dropdown-menu-right" id="plusMenu"></ul>
</div>
<div id="search-input-wrap">
<form action="../search.html" autocomplete="off" class="" method="get" role="search">
<div class="form-group inner-addon left-addon">
<i class="glyphicon glyphicon-search"></i>
<input class="form-control" name="q" placeholder="Search" type="text"/>
</div>
<input name="check_keywords" type="hidden" value="yes"/>
<input name="area" type="hidden" value="default">
</input></form>
<div id="search-preview"></div>
</div>
<div id="searchIcon">
<span aria-hidden="true" class="glyphicon glyphicon-search"></span>
</div>
<!-- <div id="lang-select-wrap"> -->
<!-- <label id="lang-select-label"> -->
<!-- <\!-- <i class="fa fa-globe"></i> -\-> -->
<!-- <span></span> -->
<!-- </label> -->
<!-- <select id="lang-select"> -->
<!-- <option value="en">Eng</option> -->
<!-- <option value="zh">中文</option> -->
<!-- </select> -->
<!-- </div> -->
<!-- <a id="mobile-nav-toggle">
<span class="mobile-nav-toggle-bar"></span>
<span class="mobile-nav-toggle-bar"></span>
<span class="mobile-nav-toggle-bar"></span>
</a> -->
</div>
</div>
</div>
<div class="container">
<div class="row">
<div aria-label="main navigation" class="sphinxsidebar leftsidebar" role="navigation">
<div class="sphinxsidebarwrapper">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../api/python/index.html">Python Documents</a></li>
<li class="toctree-l1"><a class="reference internal" href="../api/r/index.html">R Documents</a></li>
<li class="toctree-l1"><a class="reference internal" href="../api/julia/index.html">Julia Documents</a></li>
<li class="toctree-l1"><a class="reference internal" href="../api/c++/index.html">C++ Documents</a></li>
<li class="toctree-l1"><a class="reference internal" href="../api/scala/index.html">Scala Documents</a></li>
<li class="toctree-l1"><a class="reference internal" href="../api/perl/index.html">Perl Documents</a></li>
<li class="toctree-l1"><a class="reference internal" href="../how_to/index.html">HowTo Documents</a></li>
<li class="toctree-l1"><a class="reference internal" href="../architecture/index.html">System Documents</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorials/index.html">Tutorials</a></li>
</ul>
</div>
</div>
<div class="content">
<div class="section" id="installing-mxnet-in-windows">
<span id="installing-mxnet-in-windows"></span><h1>Installing MXNet in Windows<a class="headerlink" href="#installing-mxnet-in-windows" title="Permalink to this headline"></a></h1>
<p>On Windows, you can download and install the prebuilt MXNet package, or download, build, and install MXNet yourself.</p>
<div class="section" id="build-the-shared-library">
<span id="build-the-shared-library"></span><h2>Build the Shared Library<a class="headerlink" href="#build-the-shared-library" title="Permalink to this headline"></a></h2>
<p>You can either use a prebuilt binary package or build from source to build the MXNet shared library - <code class="docutils literal"><span class="pre">libmxnet.dll</span></code>.</p>
<div class="section" id="installing-the-prebuilt-package-on-windows">
<span id="installing-the-prebuilt-package-on-windows"></span><h3>Installing the Prebuilt Package on Windows<a class="headerlink" href="#installing-the-prebuilt-package-on-windows" title="Permalink to this headline"></a></h3>
<p>MXNet provides a prebuilt package for Windows. The prebuilt package includes the MXNet library, all of the dependent third-party libraries, a sample C++ solution for Visual Studio, and the Python installation script. To install the prebuilt package:</p>
<ol class="simple">
<li>Download the latest prebuilt package from the <a class="reference external" href="https://github.com/dmlc/mxnet/releases">Releases</a> tab of MXNet.</li>
<li>Unpack the package into a folder, with an appropriate name, such as <code class="docutils literal"><span class="pre">D:\MXNet</span></code>.</li>
<li>Open the folder, and install the package by double-clicking <code class="docutils literal"><span class="pre">setupenv.cmd</span></code>. This sets up all of the environment variables required by MXNet.</li>
<li>Test the installation by opening the provided sample C++ Visual Studio solution and building it.</li>
</ol>
<p><p> </p>
This produces a library called <code class="docutils literal"><span class="pre">libmxnet.dll</span></code>.</p>
</div>
<div class="section" id="building-and-installing-packages-on-windows">
<span id="building-and-installing-packages-on-windows"></span><h3>Building and Installing Packages on Windows<a class="headerlink" href="#building-and-installing-packages-on-windows" title="Permalink to this headline"></a></h3>
<p>To build and install MXNet yourself, you need the following dependencies. Install the required dependencies:</p>
<ol class="simple">
<li>If <a class="reference external" href="https://www.visualstudio.com/downloads/">Microsoft Visual Studio 2013</a> is not already installed, download and install it. You can download and install the free community edition.</li>
<li>Install <a class="reference external" href="http://landinghub.visualstudio.com/visual-cpp-build-tools">Visual C++ Compiler</a>.</li>
<li>Back up all of the files in the <code class="docutils literal"><span class="pre">C:\Program</span> <span class="pre">Files</span> <span class="pre">(x86)\Microsoft</span> <span class="pre">Visual</span> <span class="pre">Studio</span> <span class="pre">12.0\VC</span></code> folder to a different location.</li>
<li>Copy all of the files in the <code class="docutils literal"><span class="pre">C:\Program</span> <span class="pre">Files</span> <span class="pre">(x86)\Microsoft</span> <span class="pre">Visual</span> <span class="pre">C++</span> <span class="pre">Compiler</span> <span class="pre">Nov</span> <span class="pre">2013</span> <span class="pre">CTP</span></code> folder (or the folder where you extracted the zip archive) to the <code class="docutils literal"><span class="pre">C:\Program</span> <span class="pre">Files</span> <span class="pre">(x86)\Microsoft</span> <span class="pre">Visual</span> <span class="pre">Studio</span> <span class="pre">12.0\VC</span></code> folder, and overwrite all existing files.</li>
<li>Download and install <a class="reference external" href="http://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.0.0/opencv-3.0.0.exe/download">OpenCV</a>.</li>
<li>Unzip the OpenCV package.</li>
<li>Set the environment variable <code class="docutils literal"><span class="pre">OpenCV_DIR</span></code> to point to the <code class="docutils literal"><span class="pre">OpenCV</span> <span class="pre">build</span> <span class="pre">directory</span></code>.</li>
<li>If you don’t have the Intel Math Kernel Library (MKL) installed, download and install <a class="reference external" href="http://sourceforge.net/projects/openblas/files/v0.2.14/">OpenBlas</a>.</li>
<li>Set the environment variable <code class="docutils literal"><span class="pre">OpenBLAS_HOME</span></code> to point to the <code class="docutils literal"><span class="pre">OpenBLAS</span></code> directory that contains the <code class="docutils literal"><span class="pre">include</span></code> and <code class="docutils literal"><span class="pre">lib</span></code> directories. Typically, you can find the directory in <code class="docutils literal"><span class="pre">C:\Program</span> <span class="pre">files</span> <span class="pre">(x86)\OpenBLAS\</span></code>.</li>
<li>Download and install <a class="reference external" href="https://developer.nvidia.com/cudnn">CuDNN</a>. To get access to the download link, register as an NVIDIA community user.</li>
</ol>
<p>After you have installed all of the required dependencies, build the MXNet source code:</p>
<ol class="simple">
<li>Download the MXNet source code from <a class="reference external" href="https://github.com/dmlc/mxnet">GitHub</a>.</li>
<li>Use <a class="reference external" href="https://cmake.org/">CMake</a> to create a Visual Studio solution in <code class="docutils literal"><span class="pre">./build</span></code>.</li>
<li>In Visual Studio, open the solution file,<code class="docutils literal"><span class="pre">.sln</span></code>, and compile it.
These commands produce a library called <code class="docutils literal"><span class="pre">mxnet.dll</span></code> in the <code class="docutils literal"><span class="pre">./build/Release/</span></code> or <code class="docutils literal"><span class="pre">./build/Debug</span></code> folder.</li>
</ol>
<p><p> </p>
Next, we install <code class="docutils literal"><span class="pre">graphviz</span></code> library that we use for visualizing network graphs you build on MXNet. We will also install <a class="reference external" href="http://jupyter.readthedocs.io/">Jupyter Notebook</a> used for running MXNet tutorials and examples.</p>
<ul class="simple">
<li>Install <code class="docutils literal"><span class="pre">graphviz</span></code> by downloading MSI installer from <a class="reference external" href="https://graphviz.gitlab.io/_pages/Download/Download_windows.html">Graphviz Download Page</a>.
<strong>Note</strong> Make sure to add graphviz executable path to PATH environment variable. Refer <a class="reference external" href="http://stackoverflow.com/questions/35064304/runtimeerror-make-sure-the-graphviz-executables-are-on-your-systems-path-aft">here for more details</a></li>
<li>Install <code class="docutils literal"><span class="pre">Jupyter</span></code> by installing <a class="reference external" href="https://www.continuum.io/downloads">Anaconda for Python 2.7</a>
<strong>Note</strong> Do not install Anaconda for Python 3.5. MXNet has few compatibility issue with Python 3.5.</li>
</ul>
<p><p> </p>
</p>
<p>We have installed MXNet core library. Next, we will install MXNet interface package for programming language of your choice:</p>
<ul class="simple">
<li><a class="reference external" href="#install-the-mxnet-package-for-python">Python</a></li>
<li><a class="reference external" href="#install-mxnet-for-r">R</a></li>
<li><a class="reference external" href="#install-the-mxnet-package-for-julia">Julia</a></li>
<li><a class="reference external" href="#install-the-mxnet-package-for-scala">Scala</a></li>
</ul>
</div>
</div>
<div class="section" id="install-mxnet-for-python">
<span id="install-mxnet-for-python"></span><h2>Install MXNet for Python<a class="headerlink" href="#install-mxnet-for-python" title="Permalink to this headline"></a></h2>
<ol class="simple">
<li>Install <code class="docutils literal"><span class="pre">Python</span></code> using windows installer available <a class="reference external" href="https://www.python.org/downloads/release/python-2712/">here</a>.</li>
<li>Install <code class="docutils literal"><span class="pre">Numpy</span></code> using windows installer available <a class="reference external" href="http://scipy.org/install.html">here</a>.</li>
<li>Next, we install Python package interface for MXNet. You can find the Python interface package for <a class="reference external" href="https://github.com/dmlc/mxnet/tree/master/python/mxnet">MXNet on GitHub</a>.</li>
</ol>
<div class="highlight-bash"><div class="highlight"><pre><span></span> <span class="c1"># Assuming you are in root mxnet source code folder</span>
<span class="nb">cd</span> python
sudo python setup.py install
</pre></div>
</div>
<p>Done! We have installed MXNet with Python interface. Run below commands to verify our installation is successful.</p>
<div class="highlight-bash"><div class="highlight"><pre><span></span> <span class="c1"># Open Python terminal</span>
python
<span class="c1"># You should be able to import mxnet library without any issues.</span>
>>> import mxnet as mx<span class="p">;</span>
>>> <span class="nv">a</span> <span class="o">=</span> mx.nd.ones<span class="o">((</span><span class="m">2</span>, <span class="m">3</span><span class="o">))</span><span class="p">;</span>
>>> print <span class="o">((</span>a*2<span class="o">)</span>.asnumpy<span class="o">())</span><span class="p">;</span>
<span class="o">[[</span> <span class="m">2</span>. <span class="m">2</span>. <span class="m">2</span>.<span class="o">]</span>
<span class="o">[</span> <span class="m">2</span>. <span class="m">2</span>. <span class="m">2</span>.<span class="o">]]</span>
</pre></div>
</div>
<p>We actually did a small tensor computation using MXNet! You are all set with MXNet on your Windows machine.</p>
</div>
<div class="section" id="install-mxnet-for-r">
<span id="install-mxnet-for-r"></span><h2>Install MXNet for R<a class="headerlink" href="#install-mxnet-for-r" title="Permalink to this headline"></a></h2>
<p>MXNet for R is available for both CPUs and GPUs.</p>
<div class="section" id="installing-mxnet-on-a-computer-with-a-cpu-processor">
<span id="installing-mxnet-on-a-computer-with-a-cpu-processor"></span><h3>Installing MXNet on a Computer with a CPU Processor<a class="headerlink" href="#installing-mxnet-on-a-computer-with-a-cpu-processor" title="Permalink to this headline"></a></h3>
<p>To install MXNet on a computer with a CPU processor, choose from two options:</p>
<ul class="simple">
<li>Use the prebuilt binary package</li>
<li>Build the library from source code</li>
</ul>
<div class="section" id="installing-mxnet-with-the-prebuilt-binary-package">
<span id="installing-mxnet-with-the-prebuilt-binary-package"></span><h4>Installing MXNet with the Prebuilt Binary Package<a class="headerlink" href="#installing-mxnet-with-the-prebuilt-binary-package" title="Permalink to this headline"></a></h4>
<p>For Windows users, MXNet provides prebuilt binary packages.
You can install the package directly in the R console.</p>
<p>For CPU-only package:</p>
<div class="highlight-r"><div class="highlight"><pre><span></span> cran <span class="o"><-</span> <span class="kp">getOption</span><span class="p">(</span><span class="s">"repos"</span><span class="p">)</span>
cran<span class="p">[</span><span class="s">"dmlc"</span><span class="p">]</span> <span class="o"><-</span> <span class="s">"https://s3-us-west-2.amazonaws.com/apache-mxnet/R/CRAN/"</span>
<span class="kp">options</span><span class="p">(</span>repos <span class="o">=</span> cran<span class="p">)</span>
install.packages<span class="p">(</span><span class="s">"mxnet"</span><span class="p">)</span>
</pre></div>
</div>
<p>For GPU-enabled package:</p>
<div class="highlight-r"><div class="highlight"><pre><span></span> cran <span class="o"><-</span> <span class="kp">getOption</span><span class="p">(</span><span class="s">"repos"</span><span class="p">)</span>
cran<span class="p">[</span><span class="s">"dmlc"</span><span class="p">]</span> <span class="o"><-</span> <span class="s">"https://s3-us-west-2.amazonaws.com/apache-mxnet/R/CRAN/GPU"</span>
<span class="kp">options</span><span class="p">(</span>repos <span class="o">=</span> cran<span class="p">)</span>
install.packages<span class="p">(</span><span class="s">"mxnet"</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="section" id="building-mxnet-from-source-code">
<span id="building-mxnet-from-source-code"></span><h4>Building MXNet from Source Code<a class="headerlink" href="#building-mxnet-from-source-code" title="Permalink to this headline"></a></h4>
<p>Run the following commands to install the MXNet dependencies and build the MXNet R package.</p>
<div class="highlight-r"><div class="highlight"><pre><span></span> Rscript <span class="o">-</span>e <span class="s">"install.packages('devtools', repo = 'https://cloud.r-project.org/')"</span>
</pre></div>
</div>
<div class="highlight-bash"><div class="highlight"><pre><span></span> <span class="nb">cd</span> R-package
Rscript -e <span class="s2">"library(devtools); library(methods); options(repos=c(CRAN='https://cloud.r-project.org/')); install_deps(dependencies = TRUE)"</span>
<span class="nb">cd</span> ..
make rpkg
</pre></div>
</div>
<p><strong>Note:</strong> R-package is a folder in the MXNet source.</p>
<p>These commands create the MXNet R package as a tar.gz file that you can install as an R package. To install the R package, run the following command, use your MXNet version number:</p>
<div class="highlight-bash"><div class="highlight"><pre><span></span> R CMD INSTALL mxnet_current_r.tar.gz
</pre></div>
</div>
</div>
</div>
<div class="section" id="installing-mxnet-on-a-computer-with-a-gpu-processor">
<span id="installing-mxnet-on-a-computer-with-a-gpu-processor"></span><h3>Installing MXNet on a Computer with a GPU Processor<a class="headerlink" href="#installing-mxnet-on-a-computer-with-a-gpu-processor" title="Permalink to this headline"></a></h3>
<p>To install MXNet R package on a computer with a GPU processor, you need the following:</p>
<ul class="simple">
<li>Microsoft Visual Studio 2013</li>
<li>The NVidia CUDA Toolkit</li>
<li>The MXNet package</li>
<li>CuDNN (to provide a Deep Neural Network library)</li>
</ul>
<p>To install the required dependencies and install MXNet for R:</p>
<ol class="simple">
<li>Install the <a class="reference external" href="https://developer.nvidia.com/cuda-toolkit">CUDA Toolkit</a>. The CUDA Toolkit depends on Visual Studio. To check whether your GPU is compatible with the CUDA Toolkit and for information on installing it, see NVidia’s <a class="reference external" href="http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/">CUDA Installation Guide</a>.</li>
<li>Clone the MXNet github repo.</li>
</ol>
<div class="highlight-sh"><div class="highlight"><pre><span></span>git clone --recursive https://github.com/apache/incubator-mxnet.git mxnet --branch 0.11.0
</pre></div>
</div>
<p>The <code class="docutils literal"><span class="pre">--recursive</span></code> is to clone all the submodules used by MXNet. You will be editing the <code class="docutils literal"><span class="pre">"/mxnet/R-package"</span></code> folder.</p>
<ol class="simple">
<li>Download prebuilt GPU-enabled MXNet libraries for Windows from https://github.com/yajiedesign/mxnet/releases. You will need <code class="docutils literal"><span class="pre">mxnet_x64_vc14_gpu.7z</span></code> and <code class="docutils literal"><span class="pre">prebuildbase_win10_x64_vc14.7z</span></code>.</li>
<li>Download and install <a class="reference external" href="https://developer.nvidia.com/cudnn">CuDNN</a>.</li>
<li>Create a folder called <code class="docutils literal"><span class="pre">R-package/inst/libs/x64</span></code>. MXNet supports only 64-bit operating systems, so you need the x64 folder.</li>
<li>Copy the following shared libraries (.dll files) into the <code class="docutils literal"><span class="pre">R-package/inst/libs/x64</span></code> folder:</li>
</ol>
<div class="highlight-python"><div class="highlight"><pre><span></span>cublas64_80.dll
cudart64_80.dll
cudnn64_5.dll
curand64_80.dll
libgcc_s_seh-1.dll
libgfortran-3.dll
libmxnet.dll
libmxnet.lib
libopenblas.dll
libquadmath-0.dll
nvrtc64_80.dll
</pre></div>
</div>
<p>These dlls can be found in <code class="docutils literal"><span class="pre">prebuildbase_win10_x64_vc14/3rdparty/cudart</span></code>, <code class="docutils literal"><span class="pre">prebuildbase_win10_x64_vc14/3rdparty/openblas/bin</span></code>, <code class="docutils literal"><span class="pre">mxnet_x64_vc14_gpu/build</span></code>, <code class="docutils literal"><span class="pre">mxnet_x64_vc14_gpu/lib</span></code> and the <code class="docutils literal"><span class="pre">cuDNN</span></code> downloaded from NVIDIA.</p>
<ol class="simple">
<li>Copy the header files from <code class="docutils literal"><span class="pre">dmlc</span></code>, <code class="docutils literal"><span class="pre">mxnet</span></code> and <code class="docutils literal"><span class="pre">nnvm</span></code> into <code class="docutils literal"><span class="pre">./R-package/inst/include</span></code>. It should look like:</li>
</ol>
<div class="highlight-python"><div class="highlight"><pre><span></span>./R-package/inst
└── include
├── dmlc
├── mxnet
└── nnvm
</pre></div>
</div>
<ol class="simple">
<li>Make sure that R is added to your <code class="docutils literal"><span class="pre">PATH</span></code> in the environment variables. Running the <code class="docutils literal"><span class="pre">where</span> <span class="pre">R</span></code> command at the command prompt should return the location.</li>
<li>Now open the Windows CMD and change the directory to the <code class="docutils literal"><span class="pre">mxnet</span></code> folder. Then use the following commands
to build R package:</li>
</ol>
<div class="highlight-bat"><div class="highlight"><pre><span></span><span class="k">echo</span> import(Rcpp) <span class="p">></span> R-package\NAMESPACE
<span class="k">echo</span> import(methods) <span class="p">>></span> R-package\NAMESPACE
Rscript -e <span class="s2">"install.packages('devtools', repos = 'https://cloud.r-project.org')"</span>
<span class="k">cd</span> R-package
Rscript -e <span class="s2">"library(devtools); library(methods); options(repos=c(CRAN='https://cloud.r-project.org')); install_deps(dependencies = TRUE)"</span>
<span class="k">cd</span> ..
R CMD INSTALL --no-multiarch R-package
Rscript -e <span class="s2">"require(mxnet); mxnet:::mxnet.export('R-package')"</span>
rm R-package/NAMESPACE
Rscript -e <span class="s2">"require(devtools); install_version('roxygen2', version = '5.0.1', repos = 'https://cloud.r-project.org/', quiet = TRUE)"</span>
Rscript -e <span class="s2">"require(roxygen2); roxygen2::roxygenise('R-package')"</span>
R CMD INSTALL --build --no-multiarch R-package
</pre></div>
</div>
<p><strong>Note:</strong> To maximize its portability, the MXNet library is built with the Rcpp end. Computers running Windows need <a class="reference external" href="https://en.wikipedia.org/wiki/Visual_C%2B%2B">MSVC</a> (Microsoft Visual C++) to handle CUDA toolchain compatibilities.</p>
</div>
</div>
<div class="section" id="install-the-mxnet-package-for-julia">
<span id="install-the-mxnet-package-for-julia"></span><h2>Install the MXNet Package for Julia<a class="headerlink" href="#install-the-mxnet-package-for-julia" title="Permalink to this headline"></a></h2>
<p>The MXNet package for Julia is hosted in a separate repository, MXNet.jl, which is available on <a class="reference external" href="https://github.com/dmlc/MXNet.jl">GitHub</a>. To use Julia binding it with an existing libmxnet installation, set the <code class="docutils literal"><span class="pre">MXNET_HOME</span></code> environment variable by running the following command:</p>
<div class="highlight-bash"><div class="highlight"><pre><span></span><span class="nb">export</span> <span class="nv">MXNET_HOME</span><span class="o">=</span>/<path to="">/libmxnet
</path></pre></div>
</div>
<p>The path to the existing libmxnet installation should be the root directory of libmxnet. In other words, you should be able to find the <code class="docutils literal"><span class="pre">libmxnet.so</span></code> file at <code class="docutils literal"><span class="pre">$MXNET_HOME/lib</span></code>. For example, if the root directory of libmxnet is <code class="docutils literal"><span class="pre">~</span></code>, you would run the following command:</p>
<div class="highlight-bash"><div class="highlight"><pre><span></span> <span class="nb">export</span> <span class="nv">MXNET_HOME</span><span class="o">=</span>/~/libmxnet
</pre></div>
</div>
<p>You might want to add this command to your <code class="docutils literal"><span class="pre">~/.bashrc</span></code> file. If you do, you can install the Julia package in the Julia console using the following command:</p>
<div class="highlight-julia"><div class="highlight"><pre><span></span> <span class="n">Pkg</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s">"MXNet"</span><span class="p">)</span>
</pre></div>
</div>
<p>For more details about installing and using MXNet with Julia, see the <a class="reference external" href="http://dmlc.ml/MXNet.jl/latest/user-guide/install/">MXNet Julia documentation</a>.</p>
</div>
<div class="section" id="installing-the-mxnet-package-for-scala">
<span id="installing-the-mxnet-package-for-scala"></span><h2>Installing the MXNet Package for Scala<a class="headerlink" href="#installing-the-mxnet-package-for-scala" title="Permalink to this headline"></a></h2>
<p>There are four ways to install the MXNet package for Scala:</p>
<ul class="simple">
<li>Use the prebuilt binary package</li>
<li>Build the library from source code</li>
</ul>
<div class="section" id="use-the-prebuilt-binary-package">
<span id="use-the-prebuilt-binary-package"></span><h3>Use the Prebuilt Binary Package<a class="headerlink" href="#use-the-prebuilt-binary-package" title="Permalink to this headline"></a></h3>
<p>For Linux and OS X (Mac) users, MXNet provides prebuilt binary packages that support computers with either GPU or CPU processors. To download and build these packages using <code class="docutils literal"><span class="pre">Maven</span></code>, change the <code class="docutils literal"><span class="pre">artifactId</span></code> in the following Maven dependency to match your architecture:</p>
<div class="highlight-HTML"><div class="highlight"><pre><span></span><span class="p"><</span><span class="nt">dependency</span><span class="p">></span>
<span class="p"><</span><span class="nt">groupId</span><span class="p">></span>ml.dmlc.mxnet<span class="p"><!--</span--><span class="nt">groupId</span><span class="p">></span>
<span class="p"><</span><span class="nt">artifactId</span><span class="p">></span>mxnet-full_<span class="p"><</span><span class="nt">system</span> <span class="na">architecture</span><span class="p">><!--</span--><span class="nt">artifactId</span><span class="p">></span>
<span class="p"><</span><span class="nt">version</span><span class="p">></span>0.1.1<span class="p"><!--</span--><span class="nt">version</span><span class="p">></span>
<span class="p"><!--</span--><span class="nt">dependency</span><span class="p">></span>
</span></span></span></span></pre></div>
</div>
<p>For example, to download and build the 64-bit CPU-only version for Linux, use:</p>
<div class="highlight-HTML"><div class="highlight"><pre><span></span><span class="p"><</span><span class="nt">dependency</span><span class="p">></span>
<span class="p"><</span><span class="nt">groupId</span><span class="p">></span>ml.dmlc.mxnet<span class="p"><!--</span--><span class="nt">groupId</span><span class="p">></span>
<span class="p"><</span><span class="nt">artifactId</span><span class="p">></span>mxnet-full_2.10-linux-x86_64-cpu<span class="p"><!--</span--><span class="nt">artifactId</span><span class="p">></span>
<span class="p"><</span><span class="nt">version</span><span class="p">></span>0.1.1<span class="p"><!--</span--><span class="nt">version</span><span class="p">></span>
<span class="p"><!--</span--><span class="nt">dependency</span><span class="p">></span>
</span></span></span></span></pre></div>
</div>
<p>If your native environment differs slightly from the assembly package, for example, if you use the openblas package instead of the atlas package, it’s better to use the mxnet-core package and put the compiled Java native library in your load path:</p>
<div class="highlight-HTML"><div class="highlight"><pre><span></span><span class="p"><</span><span class="nt">dependency</span><span class="p">></span>
<span class="p"><</span><span class="nt">groupId</span><span class="p">></span>ml.dmlc.mxnet<span class="p"><!--</span--><span class="nt">groupId</span><span class="p">></span>
<span class="p"><</span><span class="nt">artifactId</span><span class="p">></span>mxnet-core_2.10<span class="p"><!--</span--><span class="nt">artifactId</span><span class="p">></span>
<span class="p"><</span><span class="nt">version</span><span class="p">></span>0.1.1<span class="p"><!--</span--><span class="nt">version</span><span class="p">></span>
<span class="p"><!--</span--><span class="nt">dependency</span><span class="p">></span>
</span></span></span></span></pre></div>
</div>
</div>
<div class="section" id="build-the-library-from-source-code">
<span id="build-the-library-from-source-code"></span><h3>Build the Library from Source Code<a class="headerlink" href="#build-the-library-from-source-code" title="Permalink to this headline"></a></h3>
<p>Before you build MXNet for Scala from source code, you must complete <a class="reference external" href="#build-the-shared-library">Step 1. Build the Shared Library</a>. After you build the shared library, run the following command from the MXNet source root directory to build the MXNet Scala package:</p>
<div class="highlight-bash"><div class="highlight"><pre><span></span> make scalapkg
</pre></div>
</div>
<p>This command creates the JAR files for the assembly, core, and example modules. It also creates the native library in the <code class="docutils literal"><span class="pre">native/{your-architecture}/target</span> <span class="pre">directory</span></code>, which you can use to cooperate with the core module.</p>
<p>To install the MXNet Scala package into your local Maven repository, run the following command from the MXNet source root directory:</p>
<div class="highlight-bash"><div class="highlight"><pre><span></span> make scalainstall
</pre></div>
</div>
</div>
</div>
<div class="section" id="next-steps">
<span id="next-steps"></span><h2>Next Steps<a class="headerlink" href="#next-steps" title="Permalink to this headline"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference external" href="https://mxnet.incubator.apache.org/tutorials/index.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference external" href="https://mxnet.incubator.apache.org/how_to/index.html">How To</a></li>
<li class="toctree-l1"><a class="reference external" href="https://mxnet.incubator.apache.org/architecture/index.html">Architecture</a></li>
</ul>
</div>
</div>
</div>
<div class="container">
<div class="footer">
<p> </p>
</div>
</div>
</div>
<div aria-label="main navigation" class="sphinxsidebar rightsidebar" role="navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="../index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Installing MXNet in Windows</a><ul>
<li><a class="reference internal" href="#build-the-shared-library">Build the Shared Library</a><ul>
<li><a class="reference internal" href="#installing-the-prebuilt-package-on-windows">Installing the Prebuilt Package on Windows</a></li>
<li><a class="reference internal" href="#building-and-installing-packages-on-windows">Building and Installing Packages on Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#install-mxnet-for-python">Install MXNet for Python</a></li>
<li><a class="reference internal" href="#install-mxnet-for-r">Install MXNet for R</a><ul>
<li><a class="reference internal" href="#installing-mxnet-on-a-computer-with-a-cpu-processor">Installing MXNet on a Computer with a CPU Processor</a><ul>
<li><a class="reference internal" href="#installing-mxnet-with-the-prebuilt-binary-package">Installing MXNet with the Prebuilt Binary Package</a></li>
<li><a class="reference internal" href="#building-mxnet-from-source-code">Building MXNet from Source Code</a></li>
</ul>
</li>
<li><a class="reference internal" href="#installing-mxnet-on-a-computer-with-a-gpu-processor">Installing MXNet on a Computer with a GPU Processor</a></li>
</ul>
</li>
<li><a class="reference internal" href="#install-the-mxnet-package-for-julia">Install the MXNet Package for Julia</a></li>
<li><a class="reference internal" href="#installing-the-mxnet-package-for-scala">Installing the MXNet Package for Scala</a><ul>
<li><a class="reference internal" href="#use-the-prebuilt-binary-package">Use the Prebuilt Binary Package</a></li>
<li><a class="reference internal" href="#build-the-library-from-source-code">Build the Library from Source Code</a></li>
</ul>
</li>
<li><a class="reference internal" href="#next-steps">Next Steps</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div> <!-- pagename != index -->
<script crossorigin="anonymous" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="../_static/js/sidebar.js" type="text/javascript"></script>
<script src="../_static/js/search.js" type="text/javascript"></script>
<script src="../_static/js/navbar.js" type="text/javascript"></script>
<script src="../_static/js/clipboard.min.js" type="text/javascript"></script>
<script src="../_static/js/copycode.js" type="text/javascript"></script>
<script type="text/javascript">
$('body').ready(function () {
$('body').css('visibility', 'visible');
});
</script>
</div></body>
</html>