Installing MXNet¶
Indicate your preferred configuration. Then, follow the customized commands to install MXNet.
The following installation instructions have been tested on Ubuntu 14.04 and 16.04.
Step 1 Install prerequisites - wget and latest pip.
Installing MXNet with pip requires a latest version of pip
. Install the latest version of pip
by issuing the following command in the terminal.
$ sudo apt-get update
$ sudo apt-get install -y wget python gcc
$ wget https://bootstrap.pypa.io/get-pip.py && sudo python get-pip.py
Step 2 Install MXNet with OpenBLAS acceleration.
$ pip install mxnet
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install mxnet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-mkl
Step 2 Install MXNet with OpenBLAS acceleration.
$ pip install mxnet==1.1.0
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install mxnet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-mkl==1.1.0
Step 2 Install MXNet with OpenBLAS acceleration.
$ pip install mxnet==1.0.0
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install mxnet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-mkl==1.0.0
Step 2 Install MXNet with OpenBLAS acceleration.
$ pip install mxnet==0.12.1
For MXNet 0.12.0 -
$ pip install mxnet==0.12.0
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install mxnet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-mkl==0.12.1
For MXNet 0.12.0 -
$ pip install mxnet-mkl==0.12.0
Step 2 Install MXNet with OpenBLAS acceleration.
$ pip install mxnet==0.11.0
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install mxnet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-mkl==0.11.0
Step 2 Install MXNet with OpenBLAS acceleration.
$ pip install mxnet --pre
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install mxnet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-mkl --pre
Step 1 Install virtualenv for Ubuntu.
$ sudo apt-get update
$ sudo apt-get install -y python-dev python-virtualenv
Step 2 Create and activate virtualenv environment for MXNet.
Following command creates a virtualenv environment at ~/mxnet
directory. However, you can choose any directory by replacing ~/mxnet
with a directory of your choice.
$ virtualenv --system-site-packages ~/mxnet
Activate the virtualenv environment created for MXNet.
$ source ~/mxnet/bin/activate
After activating the environment, you should see the prompt as below.
(mxnet)$
Step 3 Install MXNet in the active virtualenv environment.
Installing MXNet with pip requires a latest version of pip
. Install the latest version of pip
by issuing the following command.
$ pip install --upgrade pip
Install MXNet with OpenBLAS acceleration.
$ pip install mxnet
Install MXNet with OpenBLAS acceleration.
$ pip install mxnet==1.1.0
Install MXNet with OpenBLAS acceleration.
$ pip install mxnet==1.0.0
Install MXNet with OpenBLAS acceleration.
$ pip install mxnet==0.12.1
For MXNet 0.12.0 -
$ pip install mxnet==0.12.0
Install MXNet with OpenBLAS acceleration.
$ pip install mxnet==0.11.0
Install MXNet with OpenBLAS acceleration.
$ pip install mxnet --pre
Step 4 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 5 Validate the installation by running simple MXNet code described here.
Note You can read more about virtualenv here.
Docker images with MXNet are available at Docker Hub.
Step 1 Install Docker on your machine by following the docker installation instructions.
Note - You can install Community Edition (CE) to get started with MXNet.
Step 2 [Optional] Post installation steps to manage Docker as a non-root user.
Follow the four steps in this docker documentation to allow managing docker containers without sudo.
If you skip this step, you need to use sudo each time you invoke Docker.
Step 3 Pull the MXNet docker image.
$ docker pull mxnet/python # Use sudo if you skip Step 2
You can list docker images to see if mxnet/python docker image pull was successful.
$ docker images # Use sudo if you skip Step 2
REPOSITORY TAG IMAGE ID CREATED SIZE
mxnet/python latest 00d026968b3c 3 weeks ago 1.41 GB
Step 4 Validate the installation by running simple MXNet code described here.
Building MXNet from source is a 2 step process.
- Build the MXNet core shared library,
libmxnet.so
, from the C++ sources. - Build the language specific bindings. Example - Python bindings, Scala bindings.
Minimum Requirements
Build the MXNet core shared library
Step 1 Install build tools and git.
$ sudo apt-get update
$ sudo apt-get install -y build-essential git
Step 2 Install OpenBLAS.
MXNet uses BLAS and LAPACK libraries for accelerated numerical computations on CPU machine. There are several flavors of BLAS/LAPACK libraries - OpenBLAS, ATLAS and MKL. In this step we install OpenBLAS. You can choose to install ATLAS or MKL.
$ sudo apt-get install -y libopenblas-dev liblapack-dev
Step 3 Install OpenCV.
MXNet uses OpenCV for efficient image loading and augmentation operations.
$ sudo apt-get install -y libopencv-dev
Step 4 Download MXNet sources and build MXNet core shared library. You can clone the repository as described in the following code block, or you may try the download links for your desired MXNet version.
$ git clone --recursive https://github.com/apache/incubator-mxnet
$ cd incubator-mxnet
$ make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas
Note - USE_OPENCV and USE_BLAS are make file flags to set compilation options to use OpenCV and BLAS library. You can explore and use more compilation options in make/config.mk
.
Build the MXNet Python binding
Step 1 Install prerequisites - python, setup-tools, python-pip and libfortran (required for Numpy).
$ sudo apt-get install -y python-dev python-setuptools python-pip libgfortran3
Step 2 Install the MXNet Python binding.
$ cd python
$ pip install -e .
Note that the -e
flag is optional. It is equivalent to --editable
and means that if you edit the source files, these changes will be reflected in the package installed.
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
The following installation instructions have been tested on Ubuntu 14.04 and 16.04.
Prerequisites
Install the following NVIDIA libraries to setup MXNet with GPU support:
- Install CUDA 9.0 following the NVIDIA’s installation guide.
- Install cuDNN 7 for CUDA 9.0 following the NVIDIA’s installation guide. You may need to register with NVIDIA for downloading the cuDNN library.
Note: Make sure to add CUDA install path to LD_LIBRARY_PATH
.
Example - export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:$LD_LIBRARY_PATH
Step 1 Install prerequisites - wget and latest pip.
Installing MXNet with pip requires a latest version of pip
. Install the latest version of pip
by issuing the following command in the terminal.
$ sudo apt-get update
$ sudo apt-get install -y wget python
$ wget https://bootstrap.pypa.io/get-pip.py && sudo python get-pip.py
Step 2 Install MXNet with GPU support using CUDA 9.2
Important: Make sure your installed CUDA version matches the CUDA version in the pip package. Check your CUDA version with the following command:
nvcc --version
You can either upgrade your CUDA install or install the MXNet package that supports your CUDA version.
$ pip install mxnet-cu92
Refer to pypi for older packages.
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install mxnet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-cu90mkl
Step 2 Install MXNet with GPU support using CUDA 9.1
Important: Make sure your installed CUDA version matches the CUDA version in the pip package. Check your CUDA version with the following command:
nvcc --version
You can either upgrade your CUDA install or install the MXNet package that supports your CUDA version.
$ pip install mxnet-cu91==1.1.0
Refer to pypi for older packages.
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install MXNet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-cu91mkl==1.1.0
Refer to pypi for older packages.
Step 2 Install MXNet with GPU support using CUDA 9.0
$ pip install mxnet-cu90==1.0.0
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install mxnet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-cu90mkl==1.0.0
Step 2 Install MXNet with GPU support using CUDA 9.0
$ pip install mxnet-cu90==0.12.1
For MXNet 0.12.0 -
$ pip install mxnet-cu90==0.12.0
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install mxnet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-cu90mkl==0.12.1
For MXNet 0.12.0 -
$ pip install mxnet-cu90mkl==0.12.0
Step 2 Install MXNet with GPU support using CUDA 8.0
$ pip install mxnet-cu80==0.11.0
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install MXNet with Intel MKL, try the experimental pip package with MKL:
$ pip install mxnet-cu80mkl==0.11.0
Step 1 Install virtualenv for Ubuntu.
$ sudo apt-get update
$ sudo apt-get install -y python-dev python-virtualenv
Step 2 Create and activate virtualenv environment for MXNet.
Following command creates a virtualenv environment at ~/mxnet
directory. However, you can choose any directory by replacing ~/mxnet
with a directory of your choice.
$ virtualenv --system-site-packages ~/mxnet
Activate the virtualenv environment created for MXNet.
$ source ~/mxnet/bin/activate
After activating the environment, you should see the prompt as below.
(mxnet)$
Step 3 Install MXNet in the active virtualenv environment.
Installing MXNet with pip requires a latest version of pip
. Install the latest version of pip
by issuing the following command.
(mxnet)$ pip install --upgrade pip
Important: Make sure your installed CUDA version matches the CUDA version in the pip package. Check your CUDA version with the following command:
nvcc --version
You can either upgrade your CUDA install or install the MXNet package that supports your CUDA version.
Install MXNet with GPU support using CUDA 9.2:
(mxnet)$ pip install mxnet-cu92
Refer to pypi for older packages.
Important: Make sure your installed CUDA version matches the CUDA version in the pip package. Check your CUDA version with the following command:
nvcc --version
You can either upgrade your CUDA install or install the MXNet package that supports your CUDA version.
Install MXNet with GPU support using CUDA 9.1:
(mxnet)$ pip install mxnet-cu91==1.1.0
Refer to pypi for older packages.
Install MXNet with GPU support using CUDA 9.0.
(mxnet)$ pip install mxnet-cu90==1.0.0
Refer to pypi for older packages.
Install MXNet with GPU support using CUDA 9.0.
(mxnet)$ pip install mxnet-cu90==0.12.1
Refer to pypi for older packages.
Install MXNet with GPU support using CUDA 8.0.
(mxnet)$ pip install mxnet-cu80==0.11.0
Important: Make sure your installed CUDA version matches the CUDA version in the pip package. Check your CUDA version with the following command:
nvcc --version
You can either upgrade your CUDA install or install the MXNet package that supports your CUDA version.
Install MXNet with GPU support using CUDA 9.2.
(mxnet)$ pip install mxnet-cu92 --pre
Refer to pypi for older packages.
Step 4 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 5 Validate the installation by running simple MXNet code described here.
Note You can read more about virtualenv here.
Docker images with MXNet are available at Docker Hub.
Step 1 Install Docker on your machine by following the docker installation instructions.
Note - You can install Community Edition (CE) to get started with MXNet.
Step 2 [Optional] Post installation steps to manage Docker as a non-root user.
Follow the four steps in this docker documentation to allow managing docker containers without sudo.
If you skip this step, you need to use sudo each time you invoke Docker.
Step 3 Install nvidia-docker-plugin following the installation instructions. nvidia-docker-plugin is required to enable the usage of GPUs from the docker containers.
Step 4 Pull the MXNet docker image.
$ docker pull mxnet/python:gpu # Use sudo if you skip Step 2
You can list docker images to see if mxnet/python docker image pull was successful.
$ docker images # Use sudo if you skip Step 2
REPOSITORY TAG IMAGE ID CREATED SIZE
mxnet/python gpu 493b2683c269 3 weeks ago 4.77 GB
Step 5 Validate the installation by running simple MXNet code described here.
Building MXNet from source is a 2 step process.
- Build the MXNet core shared library,
libmxnet.so
, from the C++ sources. - Build the language specific bindings. Example - Python bindings, Scala bindings.
Minimum Requirements
Build the MXNet core shared library
Step 1 Install build tools and git.
$ sudo apt-get update
$ sudo apt-get install -y build-essential git
Step 2 Install OpenBLAS.
MXNet uses BLAS and LAPACK libraries for accelerated numerical computations on CPU machine. There are several flavors of BLAS/LAPACK libraries - OpenBLAS, ATLAS and MKL. In this step we install OpenBLAS. You can choose to install ATLAS or MKL.
$ sudo apt-get install -y libopenblas-dev liblapack-dev
Step 3 Install OpenCV.
MXNet uses OpenCV for efficient image loading and augmentation operations.
$ sudo apt-get install -y libopencv-dev
Step 4 Download MXNet sources and build MXNet core shared library. You can clone the repository as described in the following code block, or you may try the download links for your desired MXNet version.
$ git clone --recursive https://github.com/apache/incubator-mxnet
$ cd incubator-mxnet
$ make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_CUDA=1 USE_CUDA_PATH=/usr/local/cuda USE_CUDNN=1
Note - USE_OPENCV, USE_BLAS, USE_CUDA, USE_CUDA_PATH AND USE_CUDNN are make file flags to set compilation options to use OpenCV, OpenBLAS, CUDA and cuDNN libraries. You can explore and use more compilation options in make/config.mk
. Make sure to set USE_CUDA_PATH to right CUDA installation path. In most cases it is - /usr/local/cuda.
Install the MXNet Python binding
Step 1 Install prerequisites - python, setup-tools, python-pip and libfortran (required for Numpy)..
$ sudo apt-get install -y python-dev python-setuptools python-pip libgfortran3
Step 2 Install the MXNet Python binding.
$ cd python
$ pip install -e .
Note that the -e
flag is optional. It is equivalent to --editable
and means that if you edit the source files, these changes will be reflected in the package installed.
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
sudo apt-get install graphviz
pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
The default version of R that is installed with apt-get
is insufficient. You will need to first install R v3.4.4+ and build MXNet from source.
After you have setup R v3.4.4+ and MXNet, you can build and install the MXNet R bindings with the following, assuming that incubator-mxnet
is the source directory you used to build MXNet as follows:
$ cd incubator-mxnet
$ make rpkg
The default version of R that is installed with apt-get
is insufficient. You will need to first install R v3.4.4+ and build MXNet from source.
After you have setup R v3.4.4+ and MXNet, you can build and install the MXNet R bindings with the following, assuming that incubator-mxnet
is the source directory you used to build MXNet as follows:
$ cd incubator-mxnet
$ make rpkg
You can use the Maven packages defined in the following dependency
to include MXNet in your Scala project. Please refer to the MXNet-Scala setup guide for a detailed set of instructions to help you with the setup process.
<dependency>
<groupId>org.apache.mxnet</groupId>
<artifactId>mxnet-full_2.11-linux-x86_64-gpu</artifactId>
</dependency>
You can use the Maven packages defined in the following dependency
to include MXNet in your Scala project. Please refer to the MXNet-Scala setup guide for a detailed set of instructions to help you with the setup process.
<dependency>
<groupId>org.apache.mxnet</groupId>
<artifactId>mxnet-full_2.11-linux-x86_64-cpu</artifactId>
</dependency>
Follow the installation instructions in this guide to set up MXNet.
To build the C++ package, please refer to this guide.
The following installation instructions have been tested on OSX Sierra and El Capitan.
Step 1 Install prerequisites - Homebrew, python development tools.
# Install Homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ export PATH=/usr/local/bin:/usr/local/sbin:$PATH
# Install python development tools - python2.7, pip, python-setuptools
$ brew install python
Step 2 Install MXNet with OpenBLAS acceleration.
Installing MXNet with pip requires a latest version of pip
. Install the latest version of pip
by issuing the following command.
$ pip install --upgrade pip
$ pip install --upgrade setuptools
Then use pip to install MXNet:
$ pip install mxnet
Then use pip to install MXNet:
$ pip install mxnet==1.1.0
Then use pip to install MXNet:
$ pip install mxnet==1.0.0
Then use pip to install MXNet:
$ pip install mxnet=0.12.1
For MXNet 0.12.0 -
$ pip install mxnet=0.12.0
Then use pip to install MXNet:
$ pip install mxnet==0.11.0
Then use pip to install MXNet:
$ pip install mxnet --pre
Step 3 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
$ brew install graphviz
$ pip install graphviz
Step 4 Validate the installation by running simple MXNet code described here.
Step 1 Install prerequisites - Homebrew, python development tools.
# Install Homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ export PATH=/usr/local/bin:/usr/local/sbin:$PATH
# Install python development tools - python2.7, pip, python-setuptools
$ brew install python
Step 2 Install virtualenv for macOS.
$ pip install virtualenv
Step 3 Create and activate virtualenv environment for MXNet.
Following command creates a virtualenv environment at ~/mxnet
directory. However, you can choose any directory by replacing ~/mxnet
with a directory of your choice.
$ virtualenv --system-site-packages ~/mxnet
Activate the virtualenv environment created for MXNet.
$ source ~/mxnet/bin/activate
After activating the environment, you should see the prompt as below.
(mxnet)$
Step 4 Install MXNet in the active virtualenv environment.
Installing MXNet with pip requires a latest version of pip
. Install the latest version of pip
by issuing the following command.
(mxnet)$ pip install --upgrade pip
(mxnet)$ pip install --upgrade setuptools
Install MXNet with OpenBLAS acceleration.
(mxnet)$ pip install mxnet
Install MXNet with OpenBLAS acceleration.
(mxnet)$ pip install mxnet==1.1.0
Install MXNet with OpenBLAS acceleration.
(mxnet)$ pip install mxnet==1.0.0
Install MXNet with OpenBLAS acceleration.
(mxnet)$ pip install mxnet==0.12.1
For MXNet 0.12.0 -
(mxnet)$ pip install mxnet==0.12.0
Install MXNet with OpenBLAS acceleration.
(mxnet)$ pip install mxnet==0.11.0
Install MXNet with OpenBLAS acceleration.
(mxnet)$ pip install mxnet --pre
Step 5 Install Graphviz. (Optional, needed for graph visualization using mxnet.viz
package).
$ brew install graphviz
(mxnet)$ pip install graphviz
Step 6 Validate the installation by running simple MXNet code described here.
Note You can read more about virtualenv here.
Docker images with MXNet are available at Docker Hub.
Step 1 Install Docker on your machine by following the docker installation instructions.
Note - You can install Community Edition (CE) to get started with MXNet.
Step 2 Pull the MXNet docker image.
$ docker pull mxnet/python
You can list docker images to see if mxnet/python docker image pull was successful.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mxnet/python latest 00d026968b3c 3 weeks ago 1.41 GB
Step 4 Validate the installation by running simple MXNet code described here.
Prerequisites
If not already installed, download and install Xcode (or insall it from the App Store) for macOS. Xcode is an integrated development environment for macOS containing a suite of software development tools like C/C++ compilers, BLAS library and more.
Building MXNet from source is a 2 step process.
- Build the MXNet core shared library,
libmxnet.so
, from the C++ sources. - Build the language specific bindings. Example - Python bindings, Scala bindings.
Make sure you have installed Xcode before proceeding further.
All the instructions to build MXNet core shared library and MXNet Python bindings are compiled as one helper bash script. You can use this bash script to build MXNet for Python, from source, on macOS.
Step 1 Download the bash script for building MXNet from source.
$ curl -O https://raw.githubusercontent.com/dmlc/mxnet/master/setup-utils/install-mxnet-osx-python.sh
Step 2 Run the script to get latest MXNet source and build.
# Make the script executable
$ chmod 744 install-mxnet-osx-python.sh
# Run the script. It takes around 5 mins.
$ bash install-mxnet-osx-python.sh
Step 3 Validate the installation by running simple MXNet code described here.
Try the Build from Source option for now.
Step 1 Install prerequisites - Homebrew, python development tools.
# Install Homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ export PATH=/usr/local/bin:/usr/local/sbin:$PATH
# Install python development tools - python2.7, pip, python-setuptools
$ brew install python pkg-config graphviz
Step 2 Install optional components - OpenCV
If you want to use OpenCV you should install it first, then build MXNet with the USE_OPENCV=1
option in the later steps.
brew tap homebrew/science
brew install opencv
Step 3 Install CUDA and cuDNN
The following instructions are for CUDA 9.1 and cuDNN 7 for macOS 10.12+ and a CUDA-capable GPU. They summarize confirmed successful builds in #9217. Alternatively, you may follow the CUDA installation instructions for macOS.
- Download Xcode 8.3.3 from Apple. This is the version NVIDIA specifies in its instructions for macOS. Unzip and rename to
Xcode8.3.3.app
. - Run
sudo xcode-select -s /Applications/Xcode8.3.3.app
or to wherever you have placed Xcode. - Run
xcode-select --install
to install all command line tools, compilers, etc. - Run
sudo xcodebuild -license accept
to accept Xcode’s licensing terms. - Install CUDA for macOS. Specific steps are provided in NVIDIA’s CUDA installation instructions.
- Download and install cuDNN for macOS. You will need to create a free developer account with NVIDIA prior to getting the download link.
Step 4 Build MXNet
Run
git clone --recursive https://github.com/apache/incubator-mxnet.git mxnet
to get the latest version.Run
cd mxnet
.Edit the
make/osx.mk
file to set the following parameters:USE_CUDA = 1 USE_CUDA_PATH = /usr/local/cuda USE_CUDNN = 1 USE_OPENCV = 0 # set to 1 if you want to build with OpenCV
Copy the
make/osx.mk
toconfig.mk
Run
make
. If you previously attempted to compile you might want to domake clean_all
first. You can also runmake -j
with the number of processors you have to compile with multithreading. There’ll be plenty of warnings, but there should be no errors.Once finished, you should have a file called
libmxnet.so
inlib/
.Do
cd python
.Run
sudo pip install -e .
Note: the.
is part of the command.
Install the latest version (3.5.1+) of R from CRAN. You can build MXNet-R from source, or you can use a pre-built binary:
cran <- getOption("repos")
cran["dmlc"] <- "https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/R/CRAN/"
options(repos = cran)
install.packages("mxnet")
Will be available soon.
You can use the Maven packages defined in the following dependency
to include MXNet in your Scala project. Please refer to the MXNet-Scala setup guide for a detailed set of instructions to help you with the setup process.
<dependency>
<groupId>org.apache.mxnet</groupId>
<artifactId>mxnet-full_2.11-osx-x86_64-cpu</artifactId>
</dependency>
Not available at this time.
Follow the installation instructions in this guide to set up MXNet.
To build the C++ package, please refer to this guide.
Step 1 Install Python.
Anaconda is recommended.
Step 2 Install MXNet.
$ pip install mxnet
Step 2 Install MXNet.
$ pip install mxnet==1.1.0
Step 2 Install MXNet.
$ pip install mxnet==1.0.0
Step 2 Install MXNet.
$ pip install mxnet==0.12.1
For MXNet 0.12.0 -
$ pip install mxnet==0.12.0
Step 2 Install MXNet.
$ pip install mxnet==0.11.0
Step 2 Install MXNet.
$ pip install mxnet --pre
Follow the installation instructions in this guide to set up MXNet.
Step 1 Install Python.
Anaconda is recommended.
Step 2 Install MXNet with GPU support using CUDA 9.2.
Important: Make sure your installed CUDA version matches the CUDA version in the pip package. Check your CUDA version with the following command:
nvcc --version
You can either upgrade your CUDA install or install the MXNet package that supports your CUDA version.
$ pip install mxnet-cu92
Refer to pypi for older packages.
Step 2 Install MXNet with GPU support using CUDA 9.1.
Important: Make sure your installed CUDA version matches the CUDA version in the pip package. Check your CUDA version with the following command:
nvcc --version
You can either upgrade your CUDA install or install the MXNet package that supports your CUDA version.
$ pip install mxnet-cu91==1.1.0
Refer to pypi for older packages.
Step 2 Install MXNet with GPU support using CUDA 9.0.
$ pip install mxnet-cu90==1.0.0
Step 2 Install MXNet with GPU support using CUDA 9.0.
$ pip install mxnet-cu90==0.12.1
Install MXNet 0.12.0 with GPU support using CUDA 9.0.
$ pip install mxnet-cu90==0.12.0
Step 2 Install MXNet with GPU support using CUDA 8.0.
$ pip install mxnet-cu80==0.11.0
Step 2 Install MXNet with GPU support using CUDA 9.2.
Important: Make sure your installed CUDA version matches the CUDA version in the pip package. Check your CUDA version with the following command:
nvcc --version
You can either upgrade your CUDA install or install the MXNet package that supports your CUDA version.
$ pip install mxnet-cu92 --pre
Refer to pypi for older packages.
Refer to #8671 for status on CUDA 9.1 support.
We provide both options to build and install MXNet yourself using Microsoft Visual Studio 2017, and Microsoft Visual Studio 2015.
Option 1
To build and install MXNet yourself using Microsoft Visual Studio 2017, you need the following dependencies. Install the required dependencies:
- If Microsoft Visual Studio 2017 is not already installed, download and install it. You can download and install the free community edition.
- Download and install CMake if it is not already installed.
- Download and install OpenCV.
- Unzip the OpenCV package.
- Set the environment variable
OpenCV_DIR
to point to theOpenCV build directory
(e.g.,OpenCV_DIR = C:\utils\opencv\build
). - If you don’t have the Intel Math Kernel Library (MKL) installed, download and install OpenBlas.
- Set the environment variable
OpenBLAS_HOME
to point to theOpenBLAS
directory that contains theinclude
andlib
directories (e.g.,OpenBLAS_HOME = C:\utils\OpenBLAS
). - Download and install CUDA: Install CUDA, and Download the base installer (e.g.,
cuda_9.1.85_win10.exe
). - Download and install cuDNN. To get access to the download link, register as an NVIDIA community user. Then Follow the link to install the cuDNN.
- Download and install git.
After you have installed all of the required dependencies, build the MXNet source code:
- Start
cmd
in windows. - Download the MXNet source code from GitHub by using following command:
cd C:\
git clone https://github.com/apache/incubator-mxnet.git --recursive
- Follow this link to modify
Individual components
, and checkVC++ 2017 version 15.4 v14.11 toolset
, and clickModify
. - Change the version of the Visual studio 2017 to v14.11 using the following command (by default the VS2017 is installed in the following path):
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" -vcvars_ver=14.11
- Create a build dir using the following command and go to the directory, for example:
mkdir C:\build
cd C:\build
- CMake the MXNet source code by using following command:
cmake -G "Visual Studio 15 2017 Win64" -T cuda=9.1,host=x64 -DUSE_CUDA=1 -DUSE_CUDNN=1 -DUSE_NVRTC=1 -DUSE_OPENCV=1 -DUSE_OPENMP=1 -DUSE_BLAS=open -DUSE_LAPACK=1 -DUSE_DIST_KVSTORE=0 -DCUDA_ARCH_LIST=Common -DCUDA_TOOLSET=9.1 -DCUDNN_INCLUDE=C:\cuda\include -DCUDNN_LIBRARY=C:\cuda\lib\x64\cudnn.lib "C:\incubator-mxnet"
NOTE: make sure the DCUDNN_INCLUDE and DCUDNN_LIBRARY pointing to the “include” and “cudnn.lib” of your CUDA installed location, and the C:\incubator-mxnet
is the location of the source code you just git in the previous step
- After the CMake successfully completed, compile the the MXNet source code by using following command:
msbuild mxnet.sln /p:Configuration=Release;Platform=x64 /maxcpucount
Option 2
To build and install MXNet yourself using Microsoft Visual Studio 2015, you need the following dependencies. Install the required dependencies:
- If Microsoft Visual Studio 2015 is not already installed, download and install it. You can download and install the free community edition. At least Update 3 of Microsoft Visual Studio 2015 is required to build MXNet from source. Upgrade via it’s
Tools -> Extensions and Updates... | Product Updates
menu. - Download and install CMake if it is not already installed.
- Download and install OpenCV.
- Unzip the OpenCV package.
- Set the environment variable
OpenCV_DIR
to point to theOpenCV build directory
(C:\opencv\build\x64\vc14
for example). Also, you need to add the OpenCV bin directory (C:\opencv\build\x64\vc14\bin
for example) to thePATH
variable. - If you don’t have the Intel Math Kernel Library (MKL) installed, download and install OpenBlas.
- Set the environment variable
OpenBLAS_HOME
to point to theOpenBLAS
directory that contains theinclude
andlib
directories. Typically, you can find the directory inC:\Program files (x86)\OpenBLAS\
. - Download and install CUDA and cuDNN. To get access to the download link, register as an NVIDIA community user.
- Set the environment variable
CUDACXX
to point to theCUDA Compiler
(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin\nvcc.exe
for example). - Set the environment variable
CUDNN_ROOT
to point to thecuDNN
directory that contains theinclude
,lib
andbin
directories (C:\Downloads\cudnn-9.1-windows7-x64-v7\cuda
for example).
After you have installed all of the required dependencies, build the MXNet source code:
- Download the MXNet source code from GitHub (make sure you also download third parties submodules e.g.
git clone --recurse-submodules
). - Use CMake to create a Visual Studio solution in
./build
. - In Visual Studio, open the solution file,
.sln
, and compile it. These commands produce a library calledmxnet.dll
in the./build/Release/
or./build/Debug
folder.
Next, we install the
graphviz
library that we use for visualizing network graphs that you build on MXNet. We will also install Jupyter Notebook which is used for running MXNet tutorials and examples.
- Install the
graphviz
by downloading the installer from the Graphviz Download Page. Note Make sure to add thegraphviz
executable path to the PATH environment variable. Refer here for more details
Install the latest version (3.5.1+) of R from CRAN. You can build MXNet-R from source, or you can use a pre-built binary:
cran <- getOption("repos")
cran["dmlc"] <- "https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/R/CRAN/"
options(repos = cran)
install.packages("mxnet")
You can build MXNet-R from source, or you can use a pre-built binary:
cran <- getOption("repos")
cran["dmlc"] <- "https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/R/CRAN/GPU/cu92"
options(repos = cran)
install.packages("mxnet")
Change cu92 to cu80, cu90 or cu91 based on your CUDA toolkit version. Currently, MXNet supports these versions of CUDA.
MXNet-Scala for Windows is not yet available.
Follow the installation instructions in this guide to set up MXNet.
To build the C++ package, please refer to this guide.
AWS Marketplace distributes Deep Learning AMIs (Amazon Machine Image) with MXNet pre-installed. You can launch one of these Deep Learning AMIs by following instructions in the AWS Deep Learning AMI Developer Guide.
You can also run distributed deep learning with MXNet on AWS using Cloudformation Template.
MXNet supports the Debian based Raspbian ARM based operating system so you can run MXNet on Raspberry Pi Devices.
These instructions will walk through how to build MXNet for the Raspberry Pi and install the Python bindings for the library.
You can do a dockerized cross compilation build on your local machine or a native build on-device.
The complete MXNet library and its requirements can take almost 200MB of RAM, and loading large models with the library can take over 1GB of RAM. Because of this, we recommend running MXNet on the Raspberry Pi 3 or an equivalent device that has more than 1 GB of RAM and a Secure Digital (SD) card that has at least 4 GB of free memory.
Cross compilation build (Experimental)
Docker installation¶
Step 1 Install Docker on your machine by following the docker installation instructions.
Note - You can install Community Edition (CE)
Step 2 [Optional] Post installation steps to manage Docker as a non-root user.
Follow the four steps in this docker documentation to allow managing docker containers without sudo.
Build¶
The following command will build a container with dependencies and tools and then compile MXNet for
ARMv7. The resulting artifact will be located in build/mxnet-x.x.x-py2.py3-none-any.whl
, copy this
file to your Raspberry Pi.
ci/build.py -p armv7
Install¶
Create a virtualenv and install the package we created previously.
virtualenv -p `which python3` mxnet_py3
source mxnet_py3/bin/activate
pip install mxnet-x.x.x-py2.py3-none-any.whl
Native Build
Installing MXNet is a two-step process:
- Build the shared library from the MXNet C++ source code.
- Install the supported language-specific packages for MXNet.
Step 1 Build the Shared Library
On Raspbian versions Wheezy and later, you need the following dependencies:
- Git (to pull code from GitHub)
- libblas (for linear algebraic operations)
- libopencv (for computer vision operations. This is optional if you want to save RAM and Disk Space)
- A C++ compiler that supports C++ 11. The C++ compiler compiles and builds MXNet source code. Supported compilers include the following:
- G++ (4.8 or later). Make sure to use gcc 4 and not 5 or 6 as there are known bugs with these compilers.
Install these dependencies using the following commands in any directory:
sudo apt-get update
sudo apt-get -y install git cmake ninja-build build-essential g++-4.9 c++-4.9 liblapack* libblas* libopencv* libopenblas* python3-dev virtualenv
Clone the MXNet source code repository using the following git
command in your home directory:
git clone https://github.com/apache/incubator-mxnet.git --recursive
cd incubator-mxnet
Build:
mkdir -p build && cd build
cmake \
-DUSE_SSE=OFF \
-DUSE_CUDA=OFF \
-DUSE_OPENCV=ON \
-DUSE_OPENMP=ON \
-DUSE_MKL_IF_AVAILABLE=OFF \
-DUSE_SIGNAL_HANDLER=ON \
-DCMAKE_BUILD_TYPE=Release \
-GNinja ..
ninja -j1
Some compilation units require memory close to 1GB, so it’s recommended that you enable swap as explained below and be cautious about increasing the number of jobs when building (-j)
Executing these commands start the build process, which can take up to a couple hours, and creates a file called libmxnet.so
in the build directory.
If you are getting build errors in which the compiler is being killed, it is likely that the compiler is running out of memory (especially if you are on Raspberry Pi 1, 2 or Zero, which have less than 1GB of RAM), this can often be rectified by increasing the swapfile size on the Pi by editing the file /etc/dphys-swapfile and changing the line CONF_SWAPSIZE=100 to CONF_SWAPSIZE=1024, then running:
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
free -m # to verify the swapfile size has been increased
Step 2 Install MXNet Python Bindings
To install Python bindings run the following commands in the MXNet directory:
cd python
pip install --upgrade pip
pip install -e .
Note that the -e
flag is optional. It is equivalent to --editable
and means that if you edit the source files, these changes will be reflected in the package installed.
Alternatively you can create a whl package installable with pip with the following command:
ci/docker/runtime_functions.sh build_wheel python/ $(realpath build)
You are now ready to run MXNet on your Raspberry Pi device. You can get started by following the tutorial on Real-time Object Detection with MXNet On The Raspberry Pi.
Note - Because the complete MXNet library takes up a significant amount of the Raspberry Pi’s limited RAM, when loading training data or large models into memory, you might have to turn off the GUI and terminate running processes to free RAM.
Nvidia Jetson TX family¶
MXNet supports the Ubuntu Arch64 based operating system so you can run MXNet on NVIDIA Jetson Devices.
These instructions will walk through how to build MXNet for the Pascal based NVIDIA Jetson TX2 and install the corresponding python language bindings.
For the purposes of this install guide we will assume that CUDA is already installed on your Jetson device.
Install MXNet
Installing MXNet is a two-step process:
- Build the shared library from the MXNet C++ source code.
- Install the supported language-specific packages for MXNet.
Step 1 Build the Shared Library
You need the following additional dependencies:
- Git (to pull code from GitHub)
- libatlas (for linear algebraic operations)
- libopencv (for computer vision operations)
- python pip (to load relevant python packages for our language bindings)
Install these dependencies using the following commands in any directory:
sudo apt-get update
sudo apt-get -y install git build-essential libatlas-base-dev libopencv-dev graphviz python-pip
sudo pip install pip --upgrade
sudo pip install setuptools numpy --upgrade
sudo pip install graphviz jupyter
Clone the MXNet source code repository using the following git
command in your home directory:
git clone https://github.com/apache/incubator-mxnet.git --recursive
cd incubator-mxnet
Edit the Makefile to install the MXNet with CUDA bindings to leverage the GPU on the Jetson:
cp make/crosscompile.jetson.mk config.mk
Edit the Mshadow Makefile to ensure MXNet builds with Pascal’s hardware level low precision acceleration by editing 3rdparty/mshadow/make/mshadow.mk and adding the following after line 122:
MSHADOW_CFLAGS += -DMSHADOW_USE_PASCAL=1
Now you can build the complete MXNet library with the following command:
make -j $(nproc)
Executing this command creates a file called libmxnet.so
in the mxnet/lib directory.
Step 2 Install MXNet Python Bindings
To install Python bindings run the following commands in the MXNet directory:
cd python
pip install --upgrade pip
pip install -e .
Note that the -e
flag is optional. It is equivalent to --editable
and means that if you edit the source files, these changes will be reflected in the package installed.
Add the mxnet folder to the path:
cd ..
export MXNET_HOME=$(pwd)
echo "export PYTHONPATH=$MXNET_HOME/python:$PYTHONPATH" >> ~/.bashrc
source ~/.bashrc
You are now ready to run MXNet on your NVIDIA Jetson TX2 device.
Validate MXNet Installation¶
Start the python terminal.
$ python
Launch a Docker container with mxnet/python
image and run example MXNet python program on the terminal.
$ docker run -it mxnet/python bash # Use sudo if you skip Step 2 in the installation instruction
# Start a python terminal
root@4919c4f58cac:/# python
Activate the virtualenv environment created for MXNet.
$ source ~/mxnet/bin/activate
After activating the environment, you should see the prompt as below.
(mxnet)$
Start the python terminal.
$ python
Run a short MXNet python program to create a 2X3 matrix of ones, multiply each element in the matrix by 2 followed by adding 1. We expect the output to be a 2X3 matrix with all elements being 3.
>>> import mxnet as mx
>>> a = mx.nd.ones((2, 3))
>>> b = a * 2 + 1
>>> b.asnumpy()
array([[ 3., 3., 3.],
[ 3., 3., 3.]], dtype=float32)
Run a short MXNet python program to create a 2X3 matrix of ones, multiply each element in the matrix by 2 followed by adding 1. We expect the output to be a 2X3 matrix with all elements being 3.
>>> import mxnet as mx
>>> a = mx.nd.ones((2, 3))
>>> b = a * 2 + 1
>>> b.asnumpy()
array([[ 3., 3., 3.],
[ 3., 3., 3.]], dtype=float32)
Will be available soon.
From the MXNet root directory run: python example/image-classification/train_mnist.py --network lenet --gpus 0
to test GPU training.
Will be available soon.
From the MXNet root directory run: python example/image-classification/train_mnist.py --network lenet --gpus 0
to test GPU training.
Start the python terminal.
$ python
Launch a NVIDIA Docker container with mxnet/python:gpu
image and run example MXNet python program on the terminal.
$ nvidia-docker run -it mxnet/python:gpu bash # Use sudo if you skip Step 2 in the installation instruction
# Start a python terminal
root@4919c4f58cac:/# python
Activate the virtualenv environment created for MXNet.
$ source ~/mxnet/bin/activate
After activating the environment, you should see the prompt as below.
(mxnet)$
Start the python terminal.
$ python
Run a short MXNet python program to create a 2X3 matrix of ones a on a GPU, multiply each element in the matrix by 2 followed by adding 1. We expect the output to be a 2X3 matrix with all elements being 3. We use mx.gpu(), to set MXNet context to be GPUs.
>>> import mxnet as mx
>>> a = mx.nd.ones((2, 3), mx.gpu())
>>> b = a * 2 + 1
>>> b.asnumpy()
array([[ 3., 3., 3.],
[ 3., 3., 3.]], dtype=float32)
Exit the Python terminal.
>>> exit()
$
Exit the Python terminal and Deactivate the virtualenv MXNet environment.
>>> exit()
(mxnet)$ deactivate
$
Exit the Python terminal and mxnet/python docker container.
>>> exit()
root@4919c4f58cac:/# exit
Exit the Python terminal.
>>> exit()
$
Exit the Python terminal and Deactivate the virtualenv MXNet environment.
>>> exit()
(mxnet)$ deactivate
$
Exit the Python terminal and then the docker container.
>>> exit()
root@4919c4f58cac:/# exit
Login to the cloud instance you launched, with pre-installed MXNet, following the guide by corresponding cloud provider.
Start the python terminal.
$ python
Run a short MXNet python program to create a 2X3 matrix of ones, multiply each element in the matrix by 2 followed by adding 1. We expect the output to be a 2X3 matrix with all elements being 3.
>>> import mxnet as mx
>>> a = mx.nd.ones((2, 3))
>>> b = a * 2 + 1
>>> b.asnumpy()
array([[ 3., 3., 3.],
[ 3., 3., 3.]], dtype=float32)
Exit the Python terminal.
>>> exit()
$
Run a short MXNet python program to create a 2X3 matrix of ones a on a GPU, multiply each element in the matrix by 2 followed by adding 1. We expect the output to be a 2X3 matrix with all elements being 3. We use mx.gpu(), to set MXNet context to be GPUs.
>>> import mxnet as mx
>>> a = mx.nd.ones((2, 3), mx.gpu())
>>> b = a * 2 + 1
>>> b.asnumpy()
array([[ 3., 3., 3.],
[ 3., 3., 3.]], dtype=float32)
Run a short MXNet R program to create a 2X3 matrix of ones, multiply each element in the matrix by 2 followed by adding 1. We expect the output to be a 2X3 matrix with all elements being 3.
library(mxnet)
a <- mx.nd.ones(c(2,3), ctx = mx.cpu())
b <- a * 2 + 1
b
You should see the following output:
[,1] [,2] [,3]
[1,] 3 3 3
[2,] 3 3 3
Run a short MXNet R program to create a 2X3 matrix of ones a on a GPU, multiply each element in the matrix by 2 followed by adding 1. We expect the output to be a 2X3 matrix with all elements being 3. We use mx.gpu(), to set MXNet context to be GPUs.
library(mxnet)
a <- mx.nd.ones(c(2,3), ctx = mx.gpu())
b <- a * 2 + 1
b
You should see the following output:
[,1] [,2] [,3]
[1,] 3 3 3
[2,] 3 3 3
Will be available soon.
Will be available soon.
Will be available soon.
Will be available soon.