Google Colab 快速指南



Google Colab - 简介

Google 在人工智能研究方面非常积极。多年来,Google 开发了名为TensorFlow 的 AI 框架和名为Colaboratory 的开发工具。如今 TensorFlow 是开源的,并且从 2017 年开始,Google 将 Colaboratory 免费向公众开放使用。Colaboratory 现在被称为 Google Colab 或简称为Colab

Google 为开发者提供的另一个吸引人的功能是使用 GPU。Colab 支持 GPU,并且完全免费。将其免费向公众开放的原因可能是为了使其软件成为学术界教学机器学习和数据科学的标准。它也可能具有长期目标,即为按次计费的 Google Cloud API 建立客户群。

不管原因如何,Colab 的推出简化了机器学习应用程序的学习和开发。

那么,让我们开始使用 Colab 吧。

Google Colab - 什么是 Google Colab?

如果你以前使用过Jupyter 笔记本,你会很快学会使用 Google Colab。准确地说,Colab 是一个完全在云端运行的免费 Jupyter 笔记本环境。最重要的是,它不需要设置,并且你创建的笔记本可以由你的团队成员同时编辑——就像你在 Google Docs 中编辑文档一样。Colab 支持许多流行的机器学习库,这些库可以轻松加载到你的笔记本中。

Colab 为你提供什么?

作为一名程序员,你可以使用 Google Colab 执行以下操作。

  • 编写和执行 Python 代码

  • 编写支持数学公式的代码文档

  • 创建/上传/分享笔记本

  • 从 Google Drive 导入/保存笔记本

  • 从 GitHub 导入/发布笔记本

  • 导入外部数据集,例如来自 Kaggle 的数据集

  • 集成 PyTorch、TensorFlow、Keras、OpenCV

  • 免费云服务,含免费 GPU

Google Colab - 你的第一个 Colab 笔记本

在本节中,你将创建并执行你的第一个简单笔记本。在需要的地方,请按照给出的步骤操作。

注意 − 由于 Colab 隐式地使用 Google Drive 存储你的笔记本,因此请确保在继续操作之前已登录你的 Google Drive 帐户。

步骤 1 − 在浏览器中打开以下 URL:https://colab.research.google.com 你的浏览器将显示以下屏幕(假设你已登录你的 Google Drive):

Colab Search

步骤 2 − 点击屏幕底部的新建 Python 3 笔记本链接。将打开一个新的笔记本,如下面的屏幕所示。

New Notebook

你可能已经注意到,笔记本界面与 Jupyter 提供的界面非常相似。有一个代码窗口,你可以在其中输入 Python 代码。

设置笔记本名称

默认情况下,笔记本使用 UntitledXX.ipynb 的命名约定。要重命名笔记本,请点击此名称,然后在编辑框中输入所需的名称,如下所示:

Setting Notebook Name

我们将这个笔记本命名为MyFirstColabNotebook。因此,在编辑框中输入此名称并按 ENTER 键。笔记本将采用你刚刚输入的名称。

输入代码

你现在将在代码窗口中输入一段简单的 Python 代码并执行它。

在代码窗口中输入以下两条 Python 语句:

import time
print(time.ctime())

执行代码

要执行代码,请点击代码窗口左侧的箭头。

Executing Code

过了一会儿,你将在代码窗口下看到输出,如下所示:

Mon Jun 17 05:58:40 2019

你可以随时通过点击输出显示左侧的图标来清除输出。

Output Display

添加代码单元

要向笔记本添加更多代码,请选择以下菜单选项:

Insert / Code Cell

或者,只需将鼠标悬停在代码单元的底部中央。当出现代码文本按钮时,点击代码以添加一个新的单元格。这在下面的屏幕截图中显示:

Code Text Buttons

将在当前单元格下方添加一个新的代码单元格。在新创建的代码窗口中添加以下两条语句:

time.sleep(5)
print (time.ctime())

现在,如果你运行此单元格,你将看到以下输出:

Mon Jun 17 04:50:27 2019

当然,两个时间字符串之间的时间差并非 5 秒。这是显而易见的,因为你确实花费了一些时间来插入新代码。Colab 允许你无中断地运行笔记本中的所有代码。

运行全部

要无中断地运行笔记本中的所有代码,请执行以下菜单选项:

Runtime / Reset and run all…

它将给出如下所示的输出:

Run All

请注意,现在两个输出之间的时间差恰好是 5 秒。

也可以通过执行以下两个菜单选项来启动上述操作:

Runtime / Restart runtime…

Runtime / Restart all runtimes…

然后

Runtime / Run all

研究运行时菜单下的不同菜单选项,以熟悉可用于执行笔记本的各种选项。

更改单元格顺序

当你的笔记本包含大量代码单元格时,你可能会遇到想要更改这些单元格执行顺序的情况。你可以通过选择要移动的单元格并点击以下屏幕截图中显示的向上移动单元格向下移动单元格按钮来实现:

Changing Cell Order

你可以多次点击这些按钮以将单元格移动多个位置。

删除单元格

在项目开发过程中,你可能在笔记本中引入了一些现在不需要的单元格。你可以通过单击一下轻松地从项目中删除这些单元格。点击代码单元格右上角的垂直点状图标。

Deleting Cell

点击删除单元格选项,当前单元格将被删除。

现在,你已经学习了如何运行简单的笔记本,让我们探索 Colab 的其他功能。

Google Colab - 代码文档化

由于代码单元支持完整的 Python 语法,你可以在代码窗口中使用 Python注释来描述你的代码。但是,很多时候你需要不仅仅是简单的基于文本的注释来解释机器学习算法。机器学习大量使用数学,为了向你的读者解释这些术语和方程,你需要一个支持 LaTeX 的编辑器——一种用于数学表示的语言。Colab为此提供了文本单元格

下面的屏幕截图显示了一个包含机器学习中常用的几个数学方程式的文本单元格:

Mathematical Equations

在本章的后续部分,我们将看到生成上述输出的代码。

文本单元格使用markdown(一种简单的标记语言)进行格式化。现在让我们看看如何向笔记本添加文本单元格,以及如何向其中添加包含数学方程式的文本。

Markdown 示例

让我们来看几个标记语言语法示例,以演示其功能。

在文本单元格中输入以下文本。

This is **bold**.
This is *italic*.
This is ~strikethrough~.

上述命令的输出在单元格的右侧呈现,如下所示。

Markdown Examples

数学方程式

向你的笔记本添加一个文本单元格,并在文本窗口中输入以下 markdown 语法:

$\sqrt{3x-1}+(1+x)^2$

你将立即看到 markdown 代码在文本单元格的右侧面板中呈现。这在下面的屏幕截图中显示:

Mathematical Equations Text Cell

Enter键,markdown 代码将从文本单元格中消失,只显示呈现的输出。

让我们尝试另一个更复杂的方程式,如下所示:

$e^x = \sum_{i = 0}^\infty \frac{1}{i!}x^i$

为了方便你参考,这里显示了呈现的输出。

Mathematical Equations Enter

示例方程式的代码

这是前面屏幕截图中显示的示例方程式的代码:

Constraints are
   - $3x_1 + 6x_2 + x_3 =< 28$
   - $7x_1 + 3x_2 + 2x_3 =< 37$
   - $4x_1 + 5x_2 + 2x_3 =< 19$
   - $x_1,x_2,x_3 >=0 $

The trial vector is calculated as follows:
- $u_i(t) = x_i(t) + \beta(\hat{x}(t) − x_i(t)) + \beta \sum_{k = 1}^{n_v}(x_{i1,k}(t) − x_{i2,k}(t))$
$f(x_1, x_2) = 20 + e - 20exp(-0.2 \sqrt {\frac {1}{n} (x_1^2 + x_2^2)}) - exp (\frac {1}{n}(cos(2\pi x_1) + cos(2\pi x_2))$

$x ∈ [-5, 5]$
>$A_{m,n} =
   \begin{pmatrix}
   a_{1,1} > a_{1,2} > \cdots > a_{1,n} \\
   a_{2,1} > a_{2,2} > \cdots > a_{2,n} \\
   \vdots > \vdots > \ddots > \vdots \\
   a_{m,1} > a_{m,2} > \cdots > a_{m,n}
   \end{pmatrix}$

描述完整的标记语法超出了本教程的范围。在下一节中,我们将看到如何保存你的工作。

Google Colab - 保存你的工作

Colab 允许你将工作保存到 Google Drive 甚至直接保存到你的 GitHub 存储库。

保存到 Google Drive

Colab 允许你将工作保存到你的 Google Drive。要保存你的笔记本,请选择以下菜单选项:

File / Save a copy in Drive…

你将看到以下屏幕:

Saving Google Drive

此操作将创建你的笔记本的副本并将其保存到你的 Drive。稍后你可以将其副本重命名为你选择的名称。

保存到 GitHub

你也可以通过选择以下菜单选项将工作保存到你的 GitHub 存储库:

File / Save a copy in GitHub...

以下屏幕截图显示了菜单选择,供你快速参考:

Saving GitHub

你必须等到看到 GitHub 的登录屏幕。

Login Screen GitHub

现在,输入你的凭据。如果你没有存储库,请创建一个新的存储库并将你的项目保存,如下面的屏幕截图所示:

Copy To GitHub

在下一节中,我们将学习如何与他人分享你的工作。

Google Colab - 分享笔记本

要与其他合作开发者分享你创建的笔记本,你可以分享你在 Google Drive 中创建的副本。

要将笔记本发布给普通受众,你可以从你的 GitHub 存储库分享它。

还有一种分享你的工作的方法,那就是点击 Colab 笔记本右上角的分享链接。这将打开分享框,如下所示:

Sharing Notebook

你可以输入想要与之分享当前文档的人的电子邮件 ID。你可以通过从上述屏幕中显示的三个选项中选择来设置访问类型。

点击获取可分享链接选项以获取笔记本的 URL。你将找到以下分享对象的选项:

  • 指定人员组

  • 你所在组织的同事

  • 任何拥有链接的人

  • 网络上的所有公众

现在,你已经知道如何创建/执行/保存/分享笔记本。到目前为止,我们在代码单元中使用了 Python。代码单元还可以用于调用系统命令。接下来将对此进行解释。

Google Colab - 调用系统命令

Jupyter 包含许多常用系统操作的快捷键。Colab 代码单元支持此功能。

简单的命令

在使用系统命令 echo 的代码单元格中输入以下代码。

message = 'A Great Tutorial on Colab by Tutorialspoint!'
greeting = !echo -e '$message\n$message'
greeting

现在,如果你运行单元格,你将看到以下输出:

['A Great Tutorial on Colab by Tutorialspoint!', 'A Great Tutorial on Colab by Tutorialspoint!']

获取远程数据

让我们来看另一个从远程服务器加载数据集的例子。在你的代码单元中输入以下命令:

!wget http://mlr.cs.umass.edu/ml/machine-learning-databases/adult/adult.data -P "/content/drive/My Drive/app"

如果你运行这段代码,你会看到以下输出:

--2019-06-20 10:09:53-- http://mlr.cs.umass.edu/ml/machine-learning-databases/adult/adult.data
Resolving mlr.cs.umass.edu (mlr.cs.umass.edu)... 128.119.246.96
Connecting to mlr.cs.umass.edu (mlr.cs.umass.edu)|128.119.246.96|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 3974305 (3.8M) [text/plain] 
Saving to: ‘/content/drive/My Drive/app/adult.data.1’

adult.data.1 100%[===================>] 3.79M 1.74MB/s in 2.2s

2019-06-20 10:09:56 (1.74 MB/s) - ‘/content/drive/My Drive/app/adult.data.1’ saved [3974305/3974305]

正如消息所说,adult.data.1 文件现在已添加到你的驱动器中。你可以通过检查驱动器的文件夹内容来验证这一点。或者,在一个新的代码单元中输入以下代码:

import pandas as pd
data = pd.read_csv("/content/drive/My Drive/app/adult.data.1")
data.head(5)

现在运行代码,你会看到以下输出:

Getting Remote Data

同样,大多数系统命令都可以通过在命令前加上感叹号 (!) 在你的代码单元中调用。在我们列出所有可以调用的命令之前,让我们再来看一个例子。

克隆 Git 仓库

你可以使用git命令将整个 GitHub 仓库克隆到 Colab。例如,要克隆 keras 教程,请在代码单元中输入以下命令:

!git clone https://github.com/wxs/keras-mnist-tutorial.git

命令成功运行后,你会看到以下输出:

Cloning into 'keras-mnist-tutorial'...
remote: Enumerating objects: 26, done.
remote: Total 26 (delta 0), reused 0 (delta 0), pack-reused 26
Unpacking objects: 100% (26/26), done.

克隆仓库后,找到其中的 Jupyter 项目(例如 keras.ipyab 中的 MINST),右键单击文件名,然后选择使用/Colaboratory 打开菜单选项,在 Colab 中打开项目。

系统别名

要获取常用操作的快捷键列表,请执行以下命令:

!ls /bin

你将在输出窗口中看到如下所示的列表:

bash*             journalctl*       sync*
bunzip2*          kill*             systemctl*
bzcat*            kmod*             systemd@
bzcmp@            less*             systemd-ask-password*
bzdiff*           lessecho*         systemd-escape*
bzegrep@          lessfile@         systemd-hwdb*
bzexe*            lesskey*          systemd-inhibit*
bzfgrep@          lesspipe*         systemd-machine-id-setup*
bzgrep*           ln*               systemd-notify*
bzip2*            login*            systemd-sysusers*
bzip2recover*     loginctl*         systemd-tmpfiles*
bzless@           ls*               systemd-tty-ask-password-agent*
bzmore*           lsblk*            tar*
cat*              lsmod@            tempfile*
chgrp*            mkdir*            touch*
chmod*            mknod*            true*
chown*            mktemp*           udevadm*
cp*               more*             ulockmgr_server*
dash*             mount*            umount*
date*             mountpoint*       uname*
dd*               mv*               uncompress*
df*               networkctl*       vdir*
dir*              nisdomainname@    wdctl*
dmesg*            pidof@            which*
dnsdomainname@    ps*               ypdomainname@
domainname@       pwd*              zcat*
echo*             rbash@            zcmp*
egrep*            readlink*         zdiff*
false*            rm*               zegrep*
fgrep*            rmdir*            zfgrep*
findmnt*          run-parts*        zforce*
fusermount*       sed*              zgrep*
grep*             sh@               zless*
gunzip*           sh.distrib@       zmore*
gzexe*            sleep*            znew*
gzip*             stty*
hostname*         su*

执行这些命令中的任何一个,就像我们对echowget所做的那样。在下一章中,我们将学习如何执行你之前创建的 Python 代码。

Google Colab - 执行外部 Python 文件

假设你已经开发了一些存储在 Google Drive 中的 Python 代码。现在,你希望在 Colab 中加载此代码以进行进一步修改。在本章中,我们将学习如何加载和运行存储在 Google Drive 中的代码。

挂载驱动器

Tools / Command palette

你将看到如下图所示的命令列表:

Mounting Drive

在搜索框中输入几个字母,例如“m”,以查找挂载命令。从列表中选择挂载驱动器命令。以下代码将插入到你的代码单元中。

# Run this cell to mount your Google Drive.
from google.colab import drive
drive.mount('/content/drive')

如果你运行此代码,系统会要求你输入身份验证代码。相应的屏幕如下所示:

Authentication Code

在你的浏览器中打开上面的 URL。系统会要求你登录你的 Google 帐户。现在,你将看到以下屏幕:

Google Aaccount

如果你授予权限,你将收到如下代码:

Google Sign In

将此代码复制粘贴到代码单元中并按 ENTER。一段时间后,驱动器将被挂载,如下图所示:

Drive Mounted Enter

现在,你就可以在 Colab 中使用驱动器的内容了。

列出驱动器内容

你可以使用 ls 命令列出驱动器的内容,如下所示:

!ls "/content/drive/My Drive/Colab Notebooks"

此命令将列出你的 Colab 笔记本文件夹的内容。我的驱动器内容的示例输出如下所示:

Greeting.ipynb hello.py LogisticRegressionCensusData.ipynb LogisticRegressionDigitalOcean.ipynb MyFirstColabNotebook.ipynb SamplePlot.ipynb

运行 Python 代码

现在,假设你想运行一个名为 hello.py 的 Python 文件,该文件存储在你的 Google Drive 中。在代码单元中输入以下命令:

!python3 "/content/drive/My Drive/Colab Notebooks/hello.py"

为了参考,这里提供了 hello.py 的内容:

print("Welcome to TutorialsPoint!")

现在你会看到以下输出:

Welcome to TutorialsPoint!

除了文本输出外,Colab 还支持图形输出。我们将在下一章中看到这一点。

Google Colab - 图形输出

Colab 还支持丰富的输出,例如图表。在代码单元中输入以下代码。

import numpy as np
from matplotlib import pyplot as plt

y = np.random.randn(100)
x = [x for x in range(len(y))]

plt.plot(x, y, '-')
plt.fill_between(x, y, 200, where = (y > 195), facecolor='g', alpha=0.6)

plt.title("Sample Plot")
plt.show()

现在,如果你运行代码,你会看到以下输出:

Graphical Outputs

请注意,图形输出显示在代码单元的输出部分。同样,你可以在你的程序代码中创建和显示多种类型的图表。

现在,你已经熟悉了 Colab 的基础知识,让我们继续学习 Colab 中使你的 Python 代码开发更容易的功能。

Google Colab - 代码编辑帮助

当今的开发人员非常依赖于上下文相关的语言和库语法帮助。这就是 IDE 被广泛使用的原因。Colab 笔记本编辑器提供了此功能。

在本章中,让我们看看如何在 Colab 中编写 Python 代码时请求上下文相关的帮助。根据需要按照给定的步骤操作。

函数列表

步骤 1 - 打开一个新笔记本,并在代码单元中输入以下代码:

import torch

步骤 2 - 通过单击代码单元左侧面板中的运行图标来运行代码。添加另一个代码单元,并输入以下代码:

Tensor = torch.

此时,假设你忘记了torch模块中有哪些可用的函数。你可以通过按下TAB键来请求关于函数名称的上下文相关帮助。请注意torch关键字后面有DOT。如果没有此 DOT,你将看不到上下文帮助。你的屏幕将如下图所示:

Function List

现在,从列表中选择所需的函数,然后继续你的编码。

函数文档

Colab 为你提供任何函数的文档作为上下文相关的帮助。

在你的代码窗口中输入以下代码:

Tensor = torch.cos(

现在,按下TAB键,你将在弹出窗口中看到cos的文档,如下图所示。请注意,你需要在按下 TAB 之前输入左括号

Function Documentation

在下一章中,我们将学习 Colab 中的Magics,它使我们能够做比使用系统别名更强大的事情。

Google Colab - 魔法命令 (Magics)

Magics 是一组系统命令,提供了一个小型扩展命令语言。

Magics 有两种类型:

  • 行魔法

  • 单元魔法

顾名思义,行魔法由一行命令组成,而单元魔法涵盖代码单元的整个主体。

对于行魔法,命令前缀为单个 % 字符;对于单元魔法,前缀为两个 % 字符 (%%)。

让我们来看一些两者都说明这一点的例子。

行魔法

在你的代码单元中输入以下代码:

%ldir

你会看到你的本地目录的内容,类似于:

drwxr-xr-x 3 root 4096 Jun 20 10:05 drive/
drwxr-xr-x 1 root 4096 May 31 16:17 sample_data/

尝试以下命令:

%history

这将显示你之前执行的命令的完整历史记录。

单元魔法

在你的代码单元中输入以下代码:

%%html
<marquee style='width: 50%; color: Green;'>Welcome to Tutorialspoint!</marquee>

现在,如果你运行代码,你将在屏幕上看到滚动的欢迎消息,如下图所示:

Cell Magics

以下代码会将 SVG 添加到你的文档中。

%%html
<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 600 400" width="400" height="400">
   <rect x="10" y="00" width="300" height="100" rx="0" style="fill:orange; stroke:black; fill-opacity:1.0" />
   <rect x="10" y="100" width="300" height="100" rx="0" style="fill:white; stroke:black; fill-opacity:1.0;" />
   <rect x="10" y="200" width="300" height="100" rx="0" style="fill:green; stroke:black; fill-opacity:1.0;" />
</svg>

如果你运行这段代码,你会看到以下输出:

Cell Magics Output

Magics 列表

要获取支持的 magics 的完整列表,请执行以下命令:

%lsmagic

你将看到以下输出:

Available line magics:
%alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear
%colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit
%env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext
%loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro
%magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef
%pdoc %pfile %pinfo %pinfo2 %pip %popd %pprint %precision %profile %prun
%psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall
%rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save
%sc %set_env %shell %store %sx %system %tb %tensorflow_version %time %timeit
%unalias %unload_ext %who %who_ls %whos %xdel %xmode

Available cell magics:
%%! %%HTML %%SVG %%bash %%bigquery %%capture %%debug %%file %%html %%javascript
%%js %%latex %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script
%%sh %%shell %%svg %%sx %%system %%time %%timeit %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

接下来,你将学习 Colab 中另一个强大的功能,用于在运行时设置程序变量。

Google Colab - 添加表单

Colab 提供了一个非常有用的实用程序,称为表单,它允许你在运行时接受用户的输入。现在让我们继续学习如何在你的笔记本中添加表单。

添加表单

在之前的课程中,你使用了以下代码来创建时间延迟:

import time
print(time.ctime())
time.sleep(5)
print (time.ctime())

假设你想要用户设置的时间延迟,而不是固定的 5 秒延迟。为此,你可以在代码单元中添加一个表单来接受睡眠时间。

打开一个新笔记本。单击选项(垂直点状)菜单。将显示一个弹出菜单,如下图所示:

Adding Form

现在,选择添加表单选项。它会将表单添加到你的代码单元中,默认标题如下图所示:

Add Form Default Title

要更改表单的标题,请单击设置按钮(右侧的铅笔图标)。它将弹出一个设置屏幕,如下图所示

Add Form Settings

将表单标题更改为“表单”并保存表单。你可以使用其他你选择的名称。请注意,它会将@title添加到你的代码单元中。

你以后可以探索上述屏幕上的其他选项。在下一节中,我们将学习如何向表单添加输入字段。

添加表单字段

要添加表单字段,请单击代码单元中的选项菜单,单击表单以显示子菜单。屏幕将如下图所示:

Adding Form Fields

选择添加表单字段菜单选项。将弹出一个对话框,如下图所示:

Adding New Form Field

表单字段类型保留为输入。将变量名称更改为sleeptime并将变量类型设置为整数。单击保存按钮保存更改。

你的屏幕现在将如下图所示,其中添加了sleeptime变量。

Form Field Type

接下来,让我们看看如何通过添加一些使用sleeptime变量的代码来测试表单。

测试表单

在表单单元下方添加一个新的代码单元。使用以下代码:

import time
print(time.ctime())
time.sleep(sleeptime)
print (time.ctime())

你已经在之前的课程中使用过此代码。它打印当前时间,等待一段时间,然后打印新的时间戳。程序等待的时间量在名为sleeptime的变量中设置。

现在,返回表单单元,为sleeptime输入值 2。选择以下菜单:

Runtime / Run all

这将运行整个笔记本。你可以看到如下所示的输出屏幕。

Runs Entire Notebook

请注意,它已经使用了你的输入值 2 来代替

sleeptime

。尝试将其更改为不同的值并全部运行以查看其效果。

输入文本

要在你的表单中接受文本输入,请在新代码单元中输入以下代码。

name = 'Tutorialspoint' #@param {type:"string"}
print(name)

现在,如果你运行代码单元,你在表单中设置的任何名称都将打印在屏幕上。默认情况下,屏幕上将显示以下输出。

Tutorialspoint

请注意,你可以使用与整数输入相同的菜单选项来创建文本输入字段。

下拉列表

要向你的表单添加下拉列表,请使用以下代码:

color = 'green' #@param ["red", "green", "blue"]
print(color)

这将创建一个包含三个值(红色、绿色和蓝色)的下拉列表。默认选择是绿色。

下拉列表如下图所示:

Dropdown List

日期输入

Colab 表单允许你使用验证在代码中接受日期。使用以下代码在代码中输入日期。

#@title Date fields
date_input = '2019-06-03' #@param {type:"date"}
print(date_input)

表单屏幕如下所示。

Date Input

尝试输入错误的日期值并观察验证。

到目前为止,你已经学习了如何使用 Colab 创建和执行包含 Python 代码的 Jupyter 笔记本。在下一章中,我们将学习如何在你的笔记本中安装流行的 ML 库,以便你可以在你的 Python 代码中使用它们。

Google Colab - 安装机器学习库

Colab 支持市场上大多数机器学习库。在本章中,让我们快速概述如何在你的 Colab 笔记本中安装这些库。

要安装库,你可以使用以下任一选项:

!pip install

!apt-get install

Keras

Keras是一个基于Python的库,可在TensorFlow、CNTK或Theano之上运行。它可以轻松快速地创建神经网络应用程序的原型。它支持卷积网络(CNN)和循环网络,以及它们的组合。它无缝支持GPU。

要安装Keras,请使用以下命令:

!pip install -q keras

PyTorch

PyTorch非常适合开发深度学习应用程序。它是一个经过优化的张量库,并支持GPU。要安装PyTorch,请使用以下命令:

!pip3 install torch torchvision

MxNet

Apache MxNet是另一个灵活高效的深度学习库。要安装MxNet,请执行以下命令:

!apt install libnvrtc8.0
!pip install mxnet-cu80

OpenCV

OpenCV是一个开源计算机视觉库,用于开发机器学习应用程序。它拥有超过2500个经过优化的算法,支持多种应用程序,例如人脸识别、物体识别、运动物体跟踪、图像拼接等等。谷歌、雅虎、微软、英特尔、IBM、索尼、本田、丰田等巨头都在使用这个库。它非常适合开发实时视觉应用程序。

要安装OpenCV,请使用以下命令:

!apt-get -qq install -y libsm6 libxext6 && pip install -q -U opencv-python

XGBoost

XGBoost是一个分布式梯度提升库,可在Hadoop等主要分布式环境中运行。它高效、灵活且可移植。它在梯度提升框架下实现了机器学习算法。

要安装XGBoost,请使用以下命令:

!pip install -q xgboost==0.4a30

GraphViz

Graphviz是一个用于图形可视化的开源软件。它用于网络、生物信息学、数据库设计以及许多需要数据可视化界面的领域。

要安装GraphViz,请使用以下命令:

!apt-get -qq install -y graphviz && pip install -q pydot

到目前为止,您已经学习了如何创建包含常用机器学习库的Jupyter Notebook。您现在可以开始开发自己的机器学习模型了。这需要强大的处理能力。Colab为您的Notebook提供免费的GPU。

在下一章中,我们将学习如何在您的Notebook中启用GPU。

Google Colab - 使用免费 GPU

Google为您的Colab Notebook提供免费的GPU使用。

启用GPU

要在您的Notebook中启用GPU,请选择以下菜单选项:

Runtime / Change runtime type

您将看到以下输出屏幕:

Enabling GPU

选择**GPU**,您的Notebook将在处理过程中使用云端提供的免费GPU。要体验GPU处理的效果,请尝试运行您之前克隆的**MNIST** 教程中的示例应用程序。

!python3 "/content/drive/My Drive/app/mnist_cnn.py"

尝试运行相同的Python文件,但不要启用GPU。您注意到执行速度的差异了吗?

测试GPU

您可以通过执行以下代码轻松检查GPU是否已启用:

import tensorflow as tf
tf.test.gpu_device_name()

如果GPU已启用,它将给出以下输出:

'/device:GPU:0'

列出设备

如果您想知道在云端执行Notebook时使用的设备,请尝试以下代码:

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

您将看到如下输出:

[name: "/device:CPU:0"
   device_type: "CPU"
   memory_limit: 268435456
   locality { }
   incarnation: 1734904979049303143, name: "/device:XLA_CPU:0"
   device_type: "XLA_CPU" memory_limit: 17179869184
   locality { } 
   incarnation: 16069148927281628039
   physical_device_desc: "device: XLA_CPU device", name: "/device:XLA_GPU:0"
   device_type: "XLA_GPU"
   memory_limit: 17179869184
   locality { }
   incarnation: 16623465188569787091
   physical_device_desc: "device: XLA_GPU device", name: "/device:GPU:0"
   device_type: "GPU"
   memory_limit: 14062547764
   locality {
      bus_id: 1
      links { } 
   }
   incarnation: 6674128802944374158
physical_device_desc: "device: 0, name: Tesla T4, pci bus id: 0000:00:04.0, compute capability: 7.5"]

检查RAM

要查看您的进程可用的内存资源,请键入以下命令:

!cat /proc/meminfo

你将看到以下输出:

MemTotal: 13335276 kB
MemFree: 7322964 kB
MemAvailable: 10519168 kB
Buffers: 95732 kB
Cached: 2787632 kB
SwapCached: 0 kB
Active: 2433984 kB
Inactive: 3060124 kB
Active(anon): 2101704 kB
Inactive(anon): 22880 kB
Active(file): 332280 kB
Inactive(file): 3037244 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 412 kB
Writeback: 0 kB
AnonPages: 2610780 kB
Mapped: 838200 kB
Shmem: 23436 kB
Slab: 183240 kB
SReclaimable: 135324 kB
SUnreclaim: 47916
kBKernelStack: 4992 kB
PageTables: 13600 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 6667636 kB
Committed_AS: 4801380 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 303092 kB
DirectMap2M: 5988352 kB
DirectMap1G: 9437184 kB

您现在已经准备好使用Google Colab在Python中开发机器学习模型了。

Google Colab - 总结

Google Colab是一个功能强大的平台,可以用于学习和快速开发Python中的机器学习模型。它基于Jupyter Notebook,并支持协同开发。团队成员可以共享和同时编辑Notebook,即使是远程的。Notebook也可以发布到GitHub并与公众共享。Colab支持许多流行的机器学习库,例如PyTorch、TensorFlow、Keras和OpenCV。目前的一个限制是它还不支持R或Scala。会话和大小也有限制。考虑到其优点,这些都是微不足道的牺牲。

广告