谷歌云购买地址:点击购买

谷歌云端教学

Google cloud云端教学

在我们开始之前

大提醒:请确保您停止实例!

(我们知道,一旦您的作业开始运行,您就不会读到最底部,因此,由于它非常重要,我们也将其打印在顶部  )

完成操作后,别忘了  停止实例  (通过单击显示您的实例的页面顶部的“停止”按钮),否则您将  用尽所有积分  ,这将非常可悲。:(

如果您正确地遵循以下说明,则应该能够重新启动实例,并且下载的软件仍然可用。

sadpuppy_nocredits

创建和配置您的帐户

对于班级项目和作业,我们提供了一个选项,可以使用Google Compute Engine开发和测试您的实施。本教程列出了使用Google Cloud处理分配的必要步骤。 我们希望本教程大约需要一个小时。不要被这些步骤吓到,我们试图使本教程更加详细,以使您不太可能陷入某个特定步骤。请在Piazza上使用google_cloud标记所有与Google Cloud有关的问题。

本教程介绍了如何设置自己的Google Compute Engine(GCE)实例以处理分配。每个学生在整个季度中将获得100美元的信用额度。首次注册时,默认情况下,您还会从Google获得$ 300的信用。请尝试明智地使用资源。但是,如果最终$ 100不够用,我们将尝试在季度继续进行时调整此数字。 注意:对于作业1,我们仅支持python版本2.7(脚本的默认安装)和3.5.3。

首先,如果您还没有Google Cloud帐户,请转到Google Cloud主页  并点击  Compute来创建一个  。转到下一页时,单击蓝色的“  免费试用”按钮。如果您尚未登录gmail,则会看到类似于以下页面的页面。登录您的gmail帐户或创建一个新帐户(如果您还没有帐户)。

cloud-launching-screen-1

如果您已经有一个Gmail帐户,它将把您定向到如下所示的注册页面。

cloud-for-free-2

单击 第一个选项的相应的“  是”  或“  否”按钮,在   阅读必需的协议后,对后两个选项选择“ 是 ”。按下蓝色的  同意并继续  按钮以继续至下一页,以输入所需的信息(您的姓名,账单地址和信用卡信息)。输入所需的信息后,按蓝色的  开始我的免费试用  按钮。这样的页面会打招呼:

cloud-dashboard-screen-3

要更改项目名称,请单击 “ 项目信息”  按钮上的“  管理项目设置 ”,  然后保存更改。

cloud-instance-dashboard-screen-3

启动虚拟实例

要启动虚拟实例,请转到 信息中心左侧栏中的  Compute Engine菜单,然后单击  VM实例。然后单击 下一页上的蓝色  CREATE按钮。这将带您进入一个页面,如下图所示。 (注意:除了查看屏幕截图外,请仔细阅读说明。这些说明会告诉您要填写的值)。

确保将区域设置为  us-west1-b  (尤其是对于需要使用GPU实例的分配)。在  计算机类型下,  选择  8个vCPU  选项。单击“ 机器类型”  下的“  自定义”按钮,   并确保将核心数设置为8,将GPU数设置为“  无”  (我们将不在作业1中使用GPU,并且本教程将更新有关GPU使用说明的信息)。单击启动盘  下的  更改按钮  ,选择  OS映像,检查  Ubuntu 16.04 LTS,然后单击蓝色的  选择  按钮。检查一下 允许HTTP通信  和  允许HTTPS通信。单击  磁盘,然后  磁盘  并取消  当实例被删除删除启动盘  (注意“磁盘”选项,可以在一个可扩展的URL在该网页表单的底部隐藏)。单击 页面底部的蓝色  创建按钮。您现在应该已经成功创建了Google Compute实例,它可能需要几分钟才能开始运行。您的屏幕应类似于以下屏幕。当您要停止运行实例时,单击上方的蓝色停止按钮。

cloud-instance-started-4

记下您的<YOUR-INSTANCE-NAME>,在这种情况下,我的实例名称为instance-2。

连接到您的虚拟实例并下载分配

现在,您已经创建了虚拟GCE,您希望能够从计算机连接到它。本教程的其余部分介绍了如何使用命令行执行此操作。首先,从此处下载适合您平台的Google Cloud SDK,   然后按照其安装说明进行操作。 注意:本教程假定您已在网站上执行了步骤4,并将其列为可选步骤。出现提示时,请确保选择us-west1-b作为时区。最简单的连接方法是使用下面的gcloud compute命令。该工具为您处理身份验证。在OS X上,运行:

./<DIRECTORY-WHERE-GOOGLE-CLOUD-IS-INSTALLED>/bin/gcloud compute ssh --zone=us-west1-b <YOUR-INSTANCE-NAME>

有关 更多详细说明,请参  见此页面。现在,您可以在Google Cloud上进行分配了。

运行以下命令将当前分配下载到您的GCE:

wget http://cs231n.stanford.edu/assignments/2017/spring1617_assignment1.zip 

然后运行:

sudo apt-get install unzip

unzip spring1617_assignment1.zip

获取内容。现在,您应该看到一个名为X的文件夹。要为分配1安装必要的依赖项(注意:  您只需要对分配1执行此操作),将cd放入分配目录并运行提供的shell脚本:(  注意:您需要在所有输入框中按[ Enter ]键“ [Y / n]”提示)

cd assignment1 ./setup_googlecloud.sh

在下载过程中,系统会在不同时间提示您输入Y / N。按Enter出现每个提示。现在,您应该拥有分配X所需的所有软件。如果没有错误,则可以正常使用virtualenv。

即跑

source .env/bin/activate

在您的分配目录中以加载venv并运行

deactivate

退出静脉。有关详细信息,请参见作业讲义。

注意:以上说明将使用Python 2.7运行所需的一切。如果您想改用Python 3.5,请编辑setup_googlecloud.sh以替换该行

virtualenv .env 

virtualenv -p python3 .env

跑步前

./setup_googlecloud.sh

将Jupyter Notebook与Google Compute Engine一起使用

许多作业将涉及使用Jupyter Notebook。下面,我们讨论如何从GCE实例运行Jupyter Notebook并在本地浏览器上使用它。

获取静态IP地址

将您的GCE实例的外部IP地址更改为静态(请参见下面的屏幕截图)。

cloud-external-ip-3

为此,请点击 屏幕左上角Google Cloud Platform按钮旁边的3行图标  ,转到“  网络  和  外部IP地址”  (请参见下面的屏幕截图)。

cloud-networking-external-ip-4

要具有静态IP地址,请将Type  从  Ephemeral更改   为  Static。输入您的静态IP的首选名称,我的名称是Assignment-1(请参见下面的屏幕截图)。然后单击“保留”。完成后,请记住释放静态IP地址,因为根据  此页面,  Google会为未使用的静态IP收取少量费用。  现在应该将Type设置为  Static。

cloud-networking-external-ip-naming

记下您的静态IP地址(在下面的屏幕快照中圈出)。我在本教程中使用104.196.224.11。

cloud-networking-external-ip-address

添加防火墙规则

您要做的最后一件事是添加新的防火墙规则,以允许对特定的<PORT-NUMBER>使用TCP访问。我通常将7000或8000用于<PORT-NUMBER>。点击页面顶部Google Cloud Platform旁边的3行图标  。在左列弹出的菜单上,转到“  网络和  防火墙规则”  (请参见下面的屏幕截图)。

cloud-networking-firewall-rule

单击蓝色的“  创建防火墙规则”  按钮。输入您想要的任何名称:我使用了assignment1-rules。输入0.0.0.0/0作为源IP范围,  并输入  tcp:<PORT-NUMBER>作为  允许的协议和端口,其中<PORT-NUMBER>是您在上面使用的数字。单击蓝色的  创建  按钮。请参阅下面的屏幕截图。

cloud-networking-firewall-rule-create

注意:  某些人看到的是不同的屏幕,而不是允许的协议和端口,而是   标题为“ 指定的协议和端口 ”的字段  。如果这是您看到的页面,则应在此字段中输入tcp:<PORT-NUMBER>。另外,如果您看到标题为“ 目标”的字段,请   选择  “网络中的所有实例”。

配置Jupyter Notebook

以下说明是此页面的摘录,   其中包含更详细的说明。

在您的GCE实例上,检查Jupyter配置文件的位置:

ls ~/.jupyter/jupyter_notebook_config.py

我的位于/home/timnitgebru/.jupyter/jupyter_notebook_config.py

如果不存在,请创建一个:

# Remember to activate your virtualenv ('source .env/bin/activate') so you can actually run jupyter :)jupyter notebook --generate-config

使用您喜欢的编辑器(vim,emacs等)将以下行添加到配置文件中(例如:/home/timnitgebru/.jupyter/jupyter_notebook_config.py):

c = get_config() c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.port = <PORT-NUMBER>

其中<PORT-NUMBER>是与上一节中使用的相同的数字。保存您的更改并关闭文件。

启动并连接到Jupyter Notebook

以下说明假定您已使用先前的说明通过SSH进入GCE实例,已下载当前任务文件夹并将其解压缩到任务X(其中X为任务编号),并且已成功配置Jupyter Notebook。

如果您还不在分配目录中,请通过运行以下命令将其cd入:

cd assignment1 

如果尚未执行此操作,请通过运行以下命令激活您的virtualenv:

source .env/bin/activate

使用以下命令启动Jupyter Notebook:

jupyter-notebook --no-browser --port=<PORT-NUMBER> 

其中<PORT-NUMBER>是您在上一节中编写的内容。

在本地浏览器上,如果转到http:// <YOUR-EXTERNAL-IP-ADDRESS>:<PORT-NUMBER>,则应该看到类似以下屏幕的内容。如上所述,我的<YOUR-EXTERNAL-IP-ADDRESS>值为104.196.224.11。现在,您应该可以开始进行作业了。

jupyter-screen

提交:将文件从您的实例传输到计算机

完成分配后,请在分配文件夹中运行提交脚本。对于assignment1,这将创建一个名为zip文件,  assignment1.zip 其中包含您需要上传到Canvas的文件。如果您还不在Assignment1目录中,请通过运行CD进入该目录

cd assignment1

 通过运行 安装  zip

sudo apt-get install zip

然后运行

bash collectSubmission.sh 

创建需要上传到画布的zip文件。然后,使用gcloud compute copy-file命令将文件复制到本地计算机,如下所示。 注意:在您的本地计算机上运行此命令:

gcloud compute copy-files [INSTANCE_NAME]:[REMOTE_FILE_PATH] [LOCAL_FILE_PATH]

例如,要将文件复制到桌面,我运行了:

gcloud compute copy-files instance-2:~/assignment1/assignment1.zip ~/Desktop

学生提出的另一个(可能更容易)的选择是直接从Jupyter下载zip文件。在运行提交脚本并创建了assignment1.zip之后,您可以直接从Jupyter下载该文件。为此,请转到Jupyter Notebook,然后单击zip文件(在本例中为Assignment1.zip)。该文件将下载到本地计算机。

最后,请记住将包含提交内容的zip文件上传到  Canvas。(如果您要再次检查ipython笔记本和其他代码文件是否正确位于内部,则可以在本地解压缩该文件)。