Mac需要装cuda吗?
我在Mac下安装mxnet 官方好像没说要装这个 但是Ubuntu的教程里有这个安装要求 求问用Mac开发深度学习的大神 有没有一个详细的Mac下安装mxnet步骤啊……
首先要确定你的 Mac 显卡是否支持 CUDA。关于支持 CUDA 的显卡列表可以在这里查看 https://developer.nvidia.com/cuda-gpus 。
在 macOS 上编译安装 MXNet 的大体步骤都是按照官方文档来进行安装即可。但由于每个人电脑环境不同,所以可能会出现一些依赖库/包的缺失,导致安装失败。
一、安装依赖软件
在 macOS 上,首先需要具有以下软件:
- Homebrew (to install dependencies)
- Git (to pull code from GitHub)
- Homebrew/science (for linear algebraic operations)
- OpenCV (for computer vision operations)
如果上述已经安装了,就不需要再安装;如果没有,则按照下面的步骤安装:
# 安装 Homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 安装 Git 和 OpenCV
$ brew update
$ brew install git
$ brew tap homebrew/science
$ brew info opencv
$ brew install opencv
# 下载源码
$ git clone --recursive https://github.com/dmlc/mxnet
然后还需要安装 openblas:
# 安装 openblas
$ brew install --fresh -vd openblas
...
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you"ll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/openblas/lib
CPPFLAGS: -I/usr/local/opt/openblas/include
==&> Summary
/usr/local/Cellar/openblas/0.2.18_2: 20 files, 41.8M, built in 12 minutes 33 seconds
如果没有安装 openblas,则会有类似 fatal error: "cblas.h" file not found 的错误,详见 blas issue compile issue · Issue #572 · dmlc/mxnet · GitHub。
接下来修改配置文件:
$ cd mxnet
$ cp make/osx.mk ./config.mk
用 vim 或其他编辑器打开 config.mk,在 USE_BLAS = apple 下面加入如下 ADD_LDFLAGS = -I/usr/local/opt/openblas/lib 和 ADD_CFLAGS = -I/usr/local/opt/openblas/include:
USE_BLAS = apple
ADD_LDFLAGS = -I/usr/local/opt/openblas/lib
ADD_CFLAGS = -I/usr/local/opt/openblas/include
如果你的显卡支持 CUDA,在 config.mk 里面,将 USE_CUDA = 0 设置为 USE_CUDA = 1 就可以了。
最后再编译即可:
$ make -j$(sysctl -n hw.ncpu)
编译安装完成之后,若要使用 MXNet 的 Python 接口,还需要将 mxnet/python 添加到 Python 的包搜索路径。至少有三种方式可以实现。
1. python 代码手动加载
import os, sys;
cur_path = os.path.abspath(os.path.dirname(__file__));
mxnet_lib_path = os.path.join(cur_path, "mxnet/python");
sys.path.append(mxnet_lib_path);
import mxnet as mx;
在没有将 mxnet/python 添加到 PYTHONPATH 之前,依旧可以运行 /example/image-classification 里面的一些测试案例,就是因为案例里面有一行 import find_mxnet,而 find_mxnet 的作用就是手动加载 mxnet/python:
# find_mxnet.py
try:
import mxnet as mx
except ImportError:
import os, sys
curr_path = os.path.abspath(os.path.dirname(__file__))
sys.path.append(os.path.join(curr_path, "../../python"))
import mxnet as mx
2. 将路径加到环境变量 PYTHONPATH 中
这种方法需要修改 shell 的配置文件。如果使用的 bash,则修改 ~/.bashrc;若使用的是 zsh,则修改 ~/.zshrc;其他类似。
在 bash 配置文件中加入下面这一行:
export PYTHONPATH=path_to_mxnet_root/python
其中 path_to_mxnet_root 是下载的 mxnet 源码目录。
3. 全局安装 mxnet
直接运行 mxnet/python/setup.py,将 mxnet 添加到全局路径即可:
python setup.py install --user
运行上面的命令后,脚本会在 ~/.local 目录下创建一个 lib 目录,里面有一个 python-2.7/site-packages 文件夹。
如果是 sudo python setup.py install,则上面的目录会在 /usr/lib 下。
不太支持装gpu的 还是安装mkl 写写代码 测试下,真正训练还在在比较高配的机器上去呗
17年春节,因为前年换新的15款独显macbookpro是A卡,十分不便于使用,宝宝在腊月里装了一台E5-2683v3 16G s2600cw2r 980ti ssd 的机器来作为自己的新年礼物。前几日在上面安装了黑苹果全部功能完美( 10.12.2 ),因为有在搞机器学习,所以昨晚在上面安装了mxnet,我在这里写下mxnet安装过程,给你作为参考。
/Developer
mv cuda cudnn
ln -s /Developer/NVIDIA/cudnn/include/* /usr/local/cuda/include/
ln -s /Developer/NVIDIA/cudnn/lib/* /usr/local/cuda/lib/
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
他会自动帮你把 xcode 的 line 工具给你装好,他没装你就自己先装下再弄。
装好后装一堆必须的东西brew update
brew install python git vim homebrew/science/opencv homebrew/science/openblas homebrew/boneyard/clang-omp-2015-04-01 pkg-config wget curl
pip install scikit-image diskimage-builder scipy matplotlib
cd /usr/local
git clone --recursive https://github.com/dmlc/mxnet
里面 --recursive 是必须要的,他会一股脑的下所有关联,你要是不加,就要手工去下关联包,那自然是痛苦的。
(如果你的网络像我一样不给力,可以设定http_proxy和https_proxy环境变量,可以让他走ss-local啥的,当然ss是需要转一下成http的才行。我这边网速慢慢来是行不通的老断,走梯子几十秒的事情)然后把人家官方给的config给复制一份出来(我吐槽一下,就不能好好的用autoconf吗? ./configure 不好吗?稍微正常一点不好吗? )。cd /usr/local/mxnet
cp make/osx.mk ./config.ml
vim config.mk
export CC = clang-omp
export CXX = clang-omp++
ADD_LDFLAGS = -L/usr/local/opt/openblas/lib
ADD_CFLAGS = -I/usr/local/opt/openblas/include
USE_CUDA = 1
USE_CUDA_PATH=/usr/local/cuda
USE_CUDNN=1
USE_OPENCV=1
USE_OPENMP=1
USE_BLAS = openblas
#USE_INTEL_PATH = NONE
make -j28
然后很快就编译完了。
最后一般是少不了几个警告的,我这边出了1个,不报错继续就好,报错了就着手处理。如果中途报错了,排错完了记得 make clean_all 一下再重新make,要不旧的过程文件会很容易坑。看看so生成了没ls -l lib
cd python
sudo python setup.py install
export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/mxnet/lib:$DYLD_LIBRARY_PATH
我这个格式是zsh的,你要是其他的shell请按照你用的shell来设置环境变量。
接下来去跑个例子看看cd /usr/local/mxnet/example/neural-style
./download.sh
usage: nstyle.py [-h] [--model {vgg}] [--content-image CONTENT_IMAGE]
[--style-image STYLE_IMAGE] [--stop-eps STOP_EPS]
[--content-weight CONTENT_WEIGHT]
[--style-weight STYLE_WEIGHT] [--tv-weight TV_WEIGHT]
[--max-num-epochs MAX_NUM_EPOCHS]
[--max-long-edge MAX_LONG_EDGE] [--lr LR] [--gpu GPU]
[--output_dir OUTPUT_DIR] [--save-epochs SAVE_EPOCHS]
[--remove-noise REMOVE_NOISE]
[--lr-sched-delay LR_SCHED_DELAY]
[--lr-sched-factor LR_SCHED_FACTOR]
python nstyle.py --output_dir ~/Documents/zhihu_mac_install_mxnet
然后用梵高的画进行的训练。
最后就产生了一副美丽的画~一切搞定~万岁。
因为进行过mxnet python 支持的安装,这个安装是系统库的,所以用的时候直接 import find_mxnet 然后 import mxnet as mx 然后 mx.xxxx 就行了。libmxnet.so 的路径也加到环境变量DYLD_LIBRARY_PATH里了,pkg-config 也装了。所以理论上你编python的也好,c/c++的也罢,不管是放在那里都是可以找得到依赖。
如果有多个用户要共享,可以吧ld放到全局里,这样子会方便些。
最后上我家的猫咪,谁要不经过同意转载,不写明出处就引用,就让我家猫猫抓花他的脸!梵高作品-《捍卫主人战役-胜利归来的麦克白》(大雾)后来发现写了一大篇,不放到文章里好浪费,下面是文章的链接,欢迎大家捧场~~。Mac OS 10.12.2 下安装Mxnet并集成CUDA+OpenMP+OpenCV+cuDNN
在关于本机里可以看到图形卡信息,如果不是NVIDIA卡,肯定就不能安装CUDA了;
图形卡 NVIDIA GeForce GT 750M 2048 MB这两年的Mac Pro 15新品都是AMD卡。。mac pro不用装cuda,用的GPU不是英伟达的,是intel的集成显卡。安装caffe的话可以使用 OpenCL Caffe 分支:https://github.com/BVLC/caffe/tree/opencl
黑苹果上今天安装了 CUDA 8
没cuda是不能跑gpu部分的。他只是文档没写吧。你可以参照caffe的文档看看怎么装cida,我记得写了。
可是mac是a卡啊···
Tenseorflow 现在通过ComputeCpp支持了OpenCL,可能对于A卡会更好。
MXnet倒是在等AMD的CUDA兼容。2013年后从N卡换A卡了…https://www.zhihu.com/question/21488019
推薦閱讀:
※cuDNN怎麼無法下載呢?
※打算用caffe做人臉識別,用的是vgg,如何使用model?
※有沒有雲端的深度學習計算服務?
※用matlab做深度學習,有什麼工具箱可以直接調用嗎?
TAG:深度学习DeepLearning | Caffe深度学习框架 | mxnet |