Installing MXNet on Ubuntu
MXNet现在支持的语言包括:Python,R,Julia 和 Scala等。 对于Ubuntu操作系统上的Python和R用户来说,MXNet 提供了一系列的 Git Bash 脚本,来安装MXNet的依赖和MXNet库。
如果操作系统的版本高于Ubuntu 12,安装脚本会配置MXNet的Python接口和R语言接口。该脚本将MXNet安装在 ~/mxnet
目录下。
快速安装
安装MXNet的Python接口
使用 git
,克隆MXNet的源代码仓库。
# 如果没有Git,先安装Git
sudo apt-get update
sudo apt-get -y install git
克隆MXNet的源代码仓库到本地,运行安装脚本,更新环境变量。除了安装 MXNet外,脚本还会安装 MXNet 的所有依赖包: Numpy
,LibBLAS
和 OpenCV
。
整个安装过程大概5分钟左右。
# 克隆MXNet的源代码仓库
git clone https://github.com/dmlc/mxnet.git ~/mxnet --recursive
# 安装MXNet的Python接口和所有依赖包
cd ~/mxnet/setup-utils
bash install-mxnet-ubuntu-python.sh
# 脚本已经将MXNet的Python包所在的路径添加到当前用户的 ~/.bashrc
# 运行下面的命令,更新环境变量
$ source ~/.bashrc
点此 查看安装MXNet的Python接口的安装脚本。
安装MXNet的R语言接口
执行下面的命令,安装MXNet的R语言接口:
cd ~/mxnet/setup-utils
bash install-mxnet-ubuntu-r.sh
点此 查看安装MXNet的R语言接口的安装脚本。
标准安装
安装MXNet可以分为2步:
- 从MXNet的C++源代码构建共享库。
- 安装MXNet的特定语言的包(接口)。
注意: 修改 make/config.mk
文件可以改变编译选项,使用命令 make
来进行构建。
构建共享库
在版本高于Ubuntu 13.10 的Ubuntu上,你需要下面的依赖:
Git (用于从GitHub下载代码)
libatlas-base-dev (用于线性代数)
libopencv-dev (用于计算机视觉操作)
使用下面的命令,安装上面这些依赖:
sudo apt-get update
sudo apt-get install -y build-essential git libatlas-base-dev libopencv-dev
下载并安装完这些依赖之后,使用下面的命令从GitHub下载MXNet源代码,并构建MXNet:
git clone --recursive https://github.com/dmlc/mxnet
cd mxnet; make -j$(nproc)
执行这些命令之后,创建一个动态库,它的名字是 libmxnet.so
。
下面安装 graphviz
库,它用于可视化神经网络。我们也将安装 Jupyter Notebook,它用于运行MXNet教程和例程。
sudo apt-get install -y python-pip
sudo pip install graphviz
sudo pip install Jupyter
我们已经安装了MXNet的核心库。接下来,我们将会为你选择的编程语言安装MXNet接口包:
- R
- Julia
- Scala
安装MXNet的R语言接口
执行下面的命令,安装MXNet依赖,并构建MXNet的R包:
Rscript -e "install.packages('devtools',repo = 'https://cran.rstudio.com')"
cd R-package
Rscript -e "library(devtools); library(methods); options(repos=c(CRAN='https://cran.rstudio.com')); install_deps(dependencies = TRUE)"
cd ..
make rpkg
注意: R-package 是MXNet根目录中的一个文件夹。
这些命令将创建一个MXNet的R包,它是一个 tar.gz 文件。你可以将其作为一个R包进行安装。执行下面的命令(注意 MXNet 的版本号),安装R包:
R CMD INSTALL mxnet_0.7.tar.gz
安装MXNet的Julia接口
MXNet的Julia接口存放在一个独立的仓库 MXNet.jl 中。为了使用 Julia,将其绑定到已经安装的 libmxnet。 通过执行下面的命令,来设置环境变量 MXNET_HOME
:
export MXNET_HOME=/<path to>/libmxnet
上面命令中的 libmxnet 的安装路径,是指 libmxnet 的根目录。换句话说,你可以在 $MXNET_HOME/lib
目录下找到 libmxnet.so
。比如,如果 libmxnet 的所在的目录是 ~
,你应该执行下面的命令:
export MXNET_HOME=/~/libmxnet
你可能希望将这个命令添加到 ~/.bashrc
文件中。如果已经添加,你可以使用下面的命令,在Julia控制台中安装Julia包:
Pkg.add("MXNet")
更多关于安装和使用MXNet的Julia接口的细节,请查看 MXNet Julia documentation。
安装MXNet的Scala接口
安装MXNet的Scala接口的方法有有2种:
使用预编译的二进制包
从源代码构建MXNet的Scala库
使用预编译的二进制包
对于 Linux 和 OS X (Mac) 用户,MXNet提供了预编译的二进制包,既支持支持cpu,也支持GPU。使用 Maven
下载和构建这个包,在下面的Maven依赖中, 根据你的硬件架构改变 artifactId
:
<dependency>
<groupId>ml.dmlc.mxnet</groupId>
<artifactId>mxnet-full_<system architecture></artifactId>
<version>0.1.1</version>
</dependency>
例如,下载和构建 64-bit OS X 只支持cpu的版本,使用下面的命令:
<dependency>
<groupId>ml.dmlc.mxnet</groupId>
<artifactId>mxnet-full_2.10-linux-x86_64-gpu</artifactId>
<version>0.1.1</version>
</dependency>
如果你的本地环境与集成包稍微不同,例如,如果你使用的不是atlas而是openblas,最好使用mxnet-core包,并使用编译后的Java本地包的路径 mxnet-core_2.10
。
<dependency>
<groupId>ml.dmlc.mxnet</groupId>
<artifactId>mxnet-core_2.10</artifactId>
<version>0.1.1</version>
</dependency>
从源代码构建MXNet的Scala库
在从源代码构建MXNet的Scala库之前,你必须完成 第一步,构建共享库。之后,在MXNet根目录中,运行下面的命令来构建MXNet的Scala库:
make scalapkg
这个命令将会为assembly,core,和 example创建JAR文件。它也会在 native/{your-architecture}/target directory
目录下创建本地库,它可以和其它核心模块协同工作。
在MXNet根目录下,执行下面的命令,将MXNet的Scala包安装到本地Maven仓库:
make scalainstall
注意: 我们非常欢迎你贡献适用于其它操作系统和编程语言的简易安装脚本。查看 社区页面 获取贡献者指南。