前言

吐槽:由于科研任务,需要在云端运行一个基于神经网络的目标识别库,需要用到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查看下装的东西:

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

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

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

  1. 如何使用XShell登录亚马逊EC2云服务器

    http://jingyan.baidu.com/article/a3a3f811d5fc338da2eb8a00.html

  2. 亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计

    设计高可用的应用是架构师的一个重要目标,可是基于云计算平台设计高可用应用与基于传统平台的设计有很多不同.云计算在给架构师带来了很多新的设计挑战的时候,也给带来了很多新的设计理念和可用的服务.怎样在设计 ...

  3. 亚马逊AWS服务器CentOS/Linux系统Shell安装Nginx及配置自启动

    领了一个亚马逊的1年免费服务器,今天尝试安装 Nginx 服务器,使用原生的 Shell 方法. 为了方便以后查看,就把过程记录一下. 注意:亚马逊(AWS)服务器默认只能用 user-ec2 账户进 ...

  4. 亚马逊AWS学习——EC2的自定义VPC配置

    1 网络配置 EC2即亚马逊AWS云服务中的虚拟主机.创建EC2实例时如果使用的默认VPC并分配了公有IP是可以上网的.但我们经常需要自定义的网络环境,这时就需要自己定义VPC和子网了. 1.1 配置 ...

  5. 亚马逊AWS学习——EC2的自己定义VPC配置

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/47153421 本文出自[我是干勾鱼的博客] 1 网络配置 EC2即亚马逊AWS云 ...

  6. 亚马逊AWS EC2云实例AMI安装LNMP环境(3)——Mysql5.5

    概括:这里选择亚马逊EC2的Linux AMI实例,该Linux服务器是亚马逊预配置的Linux环境,内置多个YUM源,属于亚马逊首推的稳定Linux服务器.默认登录用户名为ec2-user,执行ro ...

  7. 亚马逊AWS EC2云实例AMI安装LNMP环境(2)——PHP5.6

    概括:这里选择亚马逊EC2的Linux AMI实例,该Linux服务器是亚马逊预配置的Linux环境,内置多个YUM源,属于亚马逊首推的稳定Linux服务器.默认登录用户名为ec2-user,执行ro ...

  8. 亚马逊AWS EC2云实例AMI安装LNMP环境(1)——Nginx安装

    概括:这里选择亚马逊EC2的Linux AMI实例,该Linux服务器是亚马逊预配置的Linux环境,内置多个YUM源,属于亚马逊首推的稳定Linux服务器.默认登录用户名为ec2-user,执行ro ...

  9. 直压到亚马逊AWS平台,阿里云OSS平台或者腾讯云COS平台

    GTX Compressor (直压上云技术预览版) Powered by GTXLab of Genetalks. 技术预览版本下载地址: https://github.com/Genetalks/ ...

  10. windows系统上利用putty通过SSH连接亚马逊AWS服务器

    1. 找到在购买亚马逊的AWS服务器时保存的密钥文件(假设为abc.pem). 2.打开PuTTYgen,如下图,点击图中1处的“load”,找到abc.pem文件所在的位置,并选择abc.pem,确 ...

随机推荐

  1. 没有Python基础,如何学习用Python写机器学习

    前言 我是一个完全没用过python的人,所以,想写机器学习,就得从语法入手. 首先上W3cSchool去学习基础语法. 基础语法都差不多,重点看一下函数,模块,面向对象. 函数的写法稍有不同,格式上 ...

  2. MappedByteBuffer VS FileChannel:从内核层面对比两者的性能差异

    本文基于 Linux 内核 5.4 版本进行讨论 自上篇文章<从 Linux 内核角度探秘 JDK MappedByteBuffer> 发布之后,很多读者朋友私信我说,文章的信息量太大了, ...

  3. C++ atomic

    atomic 每个 std::atomic 模板的实例化和全特化定义一个原子类型.若一个线程写入原子对象,同时另一线程从它读取,则行为良好定义. 另外,对原子对象的访问可以建立线程间同步,并按 std ...

  4. #单调栈,树状数组#CF1635F Closest Pair

    题目 设 \(f(x,y)=|a_x-a_y|*(w_x+w_y)\),其中 \(a\) 单调递增 多组询问求 \(\min_{l\leq l'<r'\leq r}\{f(l',r')\}\) ...

  5. #斯坦纳树,状压dp#洛谷 3264 [JLOI2015]管道连接

    题目 分析 如果对于每一个频道单独跑斯坦纳树可能会存在两种频道共用一条道路而重复统计的情况, 考虑状压dp,设\(f[s]\)表示选择频道二进制状态为\(s\)的最小贡献,那么对于每个状态跑斯坦纳树然 ...

  6. #博弈论#HDU 2516 取石子游戏

    题目 \(n\)个石子,两人轮流取.先取者第1次可以取任意多个, 但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍. 取完者胜.先取者负输出"Second win".先取 ...

  7. OpenHarmony轻量设备Hi3861芯片开发板启动流程分析

    引言 OpenHarmony作为一款万物互联的操作系统,覆盖了从嵌入式实时物联网操作系统到移动操作系统的全覆盖,其中内核包括LiteOS-M,LiteOS-A和Linux.LiteOS-M内核是面向I ...

  8. Java 异常处理与正则表达式详解,实例演练及最佳实践

    Java 异常 - Try...Catch 在 Java 代码执行期间,可能会发生各种错误,包括程序员编码错误.用户输入错误以及其他不可预料的状况. 当错误发生时,Java 通常会停止并生成错误消息, ...

  9. CMake vs Makefile 如何选择适合你的项目构建工具

    CMake vs Makefile: 如何选择适合你的项目构建工具 在软件开发中,构建(build)是一个非常重要的过程.我们需要将源代码转换为可执行文件或库文件.为了完成此过程,我们通常使用构建工具 ...

  10. mybatis复习(二)

    简介 mybatis是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql语句本身, 而不需要花费精力去处理加载驱动.创建连接.创建 statement 等繁杂的 ...