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,LibBLASOpenCV
整个安装过程大概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步:

  1. 从MXNet的C++源代码构建共享库。
  2. 安装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

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

下一步

  • 教程
  • 如何办系列
  • 架构

MxNet系列——get_started——ubuntu_setup的更多相关文章

  1. Html5页面二次分享的实现

    这篇文章主要介绍了Html5页面二次分享的实现的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. HTML5跳转小程序wx-open-launch-weapp的示例代码

    这篇文章主要介绍了HTML5跳转小程序wx-open-launch-weapp的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. ios – Objective C接口,委托和协议

    所以我试图围绕Objctive-C接口,代理和协议.所以我有一个问题:委托是否必须在单独的文件中,或者它是否是您班级中定义的方法?协议就像java接口吗?

  4. Xcode:将WorkspaceSettings.xcsettings添加到源代码管理中

    在Xcode中,更改文件>中的设置.工作区设置…

  5. XCode 3.2 Ruby和Python模板

    在xcode3.2下,我的ObjectiveCPython/Ruby项目仍然可以打开更新和编译,但是你无法创建新项目.鉴于xcode3.2中缺少ruby和python的所有痕迹(即创建项目并添加新的ruby/python文件),是否有一种简单的方法可以再次安装模板?我发现了一些关于将它们复制到某个文件夹的信息,但我似乎无法让它工作,我怀疑文件夹的位置已经改变为3.2.解决方法3.2中的应用程序模板

  6. 在iOS模拟器中查看源代码?

    有没有人知道我可以在Apple的iOS模拟器中检查网站源代码的工具?像Firebug或Chrome开发者工具这样的东西会很棒,我还没有找到任何东西.解决方法之前的旧答案已被删除,因为它们包含过时的信息.至少使用Xcode4和Safari6,在iPhone模拟器中打开Web视图,然后切换到桌面Safari.在Safari的“开发”菜单中,您将找到“iPad模拟器”菜单,该菜单允许您为模拟器中打开的页面打开SafariWebInspector!

  7. ios – 如何在Xcode中创建机器人?获取“创建机器人需要一个受源代码控制的项目”.

    ]单击取消或配置遥控器会打开我的文件夹的配置,我看到我的遥控器添加得很好.我还尝试使用不同的名称再次添加远程存储库.我该如何前进?解决方法似乎这个问题发生在没有名为“origin”的远程时,因为这就是Xcode正在寻找的东西.当我将我的遥控器重命名为原点时,Xcode停止了抱怨,让我通过XcodeUI添加机器人.

  8. ios – watchOS错误:控制器的接口描述中的未知属性

    解决方法创建IBOutlet作为WKInterfacePicker的属性,您将不会收到消息.

  9. ios – 如何在Xcode中调试插件源代码?

    我是新手为AppleMail应用程序创建插件,我想为OSX创建AppleMail插件.我在Xcode中的“InstallerPlug-in”下创建了一个项目,但是我不能像简单的iOS应用程序一样调试该项目.可能吗?如果可能的话请帮助我.解决方法我找到了这个问题的解决方案.只需按照Xcode中的插件代码调试步骤操作即可.步骤1=转到Xcode中的编辑方案,然后转到Editscheme=>.步骤2=从侧窗口选择运行和信息选项卡,然后从下拉列表中选择可执行应用程序保持你的应用程序运行ant尝试调试你的插件源代码

  10. ios – 检查“NeXT / Apple typedstream”版本4(NSArchiver)类型的文件

    对于数据恢复程序,我需要能够从NSArchiver编写的文件中提取值类型,而无需访问Apple的CF/NS框架.OSXfile命令报告以下文件:是否有关于如何编码这些文件的文档,或者是否有人提出可以解析它们的代码?

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部