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。會話和大小也有限制。考慮到其優點,這些都是微不足道的犧牲。

廣告
© . All rights reserved.