我对在 R 编程语言中使用 mxnet 库很感兴趣。但是,没有关于如何在 Ubuntu 中编译 R 包的说明。make rpkg 命令在最新版本中不起作用。我想知道是否有人可以解释一下。我猜我已经成功编译了 mxnet,并且使用了 -DUSE_CPP_PACKAGE=1。
谢谢
答案1
这里的问题是,mxnet 的现代 Git 主版本没有R-package
子文件夹。
它一直在这里,直到2020 年 6 月 22 日.因此应该使用之前的 1.8.0 版本图书馆。
因此需要克隆 v1.8.0 分支,然后编译并安装它。在我的系统上,我使用以下命令执行此操作:
sudo apt-get install git
cd ~/Downloads
git clone --recursive https://github.com/apache/incubator-mxnet mxnet -b v1.8.x
sudo apt-get update
sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev libopencv-dev cmake
sudo apt-get install -y nvidia-cuda-dev nvidia-cuda-gdb nvidia-cuda-toolkit nvidia-cuda-toolkit-gcc # Nvidia CUDA
sudo apt-get install -y libmkl-full-dev # MKL
cd mxnet
cmake .
make -j$(nproc)
sudo make install
然后安装R绑定咨询docs/static_site/src/pages/get_started/ubuntu_setup.md本地或在线的:
sudo apt-get install -y r-base-core r-cran-devtools libcairo2-dev libxml2-dev libssl-dev
在会话内部R
执行install.packages("roxygen2")
指定用户的库。
然后:
cd ~/Downloads/mxnet
cp -v lib/libmxnet.so R-package/inst/libs/
make -f R-package/Makefile rpkg
要测试 R 包,请使用:
Rscript -e 'library(mxnet);a <- mx.nd.ones(c(2,3), ctx = mx.cpu());b <- a * 2 + 1;b'
make -f R-package/Makefile rpkgtest