如今计算机视觉领域深度学习已经成为主流,我在美读研的时候,深度学习并未取得大的突破,当时流行的图像识别分类器多采用手工设计特征+编码+SVM(支持向量机)框架下的算法,终于到了2012年(我刚毕业),在ILSVRC上,alexnet的横空出世,将分类错误率从以前的25.7%降到了15.3%,这只是一个5卷积层+2全链接层的卷积神经网络,却一下取得了10%的突破,这是深度学习在CV领域的一次翻身仗,自此之后,ImageNet的参赛者几乎全体转向了基于卷积神经网络的深度学习算法。基于此的应用如雨后春笋般一晚上之间全冒了出来。深度学习尤为是卷积神经网络就如同万能的大杀器,在计算机视觉的各个领域开始发挥做用。python
cuda的应用在这一进程中起到了毋庸置疑的做用,因此想要在这一领域开展工做,使用正确的硬件和计算框架是很重要的,本文提供了一个快速搭建MXNET环境的方案,虽然TensorFlow和Caffe是更加主流,可是MXnet做为Amazon主推的深度学习平台,具备轻量级,高性能等特色,而且支持多种语言,能够说是一个很是具备潜力的框架。linux
个人硬件环境是一台GPU服务器,有2块tesla p100进行GPU运算,对于通常人来讲,你的硬件至少须要一个支持cuda的英伟达显卡,而且安装了任意linux环境,常规安装教程不少,但都很繁琐,因为我是用docker进行部署,因此能够很是快速的进行环境搭建,会用docker而且想省去安装过程的同窗能够参考如下教程。算法
前提是你的linux环境中已经安装了docker,nvidia cuda驱动,NVIDIA docker等,这些步骤在网上有不少的教程,在此不表 docker
https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=mxnet&starCount=0 在docker官方取得你须要镜像的信息,并执行docker pull命令vim
docker pull mxnet/python:你的版本tag。 浏览器
若是镜像下载速度慢,能够搜一些国内镜像服务器的地址,例如 docker pull registry.docker-cn.com/mxnet/python:1.3.0_gpu_cu90_mklbash
随后启动该镜像:服务器
启动镜像网络
执行docker ps -a ,获取你刚pull的镜像的 id,即下文命令 commit后面的字段
框架
给你的镜像取一个名字
docker commit 90b97b96394a example:0.1
随后启动该镜像,若是须要进行外部访问,好比启动一个jupyter在浏览器中进行编码,须要配置端口映射,所有命令以下:
docker run -itd --runtime=nvidia --name=example -p 19999:8888 -p 16007:6006 example:0.2 /bin/bash
这时镜像应该已经启动,使用docker ps -a 指令查看容器运行状态,若是正常运行,便可进入容器。
执行命令 docker exec -it example bash 进入容器,此时已经配好了mxnet环境,进入python,随便敲几行代码进行测试。
我在实际使用过程当中,发现该容器缺了不少基础组件,如python-dev ,matplotlib等,甚至连vi/vim都没有,因此要安装jupyter的话,注意添加相关依赖,若是报错缺包,安装这些包便可。 jupyter安装教程也不少,在此不表。
启动jupyter后,便可愉快的进行各类实验啦~