使用aws跑深度学习_一步步教你在亚马逊云服务器AWS上训练深度学习模型
前段时间在上Udacity无人驾驶 Term1的课程,里面P3的Behaviour Cloning项目中需要使用亚马逊的云服务器(即AWS,以下使用AWS代替)来训练深度学习的模型。对于没有接触过AWS的我来说,可以说步步是坑,而且互联网上也并没有非常完整详细的教程,这个Project可以说是折磨我最久,也是最让我痛苦的Project。让大家少走一些弯路,特此分享出来,希望能帮到大家。注意:因为我
前段时间在上Udacity无人驾驶 Term1的课程,里面P3的Behaviour Cloning项目中需要使用亚马逊的云服务器(即AWS,以下使用AWS代替)来训练深度学习的模型。
对于没有接触过AWS的我来说,可以说步步是坑,而且互联网上也并没有非常完整详细的教程,这个Project可以说是折磨我最久,也是最让我痛苦的Project。
让大家少走一些弯路,特此分享出来,希望能帮到大家。
注意:因为我使用的Udacity提供的carnd的虚拟环境,所以以下都使用carnd来代替EC2-User。大家在使用过程中需要注意替换。
登录AWS服务器
这一部分比较简单,我简单写一下。网络上有很多相关的资料,大家不清楚的话可以去查阅,也可以去查AWS的帮助文档。
1.开启Instance
2.ssh carnd@xxx (xxx为公共DNS)
3.输入密码
4.登录成功
上传及引用数据
如果要训练模型的话,需要大量的数据。要在AWS的GPU上训练这些模型,必须要先将这些数据上传到AWS的服务器上,才能引用。
所以我们需要利用scp命令在本地terminal上将本地文件压缩包copy到服务器上。
scp xxxxx(本地路径) carnd(ec2-users)@xxx(公共DNS):/home/carnd(ec2-users)/
(注意,这一步一定要在本地的terminal上才可以。)
利用文件命令在服务器的terminal上打开目标文件夹:
ls /home/carnd/
然后解压:
unzip DATA.zip
其中DATA.zip为要解压的文件名称,unzip为解压指令。
(注意,这一步一定要在服务器的terminal上操作才可以)
这样就可以在后续的程序中引用了
登录Jupyter notebook:
因为Jupyter notebook是大家使用的比较多的IDE,也确实使用起来比较方便,所以下面讲解如何在服务器上打开Jupyter Notebook.
1.在登录服务器的Terminal上输入:
jupyter notebook --generate-config
2.然后在本地Notebook中运行以下命令:
from IPython.lib import passwd
passwd()
运行程序,得到类似于这样的密码"sha1:b592a9cf2ec6:b99edb2fd3d0727e336185a0b0eab561aa533a43"
然后在登录服务器的Terminal上输入:
vi ~/.jupyter/jupyter_notebook_config.py
然后在打开的文档中输入i,此时i为插入(insert)指令,利用其将如下字段复制到文档头部(注意将下面的密码替换成前面你得到的密码),我的carnd环境不需要密钥,所以只需要输入后三行即可。
c = get_config() # get the config object
c.NotebookApp.certfile = u'/home/ubuntu/ssl/cert.pem' # path to the certificate we generated
c.NotebookApp.keyfile = u'/home/ubuntu/ssl/cert.key' # path to the certificate key we generated
c.IPKernelApp.pylab = 'inline' # in-line figure when using Matplotlib
c.NotebookApp.ip = '*' # serve the notebooks locally
c.NotebookApp.open_browser = False # do not open a browser window by default when using notebooks
c.NotebookApp.password = 'sha1:b592a9cf2ec6:b99edb2fd3d0727e336185a0b0eab561aa533a43' # this is the password hash that we generated earlier.
完成后,需要退出这个界面。
先按Esc,然后再输入“:wq”,引号中的命令意为保存更改并退出,此时界面回到正常的服务器的Terminal界面。
然后在登录服务器的Terminal中输入:
sudo ssh -i awsKeys.pem -L 443:127.0.0.1:8888 ubuntu@ec2-54-147-126-214.compute-1.amazonaws.com
上面的大家酌情去替换和更改。
继续在Terminal中输入
mkdir notebooks
cd notebooks
在打开notebook之前需要输入激活carnd-term1(也就是EC2-User),也就是虚拟环境里预装的各种程序。
source activate carnd-term1
然后输入打开notebook的命令:
jupyter notebook --no-browser
因为端口更改为8888,所以在浏览器中输入xxxx:888即可,其中xxxx为公共DNS或者公共Ip均可。
接下来,你就可以在Jupyter notebook上开心的训练你的模型了。
以上就是我汇总的AWS的使用方法,主要就是登录AWS,将数据上传至AWS并解压,然后在AWS上打开Jupyter Notebook。
祝各位终身学习者,在学习的过程中一切顺利~
更多推荐
所有评论(0)