<!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/1.9.0/assets/img/mxnet-icon.png" rel="icon" type="image/png"><!-- Begin Jekyll SEO tag v2.6.1 -->
<title>GitHub contribution and PR verification tips | Apache MXNet</title>
<meta name="generator" content="Jekyll v3.8.6" />
<meta property="og:title" content="GitHub contribution and PR verification tips" />
<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.9.0/api/dev-guide/github_contribution_and_PR_verification_tips" />
<meta property="og:url" content="https://mxnet.apache.org/versions/1.9.0/api/dev-guide/github_contribution_and_PR_verification_tips" />
<meta property="og:site_name" content="Apache MXNet" />
<script type="application/ld+json">
{"headline":"GitHub contribution and PR verification tips","@type":"WebPage","description":"A flexible and efficient library for deep learning.","url":"https://mxnet.apache.org/versions/1.9.0/api/dev-guide/github_contribution_and_PR_verification_tips","@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<link rel="stylesheet" href="/versions/1.9.0/assets/docsearch.min.css" />
    <link rel="stylesheet" href="/versions/1.9.0/assets/retainable.css" /><link rel="stylesheet" href="/versions/1.9.0/assets/main.css"><link type="application/atom+xml" rel="alternate" href="https://mxnet.apache.org/versions/1.9.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.9.0/assets/js/jquery-3.3.1.min.js"></script>
    <script src="/versions/1.9.0/assets/js/docsearch.min.js"></script><script src="/versions/1.9.0/assets/js/globalSearch.js" defer></script>
  <script src="/versions/1.9.0/assets/js/clipboard.js" defer></script>
  <script src="/versions/1.9.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.9.0/"><img
            src="/versions/1.9.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.9.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.9.0</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">master</li>
                
              
                
                  <li class="gs-opt gs-versions active">1.9.0</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/1.9.0/get_started">Get Started</a>
        <a class="page-link" href="/versions/1.9.0/blog">Blog</a>
        <a class="page-link" href="/versions/1.9.0/features">Features</a>
        <a class="page-link" href="/versions/1.9.0/ecosystem">Ecosystem</a>
        <a class="page-link" href="/versions/1.9.0/api">Docs & Tutorials</a>
        <a class="page-link" href="/versions/1.9.0/trusted_by">Trusted By</a>
        <a class="page-link" href="https://github.com/apache/incubator-mxnet">GitHub</a>
        <div class="dropdown">
          <span class="dropdown-header">1.9.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.9.0/">1.9.0</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" aria-label="Content">
    <script>

</script>
<article class="post">

    <header class="post-header wrapper">
        <h1 class="post-title">GitHub contribution and PR verification tips</h1>
        <h3></h3></header>

    <div class="post-content">
        <div class="wrapper">
            <div class="row">
    <div class="col-3 docs-side-bar">
        <h3 style="text-transform: capitalize; padding-left:10px">Developer Guide</h3>
        <ul>
            
            
            <li><a href="/versions/1.9.0/api/dev-guide/github_contribution_and_PR_verification_tips">GitHub contribution and PR verification tips</a></li>
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
            
            <li><a href="/versions/1.9.0/api/dev-guide/debugging_and_performance_optimization_tips">Debugging and performance optimization tips</a></li>
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
            
            <li><a href="/versions/1.9.0/api/dev-guide/examine_forward_results_with_hooks">Examine forward results with hooks</a></li>
              <!-- page-category -->
            
            
            <li><a href="/versions/1.9.0/api/dev-guide/exception_handing_and_custom_error_types">Exception handing and custom error types</a></li>
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
            
            <li><a href="/versions/1.9.0/api/dev-guide/profiling">Profiling</a></li>
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
            
              <!-- page-category -->
               <!-- resource-p -->
        </ul>
    </div>
    <div class="col-9">
        <!--- 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="github-contribution-and-pr-verification-tips">GitHub contribution and PR verification tips</h1>

<p>Use this page for general git workflow tips. </p>

<h2 id="setup-and-configure">Setup and configure</h2>

<p>It is recommended that you fork the MXNet repo, and then set the original repo as an upstream remote repo. </p>

<p>Fork <a href="https://github.com/apache/incubator-mxnet">https://github.com/apache/incubator-mxnet</a> then:</p>
<div class="highlight"><pre><code class="language-" data-lang="">git clone --recursive https://github.com/your_username/incubator-mxnet
cd mxnet
git remote add upstream https://github.com/apache/incubator-mxnet
</code></pre></div>
<p>Once <code>upstream</code> was added, then create a branch for your contribution.</p>
<div class="highlight"><pre><code class="language-" data-lang="">git branch your-contribution-branch
</code></pre></div>
<p>Note that you can incorporate the changes from <code>upstream</code> to any of your local branches during or after development via: </p>
<div class="highlight"><pre><code class="language-" data-lang="">git fetch upstream
git rebase upstream/master
</code></pre></div>
<p>See <a href="https://stackoverflow.com/questions/3357122/git-pull-vs-git-fetch-vs-git-rebase">this stackoverflow discussion</a> for more details about difference between <code>git pull</code>, <code>git rebase</code> and <code>git merge</code>.</p>

<p>Since Apache MXNet 3rd party git submodules, to update their changes on your branch after rebase, you can run:</p>
<div class="highlight"><pre><code class="language-" data-lang="">git submodule update --recursive
</code></pre></div>
<h2 id="save-your-local-changes-for-future">Save your local changes for future</h2>

<p>During development, you can save your current changes in your branch before committing anything. For example to go to another branch to do something else via:</p>
<div class="highlight"><pre><code class="language-" data-lang="">git stash save
</code></pre></div>
<p>To restore the changes so that they can be added to a commit use:</p>
<div class="highlight"><pre><code class="language-" data-lang="">git stash pop
</code></pre></div>
<p>To drop the changes, use:</p>
<div class="highlight"><pre><code class="language-" data-lang="">git stash drop
</code></pre></div>
<h2 id="reset">Reset</h2>

<p>Sometimes, if you want to wipe out the changes you have made you can use:</p>
<div class="highlight"><pre><code class="language-" data-lang="">git reset --hard
</code></pre></div>
<p>Be very careful since hard-reset removes any of the changes and you’ll be back to the HEAD commit. To remove all the changed before a commit given its commit-SHA you can use <code>git reset --hard commit-SHA</code> or <code>git reset --hard HEAD~2</code> to remove relative to the first two commits on top of HEAD.</p>

<p>However, sometimes it’s useful to keep the files/changes staged when moving the HEAD which can be done via 
<code>git reset --soft</code>. All of the files changed between the original HEAD and the commit will be staged.</p>

<p>In <a href="https://stackoverflow.com/a/50022436">summary</a>,</p>

<ul>
<li><strong><code>--soft</code></strong>: <strong>uncommit</strong> changes, changes are left staged (<em>index</em>).</li>
<li><strong><code>--mixed</code></strong> <em>(default)</em>: <strong>uncommit + unstage</strong> changes, changes are left in <em>working tree</em>.</li>
<li><strong><code>--hard</code></strong>: <strong>uncommit + unstage + delete</strong> changes, nothing left.</li>
</ul>

<h2 id="recover-a-previous-commit-after-reset">Recover a previous commit after reset</h2>

<p>Sometimes you might mistakenly reset a branch to a wrong commit. When that happens, you can use the following command to show the list of recent commits:</p>
<div class="highlight"><pre><code class="language-" data-lang="">git reflog
</code></pre></div>
<p>Once you get the right hashtag, you can use git reset again to change the head to the right commit.</p>

<h2 id="how-to-resolve-conflict-with-master">How to resolve conflict with master</h2>

<p>Sometimes when rebasing to the most recent master as explained above, git may show you there are some conflicts which it cannot resolve. These changes will not be merged. For examples, your file <code>conflict.py</code> has some conflicts with the master branch. Here you need to:</p>

<ul>
<li>manually modify the file to resolve the conflict.</li>
<li>After you resolved the conflict, mark it as resolved by:</li>
</ul>
<div class="highlight"><pre><code class="language-" data-lang="">git add conflict.py
</code></pre></div>
<ul>
<li>Then you can continue rebase by:</li>
</ul>
<div class="highlight"><pre><code class="language-" data-lang="">git rebase --continue
</code></pre></div>
<ul>
<li>Finally push to your fork, you may need to <strong>force push</strong> here:</li>
</ul>
<div class="highlight"><pre><code class="language-" data-lang="">git push --force
</code></pre></div>
<p><strong>Note</strong> that force push is okay when it’s on your branch and you are the only one who is using that branch. Otherwise, it can have bad consequences as it’s rewritten the history.</p>

<h2 id="how-to-group-multiple-commits-into-one">How to group multiple commits into one</h2>

<p>Sometimes, you may have added a lot of related commits suitable to be grouped/combined together to create one meaningful atomic commit. For example, when later commits are only fixes to previous ones, in your PR. 
If you haven’t configured your default git editor, do the following once:</p>
<div class="highlight"><pre><code class="language-" data-lang="">git config core.editor the-editor-you-like
</code></pre></div>
<p>Assume we want to merge the last 3 commits.</p>
<div class="highlight"><pre><code class="language-" data-lang="">git rebase -i HEAD~3
</code></pre></div>
<ol>
<li>It will pop up an text editor. Set the <strong>first commit as pick,</strong> and <strong>change later ones to squash</strong>.</li>
<li>After you saved the file, it will pop up another text editor to ask you modify the combined commit message.</li>
<li>Push the changes to your fork, you need to force push.</li>
</ol>
<div class="highlight"><pre><code class="language-" data-lang="">git push --force
</code></pre></div>
<p><strong>Note</strong> that force push is okay when it’s on your branch and you are the only one who is using that branch. Otherwise, it can have bad consequences as it’s rewritten the history.</p>

<h2 id="apply-only-k-latest-commits-on-to-the-master">Apply only k-latest commits on to the master</h2>

<p>Sometimes it is useful to only apply your k-latest changes on top of the master. This usually happens when you have other m-commits that are already merged before these k-commits. Directly rebase against the master might cause merge conflicts on these first m-commits (which can be safely discarded).</p>

<p>You can instead use the following command:</p>
<div class="highlight"><pre><code class="language-" data-lang=""># k is the concrete number. Put HEAD~2 for the last 1 commit.
git rebase --onto upstream/master HEAD~k
</code></pre></div>
<p>You can then force push to the master <code>git push --force</code>. Note that the above command will discard all the commits before the last k ones.</p>

<h2 id="what-is-the-consequence-of-force-push">What is the consequence of force push</h2>

<p>The last three tips require the force push, this is because we altered the path of the commits. <strong>It is fine to force push to your own fork, as long as the commits changed are only yours.</strong> In case there are multiple collaborators who use your branch there is a safer option <code>git push --force-with-lease.</code></p>

<h2 id="pr-verification">PR verification</h2>

<p>When sending a pull request, remember to add some tests. During the development, one can set <code>MXNET_TEST_COUNT=1000/10000</code> to test on some randomly selected test cases. This makes the testing and development cycle faster. Moreover, some test results might change due to the seed in pseudo-random number generator. To fix the seed during testing, set <code>MXNET_TEST_SEED=your seed number</code>.</p>

    </div>
</div>

        </div>
    </div>

</article>

</main><footer class="site-footer h-card">
    <div class="wrapper">
        <div class="row">
            <div class="col-3">
                <h4 class="footer-category-title">Resources</h4>
                <ul class="contact-list">
                    <li><a href="/versions/1.9.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.9.0/community/contribute">Contribute To MXNet</a></li>
                </ul>
            </div>
            <div class="col-3">
                <h4 class="footer-category-title">Apache</h4>
                <ul class="apache-list">
                    <li><a href="https://www.apache.org/foundation/">Foundation</a></li>
                    <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                    <li><a href="/versions/1.9.0/api/faq/security.html">Security</a></li>
                    <li><a href="https://www.apache.org/licenses/">License</a></li>
                    <li><a href="https://www.apache.org/events/current-event">Events</a></li>
                    <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                </ul>
            </div>

            <div class="col-3"><ul class="social-media-list"><li><a href="https://github.com/apache/incubator-mxnet"><svg class="svg-icon"><use xlink:href="/versions/1.9.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.9.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.9.0/assets/minima-social-icons.svg#youtube"></use></svg> <span class="username">apachemxnet</span></a></li></ul>
</div>

            <div class="col-3 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.9.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 <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>
