实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

TensorFlow:Qwik Start

实验 20 分钟 universal_currency_alt 1 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP637

Google Cloud 自學實驗室標誌

總覽

本實驗室將說明機器學習的基礎模型「Hello World」。您要建構的系統是根據資料訓練,來推論並決定數字間關係的規則,不是用 Java 或 C++ 等語言編寫精確的規則。

目標

本實驗室的學習內容包括:

  • 在 Jupyter 筆記本設定開發環境
  • 設計機器學習模型
  • 訓練類神經網路
  • 測試模型

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

簡介

請思考下列問題:您正在建構健身狀況追蹤系統,要用來辨識動作。您可能已取得某人的移動速度,並想根據這個速度,使用條件陳述式推論出對方的活動:

if(speed<4){ status=WALKING; }
  • 您可以延伸以上條件式,加入另一項條件「跑步」
if(speed<4){ status=WALKING; } else { status=RUNNING; }
  • 使用相同方式加入另一項條件,即可偵測「騎自行車」
if(speed<4){ status=WALKING; } else if(speed<12){ status=RUNNING; } else { status=BIKING; }
  • 現在請思考,如果想加入「打高爾夫球」這類活動,會發生什麼事?若要建立判斷活動的規則,就沒那麼清楚了。
// Now what?

如要以程式碼編寫程式來偵測打高爾夫球活動,會極為困難。

所以該怎麼做?機器學習正好能解決這個問題!

什麼是機器學習?

上一節中,您在嘗試判斷使用者的健身活動時遇到問題。如要偵測打高爾夫球這類活動,程式碼的條件必定更加複雜,因此您遇上了程式碼的限制。

以傳統方式建構應用程式的過程如下:

圖表顯示傳統程式設計的流程:輸入規則和資料,然後輸出答案

您使用程式設計語言表達規則,這些規則會以資料為依據,再由您的程式提供答案。在偵測活動的範例中,規則 (為定義活動類型而編寫的程式碼) 會依據資料 (某人的移動速度) 來找出答案,也就是判斷使用者活動狀態 (走路、跑步、騎自行車等) 函式傳回的值。

運用機器學習偵測這些活動的過程十分類似,只有軸不同:

圖表顯示機器學習的流程:輸入答案和資料,然後輸出規則

您需要同時提供答案 (通常稱為標籤) 和資料,但不必嘗試定義規則並以程式設計語言表達,機器會自行判斷答案與資料間的關係,並推論出規則。舉例來說,在機器學習的脈絡中,活動偵測情境應該像這樣:

共有「走路」、「跑步」、「騎自行車」和「打高爾夫球」四個標籤,分別以零和一表示

只要收集大量資料並加上標籤,有效說明「這是走路的狀態」、「這是跑步的狀態」等,電腦就能依資料判斷特定活動的獨特模式,進而推論出規則。

機器學習不僅是為此情境編寫程式的替代方法,還能應用於打高爾夫球等新情境,解決傳統規則型程式設計方法難以處理的問題。

在傳統程式設計中,程式碼會編譯成二進位檔,通常稱為程式。在機器學習領域,用資料和標籤建立的項目稱為模型。

綜上所述,如果回到這個圖表:

圖表顯示機器學習的流程:輸入答案和資料,然後輸出規則

將上圖的結果視為模型,並在執行階段運用的方式如下:

圖表顯示流程:在模型中輸入資料,然後輸出預測

模型取得一些資料後,會使用訓練時推論出的規則來生成預測,即「這筆資料像是在走路」、「這筆資料像是在騎自行車」等。

在本實驗室中,您將使用構成元素,建構非常簡單的「Hello World」模型,適用於任何機器學習情境!

工作 1:開啟 Vertex AI Workbench 中的筆記本

  1. 前往 Google Cloud 控制台,依序點按「導覽選單」圖示 「導覽選單」圖示 >「Vertex AI」>「Workbench」

  2. 找出 執行個體,點按「Open JupyterLab」按鈕。

Workbench 執行個體的 JupyterLab 介面會在新瀏覽器分頁開啟。

注意:如果在 JupyterLab 沒有看見筆記本,請按照以下額外步驟重設執行個體:

1. 關閉 JupyterLab 的瀏覽器分頁,回到 Workbench 首頁。

2. 勾選執行個體名稱旁的核取方塊,然後點按「重設」

3. 「開啟 JupyterLab」按鈕再次啟用後,等待一分鐘,然後點按「開啟 JupyterLab」

安裝 TensorFlow 和其他套件

  1. 在「Launcher」選單的「Other」底下,選取「Terminal」

  2. 檢查 Python 環境是否已設定完成,接著複製下列指令並貼到終端機。

python --version

輸出內容範例:

Python 3.10.14
  1. 執行下列指令,安裝 TensorFlow 套件。
pip3 install tensorflow
  1. 在終端機執行下列指令,更新 pip3
pip3 install --upgrade pip

Pylint 是檢查 Python 程式碼錯誤的工具,可以標示出 Python 原始碼中的語法和樣式問題。

  1. 執行下列指令,安裝 pylint 套件。
pip install -U pylint --user
  1. 使用 requirements.txt 檔案,安裝實驗室所需的套件:
pip install -r requirements.txt

現在環境已設定完畢!

工作 2:建立第一個機器學習模型

請查看下列幾組數字,您能看出數字間的關係嗎?

X:

-1

0

1

2

3

4

Y:

-2

1

4

7

10

13

若從左讀到右,您會注意到 X 值是公差為 1 的數列,Y 值則是公差為 3 的數列,因此關係應該是 Y=3X 加上或減去某數值。

接下來看看 X 值 0,對應的 Y 值是 1。

從以上兩項觀察結果,可以判斷出關係是 Y=3X+1

上述推論過程很接近使用程式碼訓練模型,找出資料規律的方法,這類模型又稱為類神經網路

您將使用資料訓練類神經網路。這個模型收到一組 X 值和 Y 值後,應該要能辨識數值間的關係。

建立新筆記本及匯入程式庫

  1. 點選 Workbench 左側的「+」圖示,開啟新的啟動器。

  2. 在「Launcher」選單的「Notebook」底下,選取「Python3」

新的筆記本檔案

畫面會顯示新的 Jupyter 筆記本。如要進一步瞭解如何使用 Jupyter 筆記本,請參閱 Jupyter Notebook 說明文件

  1. 匯入並設定 Cloud Logging 的 logginggoogle-cloud-logging,然後在第一個儲存格新增下列程式碼:
import logging import google.cloud.logging as cloud_logging from google.cloud.logging.handlers import CloudLoggingHandler from google.cloud.logging_v2.handlers import setup_logging cloud_logger = logging.getLogger('cloudLogger') cloud_logger.setLevel(logging.INFO) cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client())) cloud_logger.addHandler(logging.StreamHandler())
  1. 匯入 tensorflow 來訓練和評估模型,並命名為 tf 以利使用。接著,在第一個儲存格新增下列程式碼。
# Import TensorFlow import tensorflow as tf
  1. 為剖析資料並進行偵錯,請匯入 numpy,並命名為 np 以利使用。接著,在第一個儲存格新增下列程式碼。
# Import numpy import numpy as np
  1. 點選「Run」按鈕或按下 Shift + Enter 鍵,執行儲存格。

  2. 依序點選「File」 ->「Save」來儲存筆記本,將檔案命名為 model.ipynb,然後點選「OK」

注意:您可以忽略輸出內容中可能出現的警告。

準備資料

接下來,您將準備訓練模型的資料。在本實驗室中,您會使用先前用過的 6 個 X 值和 Y 值:

X:

-1

0

1

2

3

4

Y:

-2

1

4

7

10

13

如您所見,X 值與 Y 值的關係為 Y=3x+1,當 X = 1 時,會得出 Y = 4,以此類推。

Python 程式庫 numpy 會提供大量陣列型資料架構,這是標準的資料輸入方式。為方便運用這些資料,請使用 np.array([]),將數值指定為 numpy 中的陣列。

  1. 第二個儲存格新增下列程式碼:
xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float)

設計模型

在本節中,您將運用 TensorFlow 設計模型。

您會使用名為「類神經網路」的機器學習演算法來訓練模型。過程中,您要建立最簡易的類神經網路,具備 1 層,其中含有 1 個神經元。該類神經網路一次只能輸出一個值,因此輸入內容的格式必須為 [1]。

注意:本任務後續的實驗室活動將進一步說明類神經網路。
  1. 第二個儲存格新增下列程式碼:
model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])])

編譯模型

接下來,您將編寫程式碼來編譯類神經網路。這個步驟必須指定 2 個函式:lossoptimizer

若您先前看過許多機器學習的數學原理,通常會在此處用到,不過 tf.keras 貼心地將這些原理都封裝在函式中。

  • 根據先前檢視的結果,已知數字間的關係為 y=3x+1

  • 當電腦試圖「學習」這個關係,會先猜測 y=10x+10loss 函式將依據已知的正確解答,測量電腦猜測的答案和準確度。

注意:如要進一步瞭解 tf.keras 中不同類型的 loss 函式,請參閱 Module: tf.keras.losses 說明文件
  • 接著,模型會使用 optimizer 函式再次猜測,並根據 loss 函式的結果,嘗試將損失降至最低。此時,模型或許會得出類似答案:y=5x+5。雖然仍不正確,但比較接近正確結果,意即損失減少了。
注意:如要進一步瞭解 tf.keras 中不同類型的 optimizer 函式,請參閱 Module: tf.keras.optimizers 說明文件
  • 模型會依照您指定的訓練週期數,重複執行上述流程。
  1. 第二個儲存格新增下列程式碼:
model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError())

在上方程式碼片段中,您指示模型要對 loss 函式使用 mean_squared_error,對 optimizer 函式則使用 stochastic gradient descent (sgd)。您目前不理解背後的數學原理也沒關係,程式碼會順利運作!

注意:日後您就會瞭解適用於不同情境的 loss 和 optimizer 函式。

訓練類神經網路

為訓練類神經網路「學習」X 值和 Y 值間的關係,您將使用 model.fit

這個函式會以迴圈形式訓練模型,也就是模型會猜測、測量準確度 (即損失),使用 optimizer 函式再猜一次。模型會按照指定的訓練週期數,重複執行上述流程 (本實驗室的設定是 500)。

  1. 第二個儲存格新增下列程式碼:
model.fit(xs, ys, epochs=500)

在上方程式碼中,model.fit 會按照固定的訓練週期數來訓練模型。

注意:如要進一步瞭解 model.fit,請參閱 tf.keras.Model 說明文件中的「fit」一節。

現在檔案應該像這樣 (請注意,程式碼會位於兩個不同儲存格):

import logging import google.cloud.logging as cloud_logging from google.cloud.logging.handlers import CloudLoggingHandler from google.cloud.logging_v2.handlers import setup_logging cloud_logger = logging.getLogger('cloudLogger') cloud_logger.setLevel(logging.INFO) cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client())) cloud_logger.addHandler(logging.StreamHandler()) import tensorflow as tf import numpy as np xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float) model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])]) model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError()) model.fit(xs, ys, epochs=500)

執行程式碼

指令碼已準備就緒!現在來執行指令碼,看看會發生什麼事。

  1. 點選「Run」按鈕或按下 Shift + Enter 鍵,即可執行筆記本中的第二個儲存格。

  2. 查看輸出內容。請注意,指令碼會顯示每次訓練週期的損失。您的輸出內容可能會與範例稍有不同。

注意:值中含有 e- 的數字是科學記號的負指數。

捲動瀏覽訓練週期時,您會看到前幾個訓練週期的損失很多,之後逐漸減少。例如:

多列訓練週期損失,但損失逐漸減少。第 2 列訓練週期損失是 52.1992,第 9 列則是 9.7403

隨著訓練進行,損失會變得非常少:

第 45 列的訓練週期損失是 0.0023,第 54 列則是 7.1057e-04

訓練結束前,損失會變得極少,表示模型可以很準確地推論數字間的關係:

第 495 列的訓練週期損失是 5.4194e-08,第 500 列則是 4.8896e-08

您可能不需要 500 個這麼多的訓練週期,可試試不同數值。以這個範例來說,僅 50 個訓練週期後,損失就已經非常少,因此可能這樣就夠了!

點選「Check my progress」,確認目標已達成。建立機器學習模型

使用模型

現在,您已訓練模型學習 X 值和 Y 值間的關係。

若使用 model.predict 方法,可以為先前模型訓練時沒有出現的 X 值,找出對應的 Y 值。例如:X = 10,那 Y 值會是多少?

  1. 第三個儲存格新增下列程式碼,讓模型做出預測:
cloud_logger.info(str(model.predict(np.array([10.0])))) 注意:為產生可以檢查進度的 Cloud 記錄,預測結果會傳遞至 cloud_logger
  1. 按下 Ctrl + S 鍵或依序點選「File」->「Save」,儲存筆記本。

  2. 點選「Run」按鈕或按下 Shift + Enter 鍵,即可執行第三個儲存格。

Y 值會列於訓練記錄後 (訓練週期)。

輸出內容範例:

Y 值是 31.005917

您可能會以為 Y=31,但結果超出了一點 (31.005917)。為什麼會這樣呢?

答案:類神經網路與「機率」有關。這個模型計算出 X 和 Y 間的關係很有可能是 Y=3X+1,但只有 6 個資料點,無法確定是否正確。因此,10 的結果會很接近 31,但不一定是 31。

運用類神經網路的過程中,這個模式會重複出現。您將處理的幾乎都是機率而非確切數值,因此要寫些程式,依據機率找出結果,執行分類工作時更是如此。

點選「Check my progress」,確認目標已達成。使用模型

恭喜!

恭喜!在本實驗室中,您使用了 TensorFlow 建立、訓練並測試自己的機器學習模型。

後續步驟/瞭解詳情

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2025 年 10 月 7 日

實驗室上次測試日期:2025 年 10 月 6 日

Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.