使用亚马逊AWS云服务器进行深度学习——免环境配置/GPU支持/Keras/TensorFlow/OpenCV

吐槽:由于科研任务,需要在云端运行一个基于神经网络的目标识别库,需要用到GPU加速。亚马逊有很多自带GPU的机器,但是环境的配置可折腾坏了,尤其是opencv,每次总会出各种各样的问题!
无奈中,看见了Adrian Rosebrock的blog:Pre-configured Amazon AWS deep learning AMI with Python
其已经预配置好各种环境,包括Keras, TensorFlow, scikit-learn, scikit-image, OpenCV等。可以说是很棒棒喽。
此文章并非其文章的翻译稿,而是提炼主要内容并且亲自实践而来,补充了很多坑。如条件允许,还请自行阅读英文原文,更详细。

第一步:竞价获取服务器

注册亚马逊什么的就不说了,注意免费一年政策并不能用于这些带GPU的机型就是了。

使用竞价请求来申请主机,至于为什么要用竞价实例,第一是便宜,第二是我发现我的账号没有申请持续性gpu主机实例的权限。至于竞价实例是什么,请google/baidu。

这里写图片描述

原文中,给了四种适合的机型:

  • c4.xlarge: $0.199/hour

  • p2.xlarge: $0.90/hour

  • p2.8xlarge: $7.20/hour

  • p2.16xlarge: $14.40/hour

For CPU instances I recommend you use the “Compute optimized” c4.* instances. In particular, the c4.xlarge instance is a good option to get your feet wet. If you would like to use a GPU, I would highly recommend the “GPU compute” instances. The p2.xlarge instance has a single NVIDIA K80 (12GB of memory). The p2.8xlarge sports 8 GPUs. While the p2.16xlarge has 16 GPUs.

然而,我选择g2,8cpu,15g ram,带一块GPU,最基础的任务足够。

如图选择,搜索ami-ccba4ab4,找到这一个预配置的AMI镜像

这里写图片描述

请注意这里原本是16G的卷,建议最好20-30G,防止你还要配置或者安装些东西,之前没用这个镜像,随便编译个opencv,硬盘就不够了。

这里写图片描述

提交!接下来便是等待,有快有慢,快的时候立刻就有机器。

这里写图片描述

第二步:一键安装显卡驱动

拿到机器后,使用ssh连接上,用户名是ubuntu。

这里写图片描述

这里有个坑就是显卡驱动。原文已经说了,尽管镜像中本来安装好了驱动,由于挂载盘特性,驱动会可能被系统屏蔽,需要重新安装,或者是屏蔽某系统文件(没仔细研究,我觉得重装来得快,哈哈哈)。

首先,检查是否有驱动:

nvidia-smi

如果显示:

这里写图片描述

则已经有驱动了,不需要安装。

否则,你需要安装驱动,作者已经在/installers下放了显卡驱动。安装:

cd installers
sudo ./NVIDIA-Linux-x86_64-375.26.run --silent

值得注意的是,我用的g2这个机器的显卡K520,是不可以用这个驱动的,我们需要重新下载驱动,下载地址如下

http://www.nvidia.com/download/driverResults.aspx/108586/en-us

供大家核对信息:

这里写图片描述

将下载的驱动也放在该文件夹后,先要给该文件执行的权限,然后静默安装:

sudo chmod 777 NVIDIA-Linux-x86_64-367.57.run
sudo ./NVIDIA-Linux-x86_64-367.57.run --silent

安装时会弹出一些警告,不用理会,安装好后,再次执行nvidia-smi,得到之前的图。

现在,你的环境已经配置好了。

第三步:开启python虚拟环境

最后一步,需要打开大神预先配置好的环境,执行

workon dl4cv

这里写图片描述

完成!你可以使用pip-freeze查看下装的东西:

这里写图片描述

最后,放一张运行我程序的图:

这里写图片描述

如有问题,可以留言讨论,转载请注明原文链接和作者姓名!

后端技术漫谈 CSDN认证博客专家 分布式 Linux Java
我是一名后端开发工程师。主要关注后端开发,数据安全,爬虫,物联网,边缘计算等方向,欢迎交流。

各大平台都可以找到我:

- 微信公众号:后端技术漫谈
- Github:@qqxx6661
- CSDN:@蛮三刀把刀
- 知乎:@后端技术漫谈
- 简书:@蛮三刀把刀
- 掘金:@蛮三刀把刀
- 腾讯云+社区:@后端技术漫谈


原创文章主要内容:

- 后端开发
- Java面试
- 设计模式/数据结构/算法题解
- 爬虫/边缘计算/物联网
- 读书笔记/逸闻趣事/程序人生
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页