使用AWS最便宜的GPU实例 from 动手学深度学习v2 李沐大神
由于购买的电脑没有配NVIDIA独立显卡,故在学习到AlexNet的时候就没办法在CPU上运行相关代码,感谢李沐大神手把手教学使用AWS最便宜的GPU实例,视频有点加速,本人也是放了0.75倍速看了好几遍才操作成功,所以将此过程写成如下内容,供大家参考。
1.注册AWS账号
进入网站:https://portal.aws.amazon.com/billing/signup?nc2=h_ct&src=header_signup&redirect_url=https%3A%2F%2Faws.amazon.com%2Fregistration-confirmation#/start
如果有亚马逊账号可以直接登录,没有的话就要注册一个,由于本人是刚开始入门,因此没有亚马逊账号,就注册了一个。
总共有五个步骤,正常的话注册也比较简单,和一些普通的注册流程差不多,需要一张信用卡用于付费,注册时会先预扣1美元用于验证卡是否可用。
但本人在最后最后一步验证短信验证码的时候遇到了问题:收不到短信验证码,后来上网查询后发现可以在AWS service上申请人工验证。
可以进入AWS support center:https://console.aws.amazon.com/support/home#/,创建一个case,用英文描述你的问题,亚马逊会通过邮件联系你,会询问你何时有时间接听电话,通过电话来验证账号,打电话前她会发送一个OTP到邮箱,接听电话的时候将OTP提供给工作人员便可以验证完成,注意电话是从美国直接打过来的,通话用的是英文。
2.登录AWS,启动实例
有了账号之后就可以登陆AWS→选择service:EC2→选择地区:我选择的是Asia Pacific(Hongkong)→启动实例→选择操作系统:跟沐神一样选择了Ubuntu Server 18.04 LTS
→选择g4dn实例→更改内存为20G→需要新建并下载一个密钥,命名为d2l→启动实例
我在启动实例的时候遇到一个问题:问题主要内容是说g4dn包含4个vCPU,但我的CPU limit为0,需要更改limit,因此我根据它的提示,再次进入support center,填写问题描述,更改CPU limit为4,亚马逊会通过邮件回复修改成功后,过几分钟再次登陆启动实例便可以启动成功。点击ID看到实例处于running状态便说明启动成功。
3.连接到服务器
在ssh输入:ls Downloads/d2l.pem 看我们下载的d2l的公钥
再输入:chomd 400 Downloads/d2l.pem 把权限改成400
指定公钥: ssh -i Downloads/d2l.pem ubuntu@xx.xxx.xx.xx
输入:sudo apt-get update 更新一下系统包
输入:sudo apt-get install build-essential --Y
下载cuda:
wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run
运行cuda:sudo sh cuda_11.3.1_465.19.01_linux.run →accept→Install
安装好后更改二进制文件位置:vim .bashrc →LD_LIBRARY_PATH=usr/local/cuda-11.2/lib64
先按ESC,再输入:wq退出编辑模式,输入bash
下载miniconda:wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh
再输入:bash Miniconda3-py39_4.9.2-linux-x86_64.sh →回车→yes→PREFIX=/home/ubuntu/miniconda3→yes
输入bash→创建一个新的环境:conda create -n d2l python=3.8 pip→y
输入conda activate d2l
下载pytorch:pip3 install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
去动手学深度学习下载记事本:wget https://zh-v2.d2l.ai/d2l-zh.zip
安装unzip:sudo apt-get install unzip
解压:unzip d2l-zh.zip
输入ls查看文件夹
安装d2l和jupyter notebook:pip install -U d2l jupyter
运行jupyter notebook:jupyter notebook
新建一个终端窗口(我的是mac,快捷键为:command+t)
输入ssh -i Downloads/d2l.pem -L8888:localhost:8888 ubuntu@xx.xxx.xx.xx把远程终端映射到本地,点击之前的url就可以访问了(我的点击好像没反应,复制到浏览器也可以)
用pytorch中的resnet作为测试,把epoch改为1。这样应该就可以了。
友情提示:用完记得在AWS关闭实例,因为是按小时收费的。