专栏首页后端技术漫谈搭建AWS云服务器深度学习环境——免环境配置/GPU支持/Keras/TensorFlow/OpenCV

搭建AWS云服务器深度学习环境——免环境配置/GPU支持/Keras/TensorFlow/OpenCV

前言

该文章是以前做的云上深度学习环境搭建笔记,当时也花了不少心血,在面试助攻手册的整理发布过程中穿插着来一篇,放松一下。若对机器学习感兴趣的小伙伴,可以亲自上手体验一番,很有乐趣。

由于科研任务,需要在云端运行一个基于神经网络的目标识别库,需要用到GPU加速。亚马逊有很多自带GPU的机器,但是环境的配置可折腾坏了,尤其是opencv,每次总会出各种各样的问题!

无奈中,看见了Adrian Rosebrock的英文博文: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查看下:

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

如有问题,可以留言讨论!

关注我

我是蛮三刀把刀,目前为后台开发工程师。主要关注后台开发,网络安全,Python爬虫等技术。

来微信和我聊聊:yangzd1102

Github:https://github.com/qqxx6661

原创博客主要内容

  • 笔试面试复习知识点手册
  • Leetcode算法题解析(前150题)
  • 剑指offer算法题解析
  • Python爬虫相关技术分析和实战
  • 后台开发相关技术分析和实战

同步更新以下博客

1. Csdn

http://blog.csdn.net/qqxx6661

拥有专栏:Leetcode题解(Java/Python)、Python爬虫开发

2. 知乎

https://www.zhihu.com/people/yang-zhen-dong-1/

拥有专栏:码农面试助攻手册

3. 掘金

https://juejin.im/user/5b48015ce51d45191462ba55

4. 简书

https://www.jianshu.com/u/b5f225ca2376

个人公众号:Rude3Knife

如果文章对你有帮助,不妨收藏起来并转发给您的朋友们~

本文分享自微信公众号 - Rude3Knife(Rude3Knife),作者:蛮三刀把刀

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [小工具]一键完整备份你的Csdn博客文章(支持Markdown,HTML,文中图片)

    一直想将自己的Csdn博客完整地备份到本地,以免一些老文章以后落得个404(打不开)的下场。

    Rude3Knife的公众号
  • Java线上问题排查神器Arthas快速上手与原理浅谈

    以前,你碰到这些问题,解决的办法大多是,修改代码,重新上线。但是在大公司里,上线的流程是非常繁琐的,如果为了多加一行日志而重新发布版本,无疑是非常折腾人的。

    Rude3Knife的公众号
  • Java并发知识点快速复习手册(下)

    如果多个线程对同一个共享数据进行访问而不采取同步操作的话,那么操作的结果是不一致的。

    Rude3Knife的公众号
  • 『Go 内置库第一季:json』

    在日常开发过程中,使用最频繁的当然是内置库,无数的开源项目,无不是在内置库的基础之上进行衍生、开发,所以其实是有很大的必要进行梳理学习。

    谢伟
  • Apollo 源码解析 —— Config Service 通知配置变化

    本文接 《Apollo 源码解析 —— Admin Service 发送 ReleaseMessage》 一文,分享配置发布的第四步,NotificationC...

    芋道源码
  • 结构化日志和业务审计日志

    JavaEdge
  • Python标准库json模块和pickle模块使用详解

    将Python数据类型转换为其他代码格式叫做(序列化),而json就是在各个代码实现转换的中间件。

    砸漏
  • 互联网冲击暴露中国经济的脆弱

    大数据文摘
  • 消费升级:上下通透的精致生活之变

    孟永辉
  • 一键转换CUE文件编码

    写完作业逛PT站发现 Beyond 专辑合集的 CD,想到网易云音乐里面没有一直很喜欢的 Beyond 的《长城》,遂让树莓派花了半个小时时间把它拖到了本地。

    zgq354

扫码关注云+社区

领取腾讯云代金券