windows下如何配置AWS进行深度学习

update—-2018.04.13

卷积神经网络(Convolutional Neural Network,CNN)用于图像处理确实是非常出色,但是随之而来的计算量也很大,如果没有配置过硬的电脑,训练过程实在让人焦急。

好在Udacity赠送100刀的亚马逊云服务代金券,下面也是整理自Udacity深度学习纳米学位的课程。

AWS介绍

即amazon web services,可以在其云端的 GPU (图形处理器)上进行训练。虽然 CPU 可以比 GPU 计算更复杂的运算,但是吞吐量较小。因此在训练神经网络时,GPU 比 CPU 的速度要快很多。GPU 在同一时间会执行更多的计算,当我们处理大数据时这很重要。

Amazon 弹性计算云 EC2实例上的p2.xlarge 适合通用GPU计算应用程序,配备Intel Xeon E5-2686 v4 (Broadwell) 处理器、NVIDIA K80 GPU,每个配备 2496 个并行处理内核和 12GiB 的 GPU 内存以及高速的带宽。

准备工作

首先申请AWS的账号,需要支持Visa的信用卡。

然后查看你的EC2服务上限报告,如果上限为0的话,需要提交上限提升请求 (升高上限不需要收费)

windows下如何配置AWS进行深度学习_第1张图片

请求提高上限
- Limit Type: EC2 Instances
- Region: US East(Northern Virginia)(也可以选其他有这个实例的地区)
- Primary Instance Type:p2.xlarge
- Use Case Description:填写合理理由即可

等待邮件回复,批准后选择对应的地区,进行下一步创建一个实例。

启动实例

  • 转到 EC2 管理控制台
  • 点击“启动实例”按钮
  • 点击“Community AMI”
  • 搜索“udacity-dl”AMI。
  • 针对 udacity-dl AMI 点击“选择”按钮。

这个AMI比较老了 ,现在可以用Deep Learning AMI (Ubuntu),对应的putty中登陆hostname也要改成[email protected]

这个AMI(亚马逊机器镜像)包含在 GPU 上训练神经网络所需的所有环境文件和驱动程序,也可以按需自行添加。

选择实例

选择p2.xlarge 实例,如果最终出现如下提示,要确认网页右上角选择的区域是否是提升上限的区域。

后面默认下一步,到“安全组”

这里写图片描述

安全组

  • 点击“修改安全组”
  • 设置安全组
    • 选择创建“新的安全组”
    • 将“安全组名称”设为“Jupyter”(可选)
    • 点击“添加规则”
    • 设置“自定义 TCP 规则”
    • 将“端口范围”设为“8888”
    • 将“来源”设为“任何地方”
  • 点击“查看和启动”

启动

  • 点击“启动”按钮,跳转到创建密钥对。然后点击“启动实例”
    • 如果有,可以选择现有的;
    • 如果没有,可以创建新的,
    • 如果AMI预先配置好了用户帐号和密码,可以选择“在没有密钥对的情况下继续”。udacity-dl 的这个AMI可以这样选择。
  • 点击“查看实例”按钮,转到 EC2 管理控制台并观察你的实例开始启动。

注意!!!
此刻起,运行此EC2实例,AWS会收取费用,一般是0.9$/h。

如果不使用一定记得“停止”此实例。“停止”状态下还是会收取小额的存储空间费用(首次注册可以有1年30G的免费存储空间),并且不断积累,直到你“终止”(即删除)实例。

竞价实例
有一个节省的方法,是采用“竞价实例”。适合于配置好了,准备跑大型网络的时候,因为不可以“停止”,只能“终止”,但是价格一般不超过0.3$/h。

竞价实例选择请求类型为“请求并维护”,这样不至于中途被停掉,如果价格上涨会自动补上差价,但是价格不会超过0.9$/h。

  • 竞价实例要配合EBS卷使用,终止竞价实例之前将已经配置好的环境和下载的大数据集保存成AMI,这样每次就可以直接从AMI启动。
  • 竞价实例如果选择的是 “持续”, 当前实例终止之后会自动打开新的实例,若要完全终止,需要取消竞价请求。

登陆实例

配置好之后,还需要几分钟的时间初始化。在 EC2 管理控制台上看到“2/2 检查已通过”消息后,实例就可以登录了。

实例的登陆需要用ssh,由于Windows下没有自带的ssh客户端。下面需要采用PuTTY从windows连接到Linux实例,用WinSCP进行文件传输。

使用PuTTY从Windows连接到Linux实例

准备工作

  • 安装PuTTY:此处下载
  • 获得实例ID: Amazon EC2 控制台(位于 Instance ID (实例 ID) 列中)
  • 获得实例的公有DNS名称: Public DNS (IPv4) 列
  • 查找私有密钥: .pem 文件的路径
  • 允许当前IP到实例的入站SSH流量:可以在安全组中设置为“任何位置”,反正需要key才能访问。

使用PuTTYgen转换私有密钥

PuTTY 本身不支持 Amazon EC2 生成的私有密钥格式 (.pem)。需要用PuTTYgen 将密钥转换成所需的 PuTTY 格式 (.ppk)。

  • 启动 PuTTYgen。
  • 在 Type of key to generate 下,选择 RSA。
  • Load .pem 文件。
  • 选择 Save private key,以 PuTTY 可以使用的格式保存密钥。
  • 为该密钥指定与密钥对相同的名称。PuTTY 自动添加 .ppk 文件扩展名。

启动PuTTY会话

  • 启动 PuTTY。
  • 在 Category 窗格中,选择 Session 并填写以下字段:

    • Host Name 框中,输入 user_name@public_dns_name。本例输入[email protected] (IPv4 Public IP)

      对于 Amazon Linux AMI,用户名为 ec2-user。
      对于 RHEL AMI,用户名称是 ec2-user 或 root。
      对于 Ubuntu AMI,用户名称是 ubuntu 或 root。
      对于 Centos AMI,用户名称是 centos。
      对于 Fedora AMI,用户名称是 ec2-user。
      对于 SUSE,用户名称是 ec2-user 或 root。

  • 在 Connection type 下,选择 SSH。确保 Port 为 22。

  • 在 Category 窗格中,展开 Connection,再展开 SSH,然后选择 Auth。
    • 选择 Browse,添加之前生成的 .ppk 文件。
    • 在 Category 树中选择 Session,在 Saved Sessions 中输入会话名称,然后选择 Save,便于以后使用。(下次重新启动实例时需要更改在 HOST Name 框中更改 IPv4 Public IP)
    • 点击底部 open 即可开启窗口,连接到实例。如果AMI设置密码,需要在窗口中输入,这里用密码“udacity”进行身份验证。然后使用 passwd 命令更改密码。

至此,可以通过 PuTTY 的窗口远程运行AWS的实例,类似于远程操作一个网速超快的linux主机。所以需要的资源直接从网上下载,不要从本机传送大文件!!!

在EC2实例上

  • 克隆github上的项目: git clone ....
  • 进入资源库目录: cd deep-learning/intro-to-tensorflow/
  • 激活新的环境: source activate dl
  • 运行jupyter notebook: jupyter notebook --ip=0.0.0.0

在本地主机上

  • 通过访问 X.X.X.X:8888(X.X.X.X 是你的 EC2 实例的 IP 地址,IPv4 Public IP)从网络浏览器中访问 Jupyter notebook。

使用 WinSCP 将文件传输到实例

通过 WinSCP,可以将 Windows 计算机中的文件拖放到 Linux 实例或同步这两个系统之间的所有目录结构。操作类似于 total command。

  • 下载并安装 WinSCP,文件在此处
  • 打开界面之后会显示登陆窗口(如下图),选择“工具”,“导入站点”,从PuTTY导入即可。

windows下如何配置AWS进行深度学习_第2张图片

建立连接后,在连接窗口中,实例显示在右侧,本地计算机显示在左侧。可以直接将文件从本地计算机拖放到远程文件系统。

切记,如果要传入大文件,可以先将文件上传至网盘,再从网盘下载到实例中。
当实例处于开启状态时是会一直计费的!

实时监控

  • 打开新的会话,输入nvidia-smi,可以显示显卡当前信息;
  • 输入watch -n 1 nvidia-smi,可以每1s刷新一次。

windows下如何配置AWS进行深度学习_第3张图片


参考资料:
1. https://zhuanlan.zhihu.com/p/25066187?utm_medium=social&utm_source=weibo
2. https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/putty.html

你可能感兴趣的:(机器学习,深度学习,aws)