blob: 9cc723adde26b3801a54f1dbeacbc92349d7bbe5 [file] [log] [blame]
<!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>Scala on IntelliJ | Apache MXNet</title>
<meta name="generator" content="Jekyll v3.8.6" />
<meta property="og:title" content="Scala on IntelliJ" />
<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/api/scala/docs/tutorials/mxnet_scala_on_intellij" />
<meta property="og:url" content="https://mxnet.apache.org/versions/1.8.0/api/scala/docs/tutorials/mxnet_scala_on_intellij" />
<meta property="og:site_name" content="Apache MXNet" />
<script type="application/ld+json">
{"url":"https://mxnet.apache.org/versions/1.8.0/api/scala/docs/tutorials/mxnet_scala_on_intellij","@type":"WebPage","description":"A flexible and efficient library for deep learning.","headline":"Scala on IntelliJ","@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">Scala on IntelliJ</h1>
<h3></h3></header>
<div class="post-content">
<div class="wrapper">
<div class="row">
<div class="col-3 docs-side-bar">
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<div class="docs-card docs-side">
<ul>
<div class="docs-action-btn">
<a href="/versions/1.8.0/api/scala.html"> <img src="/versions/1.8.0/assets/img/compass.svg"
class="docs-logo-docs">Scala Guide <span
class="span-accented"></span></a>
</div>
<div class="docs-action-btn">
<a href="/versions/1.8.0/api/scala/docs/tutorials"> <img
src="/versions/1.8.0/assets/img/video-tutorial.svg" class="docs-logo-docs">Scala
Tutorials <span class="span-accented"></span></a>
</div>
<div class="docs-action-btn">
<a href="/versions/1.8.0/api/scala/docs/api"> <img src="/versions/1.8.0/assets/img/api.svg"
class="docs-logo-docs">Scala API Reference
<span class="span-accented"></span></a>
</div>
<!-- Let's show the list of tutorials -->
<br>
<h3>Tutorials</h3>
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/char_lstm">Char-LSTM</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/infer">Infer API</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/io">Data Loading API</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/kvstore">KVStore API</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/mnist">MNIST Example</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/model">Model API *Deprecated*</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/module">Module API</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/mxnet_scala_on_intellij">Scala on IntelliJ</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/ndarray">NDArray</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/symbol">Symbol API</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<li><a href="/versions/1.8.0/api/scala/docs/tutorials/symbol_in_pictures">Symbol in Pictures</a></li>
<!-- page-category -->
<!-- resource-p -->
<!-- page-category -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- page -->
</ul>
</div>
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- resource-p -->
<!-- page -->
</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="run-mxnet-scala-examples-using-the-intellij-ide-macos">Run MXNet Scala Examples Using the IntelliJ IDE (macOS)</h1>
<p>This tutorial guides you through setting up a Scala project in the IntelliJ IDE on macOS, and shows how to use the MXNet package from your application.</p>
<h2 id="prerequisites">Prerequisites:</h2>
<p>To use this tutorial you need the following software:</p>
<ul>
<li><a href="https:///www.oracle.com/technetwork/java/javase/downloads/index.html">Java 8 JDK</a></li>
<li><a href="https://maven.apache.org/install.html">Maven</a></li>
<li><a href="https://www.scala-lang.org/download/">Scala</a> - comes with IntelliJ, so you don&#39;t need to install it separately</li>
<li><a href="https://opencv.org/">OpenCV</a></li>
<li><a href="https://www.jetbrains.com/idea/">IntelliJ IDE</a></li>
</ul>
<p>The following instructions are provided for macOS and Ubuntu 16.04. Windows support is not yet available.</p>
<h3 id="mac-prerequisites-setup">Mac Prerequisites Setup</h3>
<p><strong>Step 1.</strong> Install brew:
<code>
/usr/bin/ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;
</code></p>
<p>Or, if you already have brew, update it:
<code>
brew update
</code></p>
<p><strong>Step 2.</strong> Install Java 8 JDK:
<code>
brew tap caskroom/versions
brew cask install java8
</code></p>
<p><strong>Step 3.</strong> Install maven:
<code>
brew install maven
</code></p>
<p><strong>Step 4.</strong> Install OpenCV:
<code>
brew install opencv
</code></p>
<h3 id="ubuntu-prerequisites-setup">Ubuntu Prerequisites Setup</h3>
<p><strong>Step 1.</strong>: Download the MXNet source.</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
</code></pre></div>
<p><strong>Step 2.</strong>: Run the dependency installation scripts.</p>
<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">sudo</span> ./ci/docker/install/ubuntu_core.sh
<span class="nb">sudo</span> ./ci/docker/install/ubuntu_scala.sh
</code></pre></div>
<h2 id="access-the-maven-package-for-mxnet">Access the Maven Package for MXNet</h2>
<p>To view the latest Maven packages, you can check the Maven repository for the <code>org.apache.mxnet</code> packages.</p>
<ul>
<li> <a href="https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.mxnet%22">MXNet Maven Packages</a></li>
</ul>
<p>In the tutorial below, you will install the latest package at the time of this writing. You may find a different artifact for your specific operating system, or a newer one by reviewing what is currently available in the Maven repo.</p>
<p>The configuration you should update is in the pom file&#39;s dependency for MXNet:</p>
<div class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.apache.mxnet<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>mxnet-full_2.11-osx-x86_64-cpu<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</code></pre></div>
<h2 id="set-up-your-project">Set Up Your Project</h2>
<p>Now that you&#39;ve installed your prerequisites, you are ready to setup IntelliJ and your first MXNet-Scala project!</p>
<p><strong>Step 1.</strong> Install and setup IntelliJ:
- When prompted for what to features to enable during IntelliJ&#39;s first startup, make sure you select Scala.</p>
<div class="highlight"><pre><code class="language-" data-lang="">- Install the plugin for IntelliJ IDE by following these steps:
</code></pre></div>
<p>On <strong>Menu</strong>, choose <strong>Preferences</strong>, choose <strong>Plugins</strong>, type <strong>Scala</strong>, and then choose <strong>Install</strong>. For further plugin help and instructions, refer to <a href="https://www.jetbrains.com/help/idea/scala.html">Scala plugin setup for IDE</a>.</p>
<p><strong>Step 2.</strong> Create a new project:</p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-welcome.png" alt="intellij welcome"></p>
<p>From the IntelliJ welcome screen, select &quot;Create New Project&quot;.</p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-type.png" alt="maven project type"></p>
<p>Choose the Maven project type.</p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-type-archetype-check.png" alt="maven project type - archetype"></p>
<p>Select the checkbox for <code>Create from archetype</code>.</p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-type-archetype-add.png" alt="maven project type - archetype"></p>
<p>Click the <code>Add Archetype</code> button, and add the following information to each field.</p>
<p><strong>GroupId</strong>
<code>
net.alchim31.maven
</code>
<strong>ArtifactId</strong>
<code>
scala-archetype-simple
</code>
<strong>Version</strong>
<code>
1.6
</code>
<strong>Repository</strong>
<code>
https://mvnrepository.com/artifact/net.alchim31.maven/scala-archetype-simple
</code></p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-type-archetype-add-confirm.png" alt="maven project type - archetype"></p>
<p>Click <code>Ok</code> to add the archetype, make sure it is selected from the list, and then click <code>Next</code>.</p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-metadata.png" alt="project metadata"></p>
<p>Set the project&#39;s metadata. For this tutorial, use the following:</p>
<p><strong>GroupId</strong>
<code>
mxnet
</code>
<strong>ArtifactId</strong>
<code>
scalaMXNet
</code>
<strong>Version</strong>
<code>
1.0-SNAPSHOT
</code></p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-properties.png" alt="project properties"></p>
<p>Review the project&#39;s properties. The settings can be left as their default.</p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-location.png" alt="project location"></p>
<p>Set the project&#39;s location. The rest of the settings can be left as their default.</p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-1.png" alt="project 1"></p>
<p>After clicking Finish, you will be presented with the project&#39;s first view.
The project&#39;s <code>pom.xml</code> will be open for editing.</p>
<p><strong>Step 3.</strong> Replace the pom file&#39;s content with the following code. Changes include:
- Project properties: <code>scala.version</code>, upgrading from <code>2.11.5</code> to <code>2.11.8</code>
- Project dependencies: adding the MXNet package from Maven and updating the dependency for JUnitRunner (specs2-junit_) and logging
- Build options: removing &#39;-make:transitive&#39;</p>
<div class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt">&lt;project</span> <span class="na">xmlns=</span><span class="s">"http://maven.apache.org/POM/4.0.0"</span> <span class="na">xmlns:xsi=</span><span class="s">"http://www.w3.org/2001/XMLSchema-instance"</span> <span class="na">xsi:schemaLocation=</span><span class="s">"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"</span><span class="nt">&gt;</span>
<span class="nt">&lt;modelVersion&gt;</span>4.0.0<span class="nt">&lt;/modelVersion&gt;</span>
<span class="nt">&lt;groupId&gt;</span>mxnet<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>scalaMXNet<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>1.0-SNAPSHOT<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;name&gt;</span>${project.artifactId}<span class="nt">&lt;/name&gt;</span>
<span class="nt">&lt;description&gt;</span>My wonderful scala app<span class="nt">&lt;/description&gt;</span>
<span class="nt">&lt;inceptionYear&gt;</span>2018<span class="nt">&lt;/inceptionYear&gt;</span>
<span class="nt">&lt;licenses&gt;</span>
<span class="nt">&lt;license&gt;</span>
<span class="nt">&lt;name&gt;</span>Apache2<span class="nt">&lt;/name&gt;</span>
<span class="nt">&lt;url&gt;</span>https://mxnet.apache.org<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;distribution&gt;</span>repo<span class="nt">&lt;/distribution&gt;</span>
<span class="nt">&lt;/license&gt;</span>
<span class="nt">&lt;/licenses&gt;</span>
<span class="nt">&lt;profiles&gt;</span>
<span class="nt">&lt;profile&gt;</span>
<span class="nt">&lt;id&gt;</span>osx-x86_64-cpu<span class="nt">&lt;/id&gt;</span>
<span class="nt">&lt;properties&gt;</span>
<span class="nt">&lt;platform&gt;</span>osx-x86_64-cpu<span class="nt">&lt;/platform&gt;</span>
<span class="nt">&lt;/properties&gt;</span>
<span class="nt">&lt;/profile&gt;</span>
<span class="nt">&lt;profile&gt;</span>
<span class="nt">&lt;id&gt;</span>linux-x86_64-cpu<span class="nt">&lt;/id&gt;</span>
<span class="nt">&lt;properties&gt;</span>
<span class="nt">&lt;platform&gt;</span>linux-x86_64-cpu<span class="nt">&lt;/platform&gt;</span>
<span class="nt">&lt;/properties&gt;</span>
<span class="nt">&lt;/profile&gt;</span>
<span class="nt">&lt;profile&gt;</span>
<span class="nt">&lt;id&gt;</span>linux-x86_64-gpu<span class="nt">&lt;/id&gt;</span>
<span class="nt">&lt;properties&gt;</span>
<span class="nt">&lt;platform&gt;</span>linux-x86_64-gpu<span class="nt">&lt;/platform&gt;</span>
<span class="nt">&lt;/properties&gt;</span>
<span class="nt">&lt;/profile&gt;</span>
<span class="nt">&lt;/profiles&gt;</span>
<span class="nt">&lt;properties&gt;</span>
<span class="nt">&lt;maven</span><span class="err">.</span><span class="na">compiler</span><span class="err">.</span><span class="na">source</span><span class="nt">&gt;</span>1.6<span class="nt">&lt;/maven</span><span class="err">.compiler.source</span><span class="nt">&gt;</span>
<span class="nt">&lt;maven</span><span class="err">.</span><span class="na">compiler</span><span class="err">.</span><span class="na">target</span><span class="nt">&gt;</span>1.6<span class="nt">&lt;/maven</span><span class="err">.compiler.target</span><span class="nt">&gt;</span>
<span class="nt">&lt;encoding&gt;</span>UTF-8<span class="nt">&lt;/encoding&gt;</span>
<span class="nt">&lt;scala</span><span class="err">.</span><span class="na">version</span><span class="nt">&gt;</span>2.11.8<span class="nt">&lt;/scala</span><span class="err">.version</span><span class="nt">&gt;</span>
<span class="nt">&lt;scala</span><span class="err">.</span><span class="na">compat</span><span class="err">.</span><span class="na">version</span><span class="nt">&gt;</span>2.11<span class="nt">&lt;/scala</span><span class="err">.compat.version</span><span class="nt">&gt;</span>
<span class="nt">&lt;slf4jVersion&gt;</span>1.7.7<span class="nt">&lt;/slf4jVersion&gt;</span>
<span class="nt">&lt;platform&gt;</span>osx-x86_64-cpu<span class="nt">&lt;/platform&gt;</span>
<span class="nt">&lt;/properties&gt;</span>
<span class="nt">&lt;dependencies&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.apache.mxnet<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>mxnet-full_2.11-osx-x86_64-cpu<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>[1.4.0,)<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.scala-lang<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>scala-library<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>${scala.version}<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>args4j<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>args4j<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>2.0.29<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="c">&lt;!-- Test --&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>junit<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>junit<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>4.11<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;scope&gt;</span>test<span class="nt">&lt;/scope&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.specs2<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>specs2-junit_${scala.compat.version}<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>2.4.16<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;scope&gt;</span>test<span class="nt">&lt;/scope&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.scalatest<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>scalatest_${scala.compat.version}<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>2.2.4<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;scope&gt;</span>test<span class="nt">&lt;/scope&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="c">&lt;!-- Logging --&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.slf4j<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>slf4j-api<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>${slf4jVersion}<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.slf4j<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>slf4j-log4j12<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>${slf4jVersion}<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;/dependencies&gt;</span>
<span class="nt">&lt;build&gt;</span>
<span class="nt">&lt;sourceDirectory&gt;</span>src/main/scala<span class="nt">&lt;/sourceDirectory&gt;</span>
<span class="nt">&lt;testSourceDirectory&gt;</span>src/test/scala<span class="nt">&lt;/testSourceDirectory&gt;</span>
<span class="nt">&lt;plugins&gt;</span>
<span class="nt">&lt;plugin&gt;</span>
<span class="c">&lt;!-- see http://davidb.github.com/scala-maven-plugin --&gt;</span>
<span class="nt">&lt;groupId&gt;</span>net.alchim31.maven<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>scala-maven-plugin<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>3.2.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;executions&gt;</span>
<span class="nt">&lt;execution&gt;</span>
<span class="nt">&lt;goals&gt;</span>
<span class="nt">&lt;goal&gt;</span>compile<span class="nt">&lt;/goal&gt;</span>
<span class="nt">&lt;goal&gt;</span>testCompile<span class="nt">&lt;/goal&gt;</span>
<span class="nt">&lt;/goals&gt;</span>
<span class="nt">&lt;configuration&gt;</span>
<span class="nt">&lt;args&gt;</span>
<span class="c">&lt;!--arg&gt;-make:transitive&lt;/arg--&gt;</span>
<span class="nt">&lt;arg&gt;</span>-dependencyfile<span class="nt">&lt;/arg&gt;</span>
<span class="nt">&lt;arg&gt;</span>${project.build.directory}/.scala_dependencies<span class="nt">&lt;/arg&gt;</span>
<span class="nt">&lt;/args&gt;</span>
<span class="nt">&lt;/configuration&gt;</span>
<span class="nt">&lt;/execution&gt;</span>
<span class="nt">&lt;/executions&gt;</span>
<span class="nt">&lt;/plugin&gt;</span>
<span class="nt">&lt;plugin&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.apache.maven.plugins<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>maven-surefire-plugin<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>2.18.1<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;configuration&gt;</span>
<span class="nt">&lt;useFile&gt;</span>false<span class="nt">&lt;/useFile&gt;</span>
<span class="nt">&lt;disableXmlReport&gt;</span>true<span class="nt">&lt;/disableXmlReport&gt;</span>
<span class="c">&lt;!-- If you have classpath issue like NoDefClassError,... --&gt;</span>
<span class="c">&lt;!-- useManifestOnlyJar&gt;false&lt;/useManifestOnlyJar --&gt;</span>
<span class="nt">&lt;includes&gt;</span>
<span class="nt">&lt;include&gt;</span>**/*Test.*<span class="nt">&lt;/include&gt;</span>
<span class="nt">&lt;include&gt;</span>**/*Suite.*<span class="nt">&lt;/include&gt;</span>
<span class="nt">&lt;/includes&gt;</span>
<span class="nt">&lt;/configuration&gt;</span>
<span class="nt">&lt;/plugin&gt;</span>
<span class="nt">&lt;/plugins&gt;</span>
<span class="nt">&lt;/build&gt;</span>
<span class="nt">&lt;/project&gt;</span>
</code></pre></div>
<p><strong>Step 4.</strong> Import dependencies with Maven:</p>
<ul>
<li>Note the prompt in the lower right corner that states &quot;Maven projects need to be imported&quot;. If this is not visible, click on the little greed balloon that appears in the lower right corner.</li>
</ul>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-import-changes.gif" alt="import dependencies"></p>
<p>Click &quot;Import Changes&quot; in this prompt.</p>
<p><strong>Step 5.</strong> Setup log4j configuration</p>
<p>Create a folder <code>src/main/resources</code> and a new file in it <code>src/main/resources/log4j.properties</code> with the contents:</p>
<div class="highlight"><pre><code class="language-" data-lang="">log4j.rootLogger = info, stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
</code></pre></div>
<p><strong>Step 6.</strong> Build the project:
- To build the project, from the menu choose Build, and then choose Build Project.
* Note that if you run into <code>bad option: &#39;-make:transitive&#39;</code>, please remove <code>&lt;arg&gt;-make:transitive&lt;/arg&gt;</code> from <code>pom.xml</code> and <code>&lt;parameter value=&quot;-make:transitive&quot; /&gt;</code> from <code>.idea/scala_compiler</code>.</p>
<p><strong>Step 7.</strong> Run the Hello World App:</p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-hello-world-app.png" alt="hello world app"></p>
<p>Navigate to the App included with the project.</p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-hello-world-run.png" alt="run hello world"></p>
<p>Run the App by clicking the green arrow, and verify the Hello World output</p>
<p><strong>Step 8.</strong> Run Sample MXNet Code in the App:</p>
<p><img src="https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/scala/intellij-project-hello-mxnet.png" alt="run hello mxnet"></p>
<p>Paste the following code in the App, overwriting the original hello world code. Then click the green arrow to run it.</p>
<div class="highlight"><pre><code class="language-scala" data-lang="scala"><span class="k">object</span> <span class="nc">App</span> <span class="k">extends</span> <span class="nc">App</span> <span class="o">{</span>
<span class="k">import</span> <span class="nn">org.apache.mxnet._</span>
<span class="k">private</span> <span class="k">val</span> <span class="nv">a</span> <span class="k">=</span> <span class="nv">NDArray</span><span class="o">.</span><span class="py">ones</span><span class="o">(</span><span class="mi">2</span><span class="o">,</span> <span class="mi">3</span><span class="o">)</span>
<span class="nf">println</span><span class="o">(</span><span class="s">"Testing MXNet by generating an 2x3 NDArray..."</span><span class="o">)</span>
<span class="nf">println</span><span class="o">(</span><span class="s">"Shape is: "</span><span class="o">)</span>
<span class="nf">println</span><span class="o">(</span><span class="nv">a</span><span class="o">.</span><span class="py">shape</span><span class="o">)</span>
<span class="o">}</span>
</code></pre></div>
<p>The result should be this output:</p>
<div class="highlight"><pre><code class="language-" data-lang="">Testing MXNet by generating an 2x3 NDArray...
Shape is:
(2,3)
Process finished with exit code 0
</code></pre></div>
<h3 id="troubleshooting">Troubleshooting</h3>
<p>If you get an error, check the dependencies at the beginning of this tutorial. For example, you might see the following in the middle of the error messages, where <code>x.x</code> would the version it&#39;s looking for.</p>
<div class="highlight"><pre><code class="language-" data-lang="">...
Library not loaded: /usr/local/opt/opencv/lib/libopencv_calib3d.x.x.dylib
...
</code></pre></div>
<p>This can be resolved be installing OpenCV.</p>
<h3 id="using-mxnet-from-source">Using MXNet from source</h3>
<p>If you chose to &quot;Build from Source&quot; when following the <a href="/versions/1.8.0/get_started">install instructions</a> (or the detailed <a href="/versions/1.8.0/get_started/build_from_source.html#installing-mxnet-language-bindings">build from source instructions</a>), you can use your custom build instead of the build from maven. Use your build by editing the <code>pom.xml</code> file and replacing the <code>org.apache.mxnet</code> dependency with the following:</p>
<div class="highlight"><pre><code class="language-" data-lang=""> &lt;groupId&gt;org.apache.mxnet&lt;/groupId&gt;
&lt;artifactId&gt;mxnet-core_${scala.version}-${platform}-sources&lt;/artifactId&gt;
&lt;scope&gt;system&lt;/scope&gt;
&lt;systemPath&gt;/PathToMXNetSource/incubator-mxnet/scala-package/assembly/osx-x86_64-cpu/target/mxnet-full_${scala.version}-osx-x86_64-cpu-1.8.0-SNAPSHOT-sources.jar&lt;/systemPath&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.apache.mxnet&lt;/groupId&gt;
&lt;artifactId&gt;mxnet-full_${scala.version}-${platform}&lt;/artifactId&gt;
&lt;scope&gt;system&lt;/scope&gt;
&lt;systemPath&gt;/PathToMXNetSource/incubator-mxnet/scala-package/assembly/osx-x86_64-cpu/target/mxnet-full_${scala.version}-osx-x86_64-cpu-1.8.0-SNAPSHOT.jar&lt;/systemPath&gt;
&lt;/dependency&gt;
</code></pre></div>
<p>Note that you have to edit both of the <code>systemPath</code> properties to point to your generated jar files.</p>
<h3 id="command-line-build-option">Command Line Build Option</h3>
<ul>
<li>You can also compile the project by using the following command at the command line. Change directories to this project&#39;s folder then run the following:</li>
</ul>
<div class="highlight"><pre><code class="language-bash" data-lang="bash">mvn clean package <span class="nt">-e</span> <span class="nt">-P</span> osx-x86_64-cpu
</code></pre></div>
<p>The <code>-P &lt;platform&gt;</code> parameter tells the build which platform to target.
The <code>-e</code> will give you more details if the build fails. If it succeeds, you should see a lot of info and some warning messages, followed by:</p>
<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="o">[</span>INFO] <span class="nt">------------------------------------------------------------------------</span>
<span class="o">[</span>INFO] BUILD SUCCESS
<span class="o">[</span>INFO] <span class="nt">------------------------------------------------------------------------</span>
<span class="o">[</span>INFO] Total <span class="nb">time</span>: 1.186 s
<span class="o">[</span>INFO] Finished at: 2018-03-06T15:17:36-08:00
<span class="o">[</span>INFO] Final Memory: 11M/155M
<span class="o">[</span>INFO] <span class="nt">------------------------------------------------------------------------</span>
</code></pre></div>
<p>The build generates a new jar file in the <code>target</code> folder called <code>scalaInference-1.0-SNAPSHOT.jar</code>.</p>
<h2 id="next-steps">Next Steps</h2>
<p>For more information about MXNet Scala resources, see the following:</p>
<ul>
<li><a href="/versions/1.8.0/api/scala">Scala API</a></li>
<li><a href="https://github.com/apache/incubator-mxnet/tree/master/scala-package/examples/">Scala Examples</a></li>
<li><a href="/versions/1.8.0/api">MXNet Tutorials Index</a></li>
</ul>
</div>
</div>
</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>