前言

吐槽:由于科研任务,需要在云端运行一个基于神经网络的目标识别库,需要用到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. vue项目中添加水印效果

    新建js文件:例如warterMark.js 'use strict' let watermark = {} let setWatermark = (str) => { let id = '1. ...

  2. mysql where子句 区分 大小写

    解决办法 使用binary关键字,此时就能区分大小写了 SELECT * FROM `tb_test` WHERE BINARY COL_1='abc'

  3. 链表栈(LinkedListStack)

      链式栈:就是一种操作受限的单向链表,每次入栈一个元素,向链表中添加一个节点,出栈一个元素,释放一个节点.因为栈具有"后进先出"的特点,如果每次在链表的尾部进行插入和删除,就要遍 ...

  4. ET8.1(一)简介

    此系列文章逐个内容讲解ET8.1的新特性. ET8.1 发布,带来以下新特性: 1. 多线程多进程架构,架构更加灵活强大,多线程设计详细内容请看多线程设计课程   2. 抽象出纤程(Fiber)的概念 ...

  5. #博弈论#Poj 2484 A Funny Game

    题目 \(n\)个石子排成一圈,每次可以取一个或相邻的一对, 取完为胜,问先手是否必胜 分析 无论先手如何取,后手都能模仿先手的取法. 比如说,当石子个数为奇数时先手取相邻的一对,后手可以将对面的那一 ...

  6. Kafka原理剖析之「位点提交」

    一.背景 Kafka的位点提交一直是Consumer端非常重要的一部分,业务上我们经常遇到的消息丢失.消息重复也与其息息相关.位点提交说简单也简单,说复杂也确实复杂,没有人能用一段简短的话将其说清楚, ...

  7. Java 容器详解:使用与案例

    Java容器是一套工具,用于存储数据和对象.可以与C++的STL类比.Java容器也称为Java Collection Framework (JCF).除了存储对象的容器之外,还提供了一套工具类,用于 ...

  8. Python3中pip3命令的用法介绍及安装配置

    第一节:pip3是什么?有啥用? pip3:(Python3 Install Package ),这个英文全称是我为了更好的理解这个命令这么叫的,官方没有这对个命令的全称的解释:) python 支持 ...

  9. Visual Studio 2019汇编报错 warning LNK4258: 指令“/ENTRY:main@0”与开关“/ENTRY:main”不兼容;已忽略

    Visual Studio 2019汇编报错 warning LNK4258: 指令"/ENTRY:main@0"与开关"/ENTRY:main"不兼容:已忽略 ...

  10. logging模块简介python

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...