<!DOCTYPE html>

<!---
  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.
-->

<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="/versions/master/assets/img/mxnet-icon.png" rel="icon" type="image/png"><!-- Begin Jekyll SEO tag v2.6.1 -->
<title>Apache MXNet | A flexible and efficient library for deep learning.</title>
<meta name="generator" content="Jekyll v4.0.0" />
<meta property="og:title" content="Apache MXNet" />
<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/master/" />
<meta property="og:url" content="https://mxnet.apache.org/versions/master/" />
<meta property="og:site_name" content="Apache MXNet" />
<script type="application/ld+json">
{"url":"https://mxnet.apache.org/versions/master/","headline":"Apache MXNet","description":"A flexible and efficient library for deep learning.","name":"Apache MXNet","@type":"WebSite","@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<link rel="stylesheet" href="/versions/master/assets/docsearch.min.css" /><link rel="stylesheet" href="/versions/master/assets/main.css"><link type="application/atom+xml" rel="alternate" href="https://mxnet.apache.org/versions/master/feed.xml" title="Apache MXNet" /><!-- Matomo -->
<script>
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  /* We explicitly disable cookie tracking to avoid privacy issues */
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.apache.org/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '23']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->

<script src="/versions/master/assets/js/jquery-3.3.1.min.js"></script>
    <script src="/versions/master/assets/js/docsearch.min.js"></script><script src="/versions/master/assets/js/globalSearch.js" defer></script>
  <script src="/versions/master/assets/js/clipboard.js" defer></script>
  <script src="/versions/master/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/master/"><img
            src="/versions/master/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">master</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 active">master</li>
                
              
                
                  <li class="gs-opt gs-versions">1.9.1</li>
                
              
                
                  <li class="gs-opt gs-versions">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 active">master</li>
                
              
                
                  <li class="gs-opt gs-versions">1.9.1</li>
                
              
                
                  <li class="gs-opt gs-versions">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/master/get_started">Get Started</a>
        <a class="page-link" href="/versions/master/features">Features</a>
        <a class="page-link" href="/versions/master/ecosystem">Ecosystem</a>
        <a class="page-link" href="/versions/master/api">Docs & Tutorials</a>
        <a class="page-link" href="/versions/master/trusted_by">Trusted By</a>
        <a class="page-link" href="https://github.com/apache/incubator-mxnet">GitHub</a>
        <div class="dropdown" style="min-width:100px">
          <span class="dropdown-header">Apache
            <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" style="min-width:250px">
            <a href="https://www.apache.org/foundation/">Apache Software Foundation</a>
            <a href="https://incubator.apache.org/">Apache Incubator</a>
            <a href="https://www.apache.org/licenses/">License</a>
            <a href="/versions/master/api/faq/security.html">Security</a>
            <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy</a>
            <a href="https://www.apache.org/events/current-event">Events</a>
            <a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
            <a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
          </div>
        </div>
        <div class="dropdown">
          <span class="dropdown-header">master
            <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 class="dropdown-option-active" href="/">master</a>
              
            
              
                <a href="/versions/1.9.1/">1.9.1</a>
              
            
              
                <a 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-home" aria-label="Content">
    <div class="wrapper">
        <div class="home">
            <h1 style="margin-bottom:40px;">APACHE MXNET:<br><span style="margin-left:75px"> A FLEXIBLE AND EFFICIENT</span><br> <span
                    style="margin-left:150px"> LIBRARY FOR DEEP LEARNING</span>
            </h1>

            <p style="margin-bottom:40px;">A truly open source deep learning framework suited<br>for flexible research
                prototyping and
                production.</p>
            <div>
                <a href="/versions/master/get_started" class="btn" style="float:left; margin-bottom:20px; margin-top:0px">Get Started
                    <span class="span-accented">›</span></a>
            </div>

        </div>


    </div>
    </div>
    <div class="key-features-section section">
        <div class="wrapper">
            <div class="row">
                <div class="col-8">
                    <h2>Key Features &amp;<br>Capabilities</h2>
                </div>
                <div class="col-4">
                    <div>
                        <a href="/versions/master/features" class="btn btn-action">All Features <span class="span-accented">›</span></a>
                    </div>
                </div>
            </div>

            <div class="row key-features">
                <div class="col-3">
                    <div class="card">
                        <div class="card-text">
                            <h3>Hybrid Front-End</h3>
                            <p>A hybrid front-end seamlessly transitions between Gluon eager imperative mode and symbolic mode to provide both flexibility and speed.</p>
                        </div>
                        <div class="key-feature-image">
                            <img width=50px src="/versions/master/assets/img/circuit.svg">
                        </div>
                    </div>
                </div><div class="col-3">
                    <div class="card">
                        <div class="card-text">
                            <h3>Distributed Training</h3>
                            <p>Scalable distributed training and performance optimization in research and production is enabled by the dual Parameter Server and Horovod support.</p>
                        </div>
                        <div class="key-feature-image">
                            <img width=50px src="/versions/master/assets/img/algorithm.svg">
                        </div>
                    </div>
                </div><div class="col-3">
                    <div class="card">
                        <div class="card-text">
                            <h3>8 Language Bindings</h3>
                            <p>Deep integration into Python and support for Scala, Julia, Clojure, Java, C++, R and Perl.</p>
                        </div>
                        <div class="key-feature-image">
                            <img width=50px src="/versions/master/assets/img/programming.svg">
                        </div>
                    </div>
                </div><div class="col-3">
                    <div class="card">
                        <div class="card-text">
                            <h3>Tools &amp; Libraries</h3>
                            <p>A thriving ecosystem of tools and libraries extends MXNet and enable use-cases in computer vision, NLP, time series and more.</p>
                        </div>
                        <div class="key-feature-image">
                            <img width=50px src="/versions/master/assets/img/chip.svg">
                        </div>
                    </div>
                </div></div>

        </div>
    </div>
    <div class="ecosystem-section section">
        <div class="wrapper">
            <div class="row">
                <div class="col-8">
                    <h2>Ecosystem </h2>
                </div>
                <div class="col-4">
                    <div>
                        <a href="/versions/master/ecosystem" class="btn btn-action">All Projects <span
                                class="span-accented">›</span></a>
                    </div>
                </div>
                <div class="col-8">
                    <p>Explore a rich ecosystem of libraries, tools, and more to support development.</p>
                </div>
            </div>

            <div class="row"><div class="col-3">
                    <div class="card">
                        <a href="https://d2l.ai">
                            <div class="card-text">
                                <div class="card-header-title">
                                    <h3>D2L.ai</h3>
                                    <img src="/versions/master/assets/img/textbook.svg">
                                </div>
                                <p class="card-summary">An interactive deep learning book with code, math, and discussions. Used at Berkeley, University of Washington and more.</p>
                            </div>
                        </a>
                    </div>
                </div><div class="col-3">
                    <div class="card">
                        <a href="https://gluon-cv.mxnet.io">
                            <div class="card-text">
                                <div class="card-header-title">
                                    <h3>GluonCV</h3>
                                    <img src="/versions/master/assets/img/visual.svg">
                                </div>
                                <p class="card-summary">GluonCV is a computer vision toolkit with rich model zoo. From object detection to pose estimation.</p>
                            </div>
                        </a>
                    </div>
                </div><div class="col-3">
                    <div class="card">
                        <a href="https://gluon-nlp.mxnet.io/">
                            <div class="card-text">
                                <div class="card-header-title">
                                    <h3>GluonNLP</h3>
                                    <img src="/versions/master/assets/img/artificial-intelligence.svg">
                                </div>
                                <p class="card-summary">GluonNLP provides state-of-the-art deep learning models in NLP. For engineers and researchers to fast prototype research ideas and products.</p>
                            </div>
                        </a>
                    </div>
                </div><div class="col-3">
                    <div class="card">
                        <a href="https://gluon-ts.mxnet.io/">
                            <div class="card-text">
                                <div class="card-header-title">
                                    <h3>GluonTS</h3>
                                    <img src="/versions/master/assets/img/line-graph.svg">
                                </div>
                                <p class="card-summary">Gluon Time Series (GluonTS) is the Gluon toolkit for probabilistic time series modeling, focusing on deep learning-based models.</p>
                            </div>
                        </a>
                    </div>
                </div></div>
        </div>
    </div>

    <div class="community-section section ">
        <div class="wrapper">
            <div class="row">
                <div class="col-6">
                    <h2>Community</h2>
                </div>
                <div class="col-8">
                    <p>Join the Apache MXNet scientific community to contribute, learn, and get
                        answers to your questions.</p>
                </div>
            </div>

            <div class="row"><div class="col-4">
                    <div class="card">
                        <a href="https://github.com/apache/incubator-mxnet">
                            <div>
                                <div class="card-header-title">
                                    <h3>GitHub</h3>
                                    <img src="/versions/master/assets/img/octocat.png">
                                </div>
                                <p class="card-summary">Report bugs, request features, discuss issues, and more.</p>
                            </div>
                        </a>
                    </div>
                </div><div class="col-4">
                    <div class="card">
                        <a href="https://discuss.mxnet.io/">
                            <div>
                                <div class="card-header-title">
                                    <h3>Discuss Forum</h3>
                                    <img src="/versions/master/assets/img/mxnet_m.png">
                                </div>
                                <p class="card-summary">Browse and join discussions on deep learning with MXNet and Gluon.</p>
                            </div>
                        </a>
                    </div>
                </div><div class="col-4">
                    <div class="card">
                        <a href="mailto:dev@mxnet.apache.org">
                            <div>
                                <div class="card-header-title">
                                    <h3>Slack</h3>
                                    <img src="/versions/master/assets/img/slack-logo-icon.svg">
                                </div>
                                <p class="card-summary">Discuss advanced topics. Request access by mail dev@mxnet.apache.org</p>
                            </div>
                        </a>
                    </div>
                </div></div>
        </div>
    </div>
</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/master/community#stay-connected">Mailing lists</a></li>
                    <li><a href="/versions/master/community#github-issues">Github Issues</a></li>
                    <li><a href="https://github.com/apache/incubator-mxnet/projects">Projects</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/MXNET/Apache+MXNet+Home">Developer Wiki</a></li>
                    <li><a href="https://discuss.mxnet.io">Forum</a></li>
                    <li><a href="/versions/master/community">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/master/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/master/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/master/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/master/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 <a href="http://www.apache.org/">The Apache Software Foundation</a> (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-2022, 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>
