前段时间在上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。

祝各位终身学习者,在学习的过程中一切顺利~

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐