MxNet系列——get_started——amazonlinux_setup

博客新址: http://blog.xuezhisd.top
邮箱:xuezhisd@126.com


地平线机器人——嵌入式人工智能领导者 长期招聘计算机视觉/深度学习等方向的工程师或实习生。感兴趣的话,请发送邮件,可以内推


Installing MXNet on Ubuntu

对于 Amazon Linux 操作系统上的Python用户来说,MXNet 提供了一系列的 Git Bash 脚本,来安装MXNet的依赖和MXNet库。

安装脚本会在 Amazon Linux 操作系统上配置MXNet的Python接口。该脚本将MXNet安装在 ~/mxnet目录下。

快速安装

安装MXNet的Python接口

使用 git,克隆MXNet的源代码仓库。

# 如果没有Git,先安装Git
sudo yum -y install git-all

克隆MXNet的源代码仓库到本地,运行安装脚本,更新环境变量。除了安装 MXNet外,脚本还会安装 MXNet 的所有依赖包: Numpy, LibBLASOpenCV
整个安装过程大概5分钟左右。

# 克隆MXNet的源代码仓库
git clone https://github.com/dmlc/mxnet.git ~/mxnet --recursive

# 安装MXNet的Python接口和所有依赖包
cd ~/mxnet/setup-utils
bash install-mxnet-amz-linux.sh

# 脚本已经将MXNet的Python包所在的路径添加到当前用户的 ~/.bashrc
# 运行下面的命令,更新环境变量
$ source ~/.bashrc

点此 查看安装MXNet的Python接口的安装脚本。如果你不能使用该脚本安装MXNet,请阅读下面的详细安装说明。

Standard installation

安装MXNet可以分为2步:

  1. 从MXNet的C++源代码构建共享库。
  2. 安装MXNet的特定语言的包(接口)。

注意: 修改 make/config.mk 文件可以改变编译选项,使用命令 make 来进行构建。

构建共享库

在 Amazon Linux 上,你需要下面的依赖:

  • Git (用于从GitHub下载代码)

  • libatlas-base-dev (用于线性代数)

  • libopencv-dev (用于计算机视觉操作)

使用下面的命令,安装上面这些依赖:

# CMake 用于安装依赖
sudo yum install -y cmake

# 设置环境变量(恰当的库路径)
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.profile
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.profile
echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >> ~/.profile
echo '. ~/.profile' >> ~/.bashrc
source ~/.profile

# 在 Amazon Linux上,安装 gcc-4.8/make 和其它开发工具
# 参考:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/compile-software.html
# 安装 Python, Numpy, Scipy 和设置工具
sudo yum groupinstall -y "Development Tools"
sudo yum install -y python27 python27-setuptools python27-tools python-pip
sudo yum install -y python27-numpy python27-scipy python27-nose python27-matplotlib graphviz

# 安装OpenBLAS,安装位置是 /usr/local/openblas
git clone https://github.com/xianyi/OpenBLAS
cd OpenBLAS
make FC=gfortran -j $(($(nproc) + 1))
sudo make PREFIX=/usr/local install
cd ..

# 安装OpenCV,安装位置是 /usr/local/opencv
git clone https://github.com/opencv/opencv
cd opencv
mkdir -p build
cd build
cmake -D BUILD_opencv_gpu=OFF -D WITH_EIGEN=ON -D WITH_TBB=ON -D WITH_CUDA=OFF -D WITH_1394=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make PREFIX=/usr/local install

#  安装Graphviz,用于可视化网络;安装Jupyter notebook,用于运行MXNet教程和例程
sudo pip install graphviz
sudo pip install jupyter

# Export 环境变量 for pkg config
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

我们已经安装了MXNet的核心库。接下来,我们将会为你选择的编程语言安装MXNet接口包:

安装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 用户,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

注意: 我们非常欢迎你贡献适用于其它操作系统和编程语言的简易安装脚本。查看 社区页面 获取贡献者指南。

下一步

阅读更多

扫码向博主提问

张学志

非学,无以致疑;非问,无以广识
去开通我的Chat快问
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页