| <!DOCTYPE html> |
| <html lang=" en"><head> |
| <meta charset="utf-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <link href="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/image/mxnet-icon.png" rel="icon" type="image/png"><!-- Begin Jekyll SEO tag v2.6.1 --> |
| <title>Ubuntu Setup | Apache MXNet</title> |
| <meta name="generator" content="Jekyll v3.8.6" /> |
| <meta property="og:title" content="Ubuntu Setup" /> |
| <meta property="og:locale" content="en_US" /> |
| <meta name="description" content="A flexible and efficient library for deep learning." /> |
| <meta property="og:description" content="A flexible and efficient library for deep learning." /> |
| <link rel="canonical" href="https://mxnet.apache.org/versions/1.8.0/get_started/ubuntu_setup" /> |
| <meta property="og:url" content="https://mxnet.apache.org/versions/1.8.0/get_started/ubuntu_setup" /> |
| <meta property="og:site_name" content="Apache MXNet" /> |
| <script type="application/ld+json"> |
| {"url":"https://mxnet.apache.org/versions/1.8.0/get_started/ubuntu_setup","@type":"WebPage","description":"A flexible and efficient library for deep learning.","headline":"Ubuntu Setup","@context":"https://schema.org"}</script> |
| <!-- End Jekyll SEO tag --> |
| <script src="https://medium-widget.pixelpoint.io/widget.js"></script> |
| <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" /> |
| <link rel="stylesheet" href="/versions/1.8.0/assets/main.css"><link type="application/atom+xml" rel="alternate" href="https://mxnet.apache.org/versions/1.8.0/feed.xml" title="Apache MXNet" /><script> |
| if(!(window.doNotTrack === "1" || navigator.doNotTrack === "1" || navigator.doNotTrack === "yes" || navigator.msDoNotTrack === "1")) { |
| (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 src="/versions/1.8.0/assets/js/jquery-3.3.1.min.js"></script><script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js" defer></script> |
| <script src="/versions/1.8.0/assets/js/globalSearch.js" defer></script> |
| <script src="/versions/1.8.0/assets/js/clipboard.js" defer></script> |
| <script src="/versions/1.8.0/assets/js/copycode.js" defer></script></head> |
| <body><header class="site-header" role="banner"> |
| |
| <script> |
| $(document).ready(function () { |
| |
| // HEADER OPACITY LOGIC |
| |
| function opacity_header() { |
| var value = "rgba(4,140,204," + ($(window).scrollTop() / 300 + 0.4) + ")" |
| $('.site-header').css("background-color", value) |
| } |
| |
| $(window).scroll(function () { |
| opacity_header() |
| }) |
| opacity_header(); |
| |
| // MENU SELECTOR LOGIC |
| $('.page-link').each( function () { |
| if (window.location.href.includes(this.href)) { |
| $(this).addClass("page-current"); |
| } |
| }); |
| }) |
| </script> |
| <div class="wrapper"> |
| <a class="site-title" rel="author" href="/versions/1.8.0/"><img |
| src="/versions/1.8.0/assets/img/mxnet_logo.png" class="site-header-logo"></a> |
| <nav class="site-nav"> |
| <input type="checkbox" id="nav-trigger" class="nav-trigger"/> |
| <label for="nav-trigger"> |
| <span class="menu-icon"> |
| <svg viewBox="0 0 18 15" width="18px" height="15px"> |
| <path d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.032C17.335,0,18,0.665,18,1.484L18,1.484z M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.032C17.335,6.031,18,6.696,18,7.516L18,7.516z M18,13.516C18,14.335,17.335,15,16.516,15H1.484 C0.665,15,0,14.335,0,13.516l0,0c0-0.82,0.665-1.483,1.484-1.483h15.032C17.335,12.031,18,12.695,18,13.516L18,13.516z"/> |
| </svg> |
| </span> |
| </label> |
| <div class="gs-search-border"> |
| <div id="gs-search-icon"></div> |
| <form id="global-search-form"> |
| <input id="global-search" type="text" title="Search" placeholder="Search" /> |
| <div id="global-search-dropdown-container"> |
| <button class="gs-current-version btn" type="button" data-toggle="dropdown"> |
| <span id="gs-current-version-label">1.8.0</span> |
| <svg class="gs-dropdown-caret" viewBox="0 0 32 32" class="icon icon-caret-bottom" aria-hidden="true"> |
| <path class="dropdown-caret-path" d="M24 11.305l-7.997 11.39L8 11.305z"></path> |
| </svg> |
| </button> |
| <ul class="gs-opt-group gs-version-dropdown"> |
| |
| |
| <li class="gs-opt gs-versions">master</li> |
| |
| |
| |
| <li class="gs-opt gs-versions active">1.8.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.7.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.6.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.5.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.4.1</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.3.1</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.2.1</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.1.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.0.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">0.12.1</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">0.11.0</li> |
| |
| |
| </ul> |
| </div> |
| <span id="global-search-close">x</span> |
| </form> |
| </div> |
| <div class="trigger"> |
| <div id="global-search-mobile-border"> |
| <div id="gs-search-icon-mobile"></div> |
| <input id="global-search-mobile" placeholder="Search..." type="text"/> |
| <div id="global-search-dropdown-container-mobile"> |
| <button class="gs-current-version-mobile btn" type="button" data-toggle="dropdown"> |
| <svg class="gs-dropdown-caret" viewBox="0 0 32 32" class="icon icon-caret-bottom" aria-hidden="true"> |
| <path class="dropdown-caret-path" d="M24 11.305l-7.997 11.39L8 11.305z"></path> |
| </svg> |
| </button> |
| <ul class="gs-opt-group gs-version-dropdown-mobile"> |
| |
| |
| <li class="gs-opt gs-versions">master</li> |
| |
| |
| |
| <li class="gs-opt gs-versions active">1.8.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.7.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.6.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.5.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.4.1</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.3.1</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.2.1</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.1.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">1.0.0</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">0.12.1</li> |
| |
| |
| |
| <li class="gs-opt gs-versions">0.11.0</li> |
| |
| |
| </ul> |
| </div> |
| </div> |
| <a class="page-link" href="/versions/1.8.0/get_started">Get Started</a> |
| <a class="page-link" href="/versions/1.8.0/blog">Blog</a> |
| <a class="page-link" href="/versions/1.8.0/features">Features</a> |
| <a class="page-link" href="/versions/1.8.0/ecosystem">Ecosystem</a> |
| <a class="page-link" href="/versions/1.8.0/api">Docs & Tutorials</a> |
| <a class="page-link" href="https://github.com/apache/incubator-mxnet">GitHub</a> |
| <div class="dropdown"> |
| <span class="dropdown-header">1.8.0 |
| <svg class="dropdown-caret" viewBox="0 0 32 32" class="icon icon-caret-bottom" aria-hidden="true"><path class="dropdown-caret-path" d="M24 11.305l-7.997 11.39L8 11.305z"></path></svg> |
| </span> |
| <div class="dropdown-content"> |
| <a href="/">master</a> |
| <a class="dropdown-option-active" href="/versions/1.8.0/">1.8.0</a> |
| <a href="/versions/1.7.0/">1.7.0</a> |
| <a href="/versions/1.6.0/">1.6.0</a> |
| <a href="/versions/1.5.0/">1.5.0</a> |
| <a href="/versions/1.4.1/">1.4.1</a> |
| <a href="/versions/1.3.1/">1.3.1</a> |
| <a href="/versions/1.2.1/">1.2.1</a> |
| <a href="/versions/1.1.0/">1.1.0</a> |
| <a href="/versions/1.0.0/">1.0.0</a> |
| <a href="/versions/0.12.1/">0.12.1</a> |
| <a href="/versions/0.11.0/">0.11.0</a> |
| </div> |
| </div> |
| </div> |
| </nav> |
| </div> |
| </header> |
| <main class="page-content" aria-label="Content"> |
| <script> |
| |
| </script> |
| <article class="post"> |
| |
| <header class="post-header wrapper"> |
| <h1 class="post-title">Ubuntu Setup</h1> |
| <h3></h3><a style="float:left; margin-top:20px" href="/versions/1.8.0/get_started" class="btn btn-action">Get Started |
| <span class="span-accented">›</span></a></header> |
| |
| <div class="post-content"> |
| <div class="wrapper"> |
| <!--- Licensed to the Apache Software Foundation (ASF) under one --> |
| |
| <!--- or more contributor license agreements. See the NOTICE file --> |
| |
| <!--- distributed with this work for additional information --> |
| |
| <!--- regarding copyright ownership. The ASF licenses this file --> |
| |
| <!--- to you under the Apache License, Version 2.0 (the --> |
| |
| <!--- "License"); you may not use this file except in compliance --> |
| |
| <!--- with the License. You may obtain a copy of the License at --> |
| |
| <!--- http://www.apache.org/licenses/LICENSE-2.0 --> |
| |
| <!--- Unless required by applicable law or agreed to in writing, --> |
| |
| <!--- software distributed under the License is distributed on an --> |
| |
| <!--- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --> |
| |
| <!--- KIND, either express or implied. See the License for the --> |
| |
| <!--- specific language governing permissions and limitations --> |
| |
| <!--- under the License. --> |
| |
| <h1 id="installing-mxnet-from-source-on-ubuntu">Installing MXNet from source on Ubuntu</h1> |
| |
| <p>The following installation instructions are for building MXNet from source on |
| computers running <strong>Ubuntu 16.04</strong> or higher. For instructions to build MXNet |
| from source on other platforms, see the general <a href="build_from_source">Build From Source |
| guide</a>.</p> |
| |
| <p>Instead of building from source, you can install a binary version of MXNet. For |
| that, please follow the information at <a href="get_started">Get Started</a>.</p> |
| |
| <p>Building MXNet from source is a two-step process:</p> |
| |
| <ol> |
| <li>Build the shared library from the MXNet C++ source code.</li> |
| <li>(optional) Install the supported language-specific packages for MXNet.</li> |
| </ol> |
| |
| <h2 id="contents">Contents</h2> |
| |
| <ul> |
| <li><a href="#cuda-dependencies">CUDA Dependencies</a></li> |
| <li><a href="#build-mxnet-from-source">Build the MXNet shared library from source</a></li> |
| <li><a href="#installing-language-packages-for-mxnet">Install Language Packages</a> |
| |
| <ul> |
| <li><a href="#install-the-mxnet-package-for-r">R</a></li> |
| <li><a href="#install-the-mxnet-package-for-julia">Julia</a></li> |
| <li><a href="#install-the-mxnet-package-for-scala">Scala</a></li> |
| <li><a href="#install-the-mxnet-package-for-java">Java</a></li> |
| <li><a href="#install-the-mxnet-package-for-perl">Perl</a></li> |
| <li><a href="#contributions">Contributions</a></li> |
| <li><a href="#next-steps">Next Steps</a></li> |
| </ul></li> |
| </ul> |
| |
| <p><hr></p> |
| |
| <h2 id="cuda-dependencies">CUDA Dependencies</h2> |
| |
| <p>If you plan to build with GPU, you need to set up the environment for CUDA and cuDNN.</p> |
| |
| <p>First, download and install <a href="https://developer.nvidia.com/cuda-toolkit">CUDA toolkit</a>. CUDA 9.2 is recommended.</p> |
| |
| <p>Then download <a href="https://developer.nvidia.com/cudnn">cuDNN 7.1.4</a>.</p> |
| |
| <p>Unzip the file and change to the cuDNN root directory. Move the header and libraries to your local CUDA Toolkit folder:</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">tar </span>xvzf cudnn-9.2-linux-x64-v7.1 |
| <span class="nb">sudo cp</span> <span class="nt">-P</span> cuda/include/cudnn.h /usr/local/cuda/include |
| <span class="nb">sudo cp</span> <span class="nt">-P</span> cuda/lib64/libcudnn<span class="k">*</span> /usr/local/cuda/lib64 |
| <span class="nb">sudo chmod </span>a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn<span class="k">*</span> |
| <span class="nb">sudo </span>ldconfig |
| </code></pre></div> |
| <p><hr></p> |
| |
| <h2 id="build-the-mxnet-shared-library-from-source">Build the MXNet shared library from source</h2> |
| |
| <p>It is recommended that you review the general <a href="build_from_source">build from source</a> instructions before continuing.</p> |
| |
| <p>On Ubuntu versions 16.04 or later, you need the following dependencies:</p> |
| |
| <p><strong>Step 1:</strong> Install prerequisite packages.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">sudo </span>apt-get update |
| <span class="nb">sudo </span>apt-get <span class="nb">install</span> <span class="nt">-y</span> build-essential git ninja-build ccache libopenblas-dev libopencv-dev cmake |
| </code></pre></div> |
| <p>Instead of <code>libopenblas-dev</code> you may also choose a different math library. |
| Further information is provided in the source guide's <a href="build_from_source#math-library-selection">Math Library |
| Selection</a> section.</p> |
| |
| <p><code>libopencv-dev</code> is an optional dependency. You can delete it from above <code>apt-get |
| install</code> line and build MXNet without OpenCV support by setting <code>USE_OPENCV</code> to |
| <code>OFF</code> in the configuration file described below.</p> |
| |
| <p>Note: CMake 3.13 or higher is required. If you are running an older version of |
| CMake, you will see an error message like <code>CMake 3.13 or higher is required. You |
| are running version 3.10.2</code> during Step 3. In that case please update CMake on |
| your system. You can download and install latest CMake from <a href="https://cmake.org">https://cmake.org</a> or |
| via <code>pip3</code> with <code>pip3 install --user --upgrade "cmake>=3.13.2"</code>. If <code>pip3</code> is |
| not available on your system, you can install it via <code>sudo apt-get install -y |
| python3-pip</code>. After installing cmake with <code>pip3</code>, it is usually available at |
| <code>~/.local/bin/cmake</code> or directly as <code>cmake</code>.</p> |
| |
| <p><strong>Step 2:</strong> Download MXNet sources and configure</p> |
| |
| <p>Clone the repository:</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash">git clone <span class="nt">--recursive</span> https://github.com/apache/incubator-mxnet.git mxnet |
| <span class="nb">cd </span>mxnet |
| <span class="nb">cp </span>config/linux.cmake config.cmake <span class="c"># or config/linux_gpu.cmake for build with CUDA</span> |
| </code></pre></div> |
| <p>Please edit the config.cmake file based on your needs. The file contains a |
| series of <code>set(name value CACHE TYPE "Description")</code> entries. You can change the |
| values of the respective <code>value</code>.</p> |
| |
| <p>For a GPU-enabled build make sure you have installed the <a href="#cuda-dependencies">CUDA dependencies |
| first</a>). When building a GPU-enabled build on a machine |
| without GPU, MXNet build can't autodetect your GPU architecture and will target |
| all available GPU architectures. Please set the <code>MXNET_CUDA_ARCH</code> variable in |
| <code>config.cmake</code> to your desired cuda architecture to speed up the build.</p> |
| |
| <p>To (optionally) build with MKL math library, please install MKL first based on |
| the guide in <a href="build_from_source#math-library-selection">Math Library Selection</a>.</p> |
| |
| <p><strong>Step 3:</strong> Build MXNet core shared library.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">rm</span> <span class="nt">-rf</span> build |
| <span class="nb">mkdir</span> <span class="nt">-p</span> build <span class="o">&&</span> <span class="nb">cd </span>build |
| cmake .. |
| cmake <span class="nt">--build</span> <span class="nb">.</span> |
| </code></pre></div> |
| <p>Specify <code>cmake --build . --parallel N</code> to set the number of parallel compilation |
| jobs. Default is derived from CPUs available.</p> |
| |
| <p>After a successful build, you will find the <code>libmxnet.so</code> in the <code>build</code> folder |
| in your MXNet project root. <code>libmxnet.so</code> is required to install language |
| bindings described in the next section.</p> |
| |
| <p><hr></p> |
| |
| <h2 id="installing-language-packages-for-mxnet">Installing Language Packages for MXNet</h2> |
| |
| <p>After you have installed the MXNet core library. You may install MXNet interface |
| packages for the programming language of your choice: |
| - <a href="#install-mxnet-for-python">Python</a> |
| - <a href="#install-the-mxnet-package-for-c++">C++</a> |
| - <a href="#install-the-mxnet-package-for-clojure">Clojure</a> |
| - <a href="#install-the-mxnet-package-for-julia">Julia</a> |
| - <a href="#install-the-mxnet-package-for-perl">Perl</a> |
| - <a href="#install-the-mxnet-package-for-r">R</a> |
| - <a href="#install-the-mxnet-package-for-scala">Scala</a> |
| - <a href="#install-the-mxnet-package-for-java">Java</a></p> |
| |
| <p><hr></p> |
| |
| <h3 id="install-mxnet-for-python">Install MXNet for Python</h3> |
| |
| <p>To install the MXNet Python binding navigate to the root of the MXNet folder then run the following:</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">cd </span>python |
| pip <span class="nb">install</span> <span class="nt">--user</span> <span class="nt">-e</span> <span class="nb">.</span> |
| </code></pre></div> |
| <p>Note that the <code>-e</code> flag is optional. It is equivalent to <code>--editable</code> and means |
| that if you edit the source files, these changes will be reflected in the |
| package installed.</p> |
| |
| <h4 id="optional-python-packages">Optional Python Packages</h4> |
| |
| <p>You may optionally install <code>graphviz</code> library that is used for visualizing network graphs you build on MXNet. You |
| may also install <a href="http://jupyter.readthedocs.io/">Jupyter Notebook</a> which is used for running MXNet tutorials and |
| examples.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash">pip <span class="nb">install</span> <span class="nt">--user</span> <span class="nv">graphviz</span><span class="o">==</span>0.8.4 jupyter |
| </code></pre></div> |
| <p><hr></p> |
| |
| <h3 id="install-the-mxnet-package-for-c">Install the MXNet Package for C++</h3> |
| |
| <p>Refer to the <a href="c_plus_plus">C++ Package setup guide</a>. |
| <hr></p> |
| |
| <h3 id="install-the-mxnet-package-for-clojure">Install the MXNet Package for Clojure</h3> |
| |
| <p>Refer to the <a href="https://github.com/apache/incubator-mxnet/tree/master/contrib/clojure-package">Clojure setup guide</a>. |
| <hr></p> |
| |
| <h3 id="install-the-mxnet-package-for-julia">Install the MXNet Package for Julia</h3> |
| |
| <h4 id="install-julia">Install Julia</h4> |
| |
| <p>The package available through <code>apt-get</code> is old and not compatible with the latest version of MXNet. |
| Fetch the latest version (1.0.3 at the time of this writing).</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash">wget <span class="nt">-qO</span> julia-10.tar.gz https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.3-linux-x86_64.tar.gz |
| </code></pre></div> |
| <p>Place the extracted files somewhere like a julia folder in your home dir.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">mkdir</span> ~/julia |
| <span class="nb">mv </span>julia-10.tar.gz ~/julia |
| <span class="nb">cd</span> ~/julia |
| <span class="nb">tar </span>xvf julia-10.tar.gz |
| </code></pre></div> |
| <p>Test Julia.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">cd </span>julia-1.0.3/bin |
| julia <span class="nt">-e</span> <span class="s1">'using InteractiveUtils; versioninfo()'</span> |
| </code></pre></div> |
| <p>If you're still getting the old version, remove it.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">sudo </span>apt remove julia |
| </code></pre></div> |
| <p>Update your PATH to have Julia's new location. Add this to your <code>.zshrc</code>, <code>.bashrc</code>, <code>.profile</code> or <code>.bash_profile</code>.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">export </span><span class="nv">PATH</span><span class="o">=</span>~/julia/julia-1.0.3/bin:<span class="nv">$PATH</span> |
| </code></pre></div> |
| <p>Validate your PATH.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">echo</span> <span class="nv">$PATH</span> |
| </code></pre></div> |
| <p>Validate Julia works and is the expected version.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash">julia <span class="nt">-e</span> <span class="s1">'using InteractiveUtils; versioninfo()'</span> |
| </code></pre></div> |
| <h4 id="setup-your-mxnet-julia-environment">Setup Your MXNet-Julia Environment</h4> |
| |
| <p><strong>For each of the following environment variables, add the commands to your <code>.zshrc</code>, <code>.bashrc</code>, <code>.profile</code> |
| or <code>.bash_profile</code> to make them persist.</strong></p> |
| |
| <p>Create a <code>julia-depot</code> folder and environment variable.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">mkdir </span>julia-depot |
| <span class="nb">export </span><span class="nv">JULIA_DEPOT_PATH</span><span class="o">=</span><span class="nv">$HOME</span>/julia/julia-depot |
| </code></pre></div> |
| <p>To use the Julia binding with an existing <code>libmxnet</code> installation, set the <code>MXNET_HOME</code> environment variable to the |
| MXNet source root. For example:</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">export </span><span class="nv">MXNET_HOME</span><span class="o">=</span><span class="nv">$HOME</span>/incubator-mxnet |
| </code></pre></div> |
| <p>Now set the <code>LD_LIBRARY_PATH</code> environment variable to where <code>libmxnet.so</code> is found. If you can't find it, you might |
| have skipped the building MXNet step. Go back and <a href="#build-the-shared-library">build MXNet</a> first. For example:</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">export </span><span class="nv">LD_LIBRARY_PATH</span><span class="o">=</span><span class="nv">$HOME</span>/incubator-mxnet/lib:<span class="nv">$LD_LIBRARY_PATH</span> |
| </code></pre></div> |
| <p>Verify the location of <code>libjemalloc.so</code> and set the <code>LD_PRELOAD</code> environment variable. |
| <code>bash |
| export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so:$LD_PRELOAD |
| </code></p> |
| |
| <p>With all of these updates, here's an example of what you might want to have in your <code>.zshrc</code>, <code>.bashrc</code>, <code>.profile</code> |
| or <code>.bash_profile</code>.</p> |
| <div class="highlight"><pre><code class="language-" data-lang="">export PATH=$HOME/bin:$HOME/.local/bin:$HOME/julia/julia-1.0.3/bin:$PATH |
| export JULIA_DEPOT_PATH=$HOME/julia/julia-depot |
| export MXNET_HOME=$HOME/incubator-mxnet |
| export LD_LIBRARY_PATH=$HOME/incubator-mxnet/lib:$LD_LIBRARY_PATH |
| export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so:$LD_PRELOAD |
| </code></pre></div> |
| <p>Install MXNet with Julia:</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash">julia <span class="nt">--color</span><span class="o">=</span><span class="nb">yes</span> <span class="nt">--project</span><span class="o">=</span>./ <span class="nt">-e</span> <span class="se">\</span> |
| <span class="s1">'using Pkg; \ |
| Pkg.develop(PackageSpec(name="MXNet", path = joinpath(ENV["MXNET_HOME"], "julia")))'</span> |
| </code></pre></div> |
| <p>For more details about installing and using MXNet with Julia, see the |
| <a href="/versions/1.8.0/api/julia">MXNet Julia documentation</a>.</p> |
| |
| <p><hr></p> |
| |
| <h3 id="install-the-mxnet-package-for-perl">Install the MXNet Package for Perl</h3> |
| |
| <p>Before you build MXNet for Perl from source code, you must complete <a href="#build-the-shared-library">building the shared library</a>. |
| After you build the shared library, run the following command from the MXNet source root directory to build the MXNet |
| Perl package:</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">sudo </span>apt-get <span class="nb">install </span>libmouse-perl pdl cpanminus swig libgraphviz-perl |
| cpanm <span class="nt">-q</span> <span class="nt">-L</span> <span class="s2">"</span><span class="k">${</span><span class="nv">HOME</span><span class="k">}</span><span class="s2">/perl5"</span> Function::Parameters Hash::Ordered PDL::CCS |
| |
| <span class="nv">MXNET_HOME</span><span class="o">=</span><span class="k">${</span><span class="nv">PWD</span><span class="k">}</span> |
| <span class="nb">export </span><span class="nv">LD_LIBRARY_PATH</span><span class="o">=</span><span class="k">${</span><span class="nv">MXNET_HOME</span><span class="k">}</span>/lib |
| <span class="nb">export </span><span class="nv">PERL5LIB</span><span class="o">=</span><span class="k">${</span><span class="nv">HOME</span><span class="k">}</span>/perl5/lib/perl5 |
| |
| <span class="nb">cd</span> <span class="k">${</span><span class="nv">MXNET_HOME</span><span class="k">}</span>/perl-package/AI-MXNetCAPI/ |
| perl Makefile.PL <span class="nv">INSTALL_BASE</span><span class="o">=</span><span class="k">${</span><span class="nv">HOME</span><span class="k">}</span>/perl5 |
| make <span class="nb">install |
| |
| cd</span> <span class="k">${</span><span class="nv">MXNET_HOME</span><span class="k">}</span>/perl-package/AI-NNVMCAPI/ |
| perl Makefile.PL <span class="nv">INSTALL_BASE</span><span class="o">=</span><span class="k">${</span><span class="nv">HOME</span><span class="k">}</span>/perl5 |
| make <span class="nb">install |
| |
| cd</span> <span class="k">${</span><span class="nv">MXNET_HOME</span><span class="k">}</span>/perl-package/AI-MXNet/ |
| perl Makefile.PL <span class="nv">INSTALL_BASE</span><span class="o">=</span><span class="k">${</span><span class="nv">HOME</span><span class="k">}</span>/perl5 |
| make <span class="nb">install</span> |
| </code></pre></div> |
| <p><hr></p> |
| |
| <h3 id="install-the-mxnet-package-for-r">Install the MXNet Package for R</h3> |
| |
| <p>Before you build MXNet for R from source code, you must complete |
| <a href="#build-the-shared-library">building the shared library</a>.</p> |
| |
| <p><strong>Minimum Requirements</strong> |
| 1. <a href="https://gcc.gnu.org/gcc-4.8/">GCC 4.8</a> or later to compile C++ 11. |
| 2. <a href="https://www.gnu.org/software/make/">GNU Make</a></p> |
| |
| <p><br/></p> |
| |
| <p><strong>Build the MXNet core shared library</strong></p> |
| |
| <p><strong>Step 1</strong> Install R, cran-devtools and dependencies</p> |
| |
| <p>To install R and the devtools, run</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">sudo </span>apt-get update |
| <span class="nb">sudo </span>apt-get <span class="nb">install</span> <span class="nt">-y</span> r-base-core r-cran-devtools libcairo2-dev libxml2-dev |
| </code></pre></div> |
| <p><code>libxml2-dev</code> is required for the <code>roxygen2</code> dependency and <code>libcairo2-dev</code> is |
| required for the suggested <code>imager</code> dependency.</p> |
| |
| <p>To generate documentation, it is also required to install <code>roxygen2</code>.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash">R |
| <span class="o">></span> install.packages<span class="o">(</span><span class="s2">"roxygen2"</span><span class="o">)</span> |
| <span class="o">></span> Would you like to use a personal library instead? <span class="o">(</span>y/n<span class="o">)</span> y |
| <span class="o">></span> Would you like to create a personal library ... to <span class="nb">install </span>packages into? <span class="o">(</span>y/n<span class="o">)</span> y |
| </code></pre></div> |
| <p>Note: To successfully complete the next step, you need a personal R library. If |
| you were able to run <code>install.packages("roxygen2")</code> above, you either had |
| already, or you have successfully created a personal library just now.</p> |
| |
| <p><strong>Step 2</strong> Make and install the MXNet-R bindings.</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash">make <span class="nt">-f</span> R-package/Makefile rpkg |
| </code></pre></div> |
| <h4 id="verify-mxnet-r-installation">Verify MXNet-R Installation</h4> |
| |
| <p>You can verify your MXNet-R installation as follows:</p> |
| <div class="highlight"><pre><code class="language-bash" data-lang="bash">R |
| </code></pre></div> |
| <p>At the R prompt enter the following:</p> |
| <div class="highlight"><pre><code class="language-r" data-lang="r"><span class="n">library</span><span class="p">(</span><span class="n">mxnet</span><span class="p">)</span><span class="w"> |
| </span><span class="n">a</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">mx.nd.ones</span><span class="p">(</span><span class="nf">c</span><span class="p">(</span><span class="m">2</span><span class="p">,</span><span class="m">3</span><span class="p">),</span><span class="w"> </span><span class="n">ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mx.cpu</span><span class="p">())</span><span class="w"> |
| </span><span class="n">b</span><span class="w"> </span><span class="o"><-</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="w"> |
| </span><span class="n">b</span><span class="w"> |
| </span></code></pre></div> |
| <p>You should see the following output:</p> |
| <div class="highlight"><pre><code class="language-" data-lang=""> [,1] [,2] [,3] |
| [1,] 3 3 3 |
| [2,] 3 3 3 |
| > quit() |
| </code></pre></div> |
| <p><hr></p> |
| |
| <h3 id="install-the-mxnet-package-for-scala">Install the MXNet Package for Scala</h3> |
| |
| <p>To use the MXNet-Scala package, you can acquire the Maven package as a dependency.</p> |
| |
| <p>Further information is in the <a href="scala_setup">MXNet-Scala Setup Instructions</a>.</p> |
| |
| <p>If you use IntelliJ or a similar IDE, you may want to follow the |
| <a href="/versions/1.8.0/api/scala/docs/tutorials/mxnet_scala_on_intellij">MXNet-Scala on IntelliJ tutorial</a> instead. |
| <hr></p> |
| |
| <h3 id="install-the-mxnet-package-for-java">Install the MXNet Package for Java</h3> |
| |
| <p>To use the MXNet-Java package, you can acquire the Maven package as a dependency.</p> |
| |
| <p>Further information is in the <a href="java_setup">MXNet-Java Setup Instructions</a>.</p> |
| |
| <p>If you use IntelliJ or a similar IDE, you may want to follow the |
| <a href="/versions/1.8.0/api/java/docs/tutorials/mxnet_java_on_intellij">MXNet-Java on IntelliJ tutorial</a> instead. |
| <hr></p> |
| |
| <h2 id="contributions">Contributions</h2> |
| |
| <p>You are more than welcome to contribute easy installation scripts for other operating systems and programming languages. |
| See the <a href="/versions/1.8.0/community/contribute">community contributions page</a> for further information.</p> |
| |
| <h2 id="next-steps">Next Steps</h2> |
| |
| <ul> |
| <li><a href="/versions/1.8.0/api">Tutorials</a></li> |
| <li><a href="/versions/1.8.0/api/faq/add_op_in_backend">How To</a></li> |
| <li><a href="/versions/1.8.0/api/architecture/overview">Architecture</a></li> |
| </ul> |
| |
| <p><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous"></p> |
| |
| </div> |
| </div> |
| |
| </article> |
| |
| </main><footer class="site-footer h-card"> |
| <div class="wrapper"> |
| <div class="row"> |
| <div class="col-4"> |
| <h4 class="footer-category-title">Resources</h4> |
| <ul class="contact-list"> |
| <li><a href="/versions/1.8.0/community/contribute#mxnet-dev-communications">Mailing lists</a></li> |
| <li><a href="https://cwiki.apache.org/confluence/display/MXNET/Apache+MXNet+Home">Developer Wiki</a></li> |
| <li><a href="https://issues.apache.org/jira/projects/MXNET/issues">Jira Tracker</a></li> |
| <li><a href="https://github.com/apache/incubator-mxnet/labels/Roadmap">Github Roadmap</a></li> |
| <li><a href="https://discuss.mxnet.io">MXNet Discuss forum</a></li> |
| <li><a href="/versions/1.8.0/community/contribute">Contribute To MXNet</a></li> |
| |
| </ul> |
| </div> |
| |
| <div class="col-4"><ul class="social-media-list"><li><a href="https://github.com/apache/incubator-mxnet"><svg class="svg-icon"><use xlink:href="/versions/1.8.0/assets/minima-social-icons.svg#github"></use></svg> <span class="username">apache/incubator-mxnet</span></a></li><li><a href="https://www.twitter.com/apachemxnet"><svg class="svg-icon"><use xlink:href="/versions/1.8.0/assets/minima-social-icons.svg#twitter"></use></svg> <span class="username">apachemxnet</span></a></li><li><a href="https://youtube.com/apachemxnet"><svg class="svg-icon"><use xlink:href="/versions/1.8.0/assets/minima-social-icons.svg#youtube"></use></svg> <span class="username">apachemxnet</span></a></li></ul> |
| </div> |
| |
| <div class="col-4 footer-text"> |
| <p>A flexible and efficient library for deep learning.</p> |
| </div> |
| </div> |
| </div> |
| </footer> |
| <footer class="site-footer2"> |
| <div class="wrapper"> |
| <div class="row"> |
| <div class="col-3"> |
| <img src="/versions/1.8.0/assets/img/apache_incubator_logo.png" class="footer-logo col-2"> |
| </div> |
| <div class="footer-bottom-warning col-9"> |
| <p>Apache MXNet is an effort undergoing incubation at The Apache Software Foundation (ASF), <span |
| style="font-weight:bold">sponsored by the <i>Apache Incubator</i></span>. Incubation is required |
| of all newly accepted projects until a further review indicates that the infrastructure, |
| communications, and decision making process have stabilized in a manner consistent with other |
| successful ASF projects. While incubation status is not necessarily a reflection of the completeness |
| or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. |
| </p><p>"Copyright © 2017-2018, The Apache Software Foundation Apache MXNet, MXNet, Apache, the Apache |
| feather, and the Apache MXNet project logo are either registered trademarks or trademarks of the |
| Apache Software Foundation."</p> |
| </div> |
| </div> |
| </div> |
| </footer> |
| |
| |
| |
| |
| </body> |
| |
| </html> |