在人工智慧領域,實作模型需要一個高效的開發環境。本文將引導讀者使用 Google Colab 建立和訓練人工智慧模型,此雲端平臺提供免費的 GPU 資源和便捷的開發環境,無需複雜的本地設定。我們將探討 Google Colab 的核心功能,包含 GPU 加速、資料儲存與版本控制,並以手寫數字辨識模型為例,示範如何使用 TensorFlow 和 Keras 建立、訓練和評估模型。同時,我們也會深入探討活化函式、損失函式和最佳化器的選擇與應用,幫助讀者理解模型訓練的關鍵步驟。

前言

每一個科學實驗都需要一個實驗室來進行實驗,我們也需要一個實驗室環境來開發和測試真實世界的人工智慧應用。在本章中,我們將首先介紹Google Colab的基礎知識,作為我們的實驗室環境。這個實驗室環境將幫助我們在雲端執行人工智慧應用,並且可以使用加速硬體,不需要設定昂貴的基礎設施。

章節結構

在本章中,我們將涵蓋以下主題:

  1. 本地環境或雲端環境:比較本地環境和雲端環境的優缺點。
  2. 設定本地實驗室環境:介紹如何設定本地實驗室環境的步驟和注意事項。
  3. Google Colab:深入介紹Google Colab的功能和優點。
  4. 利用GPU的力量:探討如何在Google Colab中使用GPU加速人工智慧計算。
  5. 掛載Google Drive:教你如何在Google Colab中掛載Google Drive以儲存和管理檔案。
  6. 使用Google Colab與GitHub:介紹如何將Google Colab與GitHub整合,以便於版本控制和合作開發。

目標

在本章結束後,你將能夠:

*瞭解Google Colab的基礎知識和優點 *設定和使用Google Colab作為人工智慧實驗室環境 *利用GPU加速人工智慧計算 *掛載Google Drive以儲存和管理檔案 *使用Google Colab與GitHub進行版本控制和合作開發

內容解密:

以上內容是對人工智慧實驗室設定的概述,涵蓋了從本地環境到雲端環境的選擇、Google Colab的基礎知識、GPU加速、掛載Google Drive和使用Google Colab與GitHub等內容。這些內容將幫助你建立一個完整的人工智慧實驗室環境,以便於開發和測試真實世界的人工智慧應用。

  flowchart TD
    A[開始] --> B[選擇環境]
    B --> C[設定Google Colab]
    C --> D[利用GPU加速]
    D --> E[掛載Google Drive]
    E --> F[使用Google Colab與GitHub]
    F --> G[完成設定]

圖表翻譯:

此圖表展示了設定人工智慧實驗室環境的流程,從選擇環境開始,然後設定Google Colab,利用GPU加速,掛載Google Drive,使用Google Colab與GitHub,最後完成設定。這個流程將幫助你建立一個完整的人工智慧實驗室環境,以便於開發和測試真實世界的人工智慧應用。

建立AI開發環境

在這個章節中,我們將探討如何建立一個功能性和高效的AI開發環境。這個章節的目的是為讀者提供必要的知識和實踐步驟,以便在本地機器上使用Anaconda和雲端平臺如Google Colab建立AI實驗室。

本地環境或雲端環境

在第一章中,我們學習了Python程式設計和使用Google Colab環境編寫程式碼。雖然Colab提供了一個根據雲端的環境來編寫和執行Python程式,但也可以在本地系統或個人電腦上設定環境來編寫和執行Python程式碼。雖然我們強烈推薦使用Colab來開發AI應用程式,但我們也會簡要討論設定本地環境和比較本地和雲端環境。

使用像Colab這樣的雲端環境來編寫Python程式碼的主要優點是,我們不需要從頭開始安裝所有東西。我們不需要安裝Python環境和它的函式庫。Colab提供了許多重要的Python函式庫(如NumPy、Matplotlib、Tensorflow、Keras、PyTorch等)。Colab也是根據雲端的環境,因此用於編寫程式碼的筆記本可以在任何裝置上的瀏覽器中存取,幾乎沒有因硬體故障而丟失筆記本的風險。這些筆記本檔案也可以分享以進行合作,就像Google Docs一樣。Colab還提供有限的免費加速器硬體,如圖形處理單元(GPU)和張量處理單元(TPU)供使用者使用。在處理大型神經網路模型或大型資料集時,這些是重要的。

Google Colab可以無縫整合Google Drive,以滿足AI專案的儲存需求。

設定本地實驗室環境

要在本地安裝Anaconda分散式Python,請前往Anaconda官方網站下載相應的可執行檔案。下載完成後,雙擊可執行檔案並按照螢幕上的指示進行安裝。

安裝完成後,開啟Anaconda Navigator軟體。在Windows系統中,可以在開始選單中搜尋並開啟。Anaconda Navigator開啟一個視窗,顯示Anaconda附帶的軟體列表。從列表中啟動Jupyter Notebook(在前面的圖片中用紅箭頭標記)。Jupyter Notebook首頁將在瀏覽器中開啟。點選“新建”按鈕的下拉選單(在下面的圖片中用紅箭頭標記),然後點選“Python 3”以開啟Python筆記本。

Jupyter Notebook

Jupyter Notebook是一個根據Web的互動式Python命令shell。筆記本檔案具有.ipynb副檔名。不能直接執行.ipynb檔案作為Python指令碼或程式碼來執行任務。為此,可以在筆記本單元格中編寫程式碼,如同指令碼一樣,然後前往“檔案”選單,選擇“下載”,並將其下載為具有.py副檔名的檔案。

下載.py檔案後,這就是一個Python指令碼。現在可以在機器上開啟Anaconda Prompt來執行這個指令碼。在Windows系統中,可以在開始選單中搜尋“Anaconda Prompt”並開啟。Anaconda Prompt就像命令提示符或shell,可以在不設定任何PATH變數的情況下執行Python指令碼。要從此提示符執行Python指令碼,需要使用以下語法編寫命令:```python python script_name.py


#### 內容解密:
上述過程描述瞭如何設定本地AI實驗室環境,包括安裝Anaconda分散式Python、啟動Jupyter Notebook和執行Python指令碼。這些步驟使讀者能夠在本地機器上建立功能性AI開發環境。

#### 圖表翻譯:
```mermaid
graph LR
    A[開始] --> B[下載Anaconda]
    B --> C[安裝Anaconda]
    C --> D[啟動Jupyter Notebook]
    D --> E[建立Python筆記本]
    E --> F[編寫Python程式碼]
    F --> G[下載Python指令碼]
    G --> H[執行Python指令碼]

使用Google Colab進行AI應用開發

Google Colab是一個根據雲端的應用程式,允許使用者在瀏覽器中編寫和執行Python程式碼。它是一個免費的平臺,提供了一個簡單且易於使用的介面,讓使用者可以快速開始進行AI應用開發。

建立和管理Colab筆記本

要建立一個新的Colab筆記本,需要有一個Google帳戶(Gmail ID)。當建立一個新的Colab筆記本時,它會被儲存在與Google帳戶相關的Google Drive中。使用者可以透過「檔案」選單中的「在Drive中定位」選項來檢視筆記本的儲存位置。

Colab筆記本可以包含兩種型別的儲存格:程式碼儲存格和文字儲存格。程式碼儲存格用於編寫和執行Python程式碼,而文字儲存格則用於增加富文字、圖片、超連結等內容,以提高筆記本的可讀性。

使用GPU和TPU加速器

Google Colab提供了免費使用Nvidia GPU和Google TPU加速器的功能,可以大大提高AI模型的訓練速度。要啟用GPU或TPU加速器,需要透過「執行時間」選單中的「變更執行時間型別」選項來選擇所需的硬體加速器。

掛載Google Drive

在使用Google Colab進行AI應用開發時,往往需要一個儲存解決方案來儲存輸入資料、訓練模型、輸出結果等資料。Google Drive是一個根據雲端的檔案儲存解決方案,提供了一個簡單且易於使用的介面,讓使用者可以輕鬆地儲存和管理檔案。

Markdown語法

Colab筆記本支援Markdown語法,允許使用者使用簡單的語法來格式化文字、增加超連結、圖片等內容。Markdown語法包括標題、粗體、斜體、程式碼區塊等格式化選項。

執行多個儲存格

Colab筆記本允許使用者一次執行多個儲存格,可以透過「執行時間」選單中的選項來執行所有儲存格、執行所有儲存格之前的儲存格、執行所有儲存格之後的儲存格等。

系統RAM和磁碟使用情況

Colab筆記本提供了一個系統RAM和磁碟使用情況工具欄,位於筆記本的右上角。點選工具欄可以檢視詳細的系統RAM、GPU RAM(如果啟用GPU)和磁碟使用情況。

  graph TD
    A[建立Colab筆記本] --> B[掛載Google Drive]
    B --> C[啟用GPU或TPU加速器]
    C --> D[編寫和執行Python程式碼]
    D --> E[使用Markdown語法格式化文字]
    E --> F[執行多個儲存格]
    F --> G[檢視系統RAM和磁碟使用情況]

圖表翻譯:

此圖表展示了使用Google Colab進行AI應用開發的流程,從建立Colab筆記本開始,掛載Google Drive,啟用GPU或TPU加速器,編寫和執行Python程式碼,使用Markdown語法格式化文字,執行多個儲存格,最終檢視系統RAM和磁碟使用情況。

整合 Google Colab 與 Google Drive

為了滿足儲存需求,我們可以將 Google Colab 整合與 Google Drive。以下是整合步驟:

首先,我們需要掛載 Google Drive 服務。開啟 Google Colab 筆記本,執行以下程式碼:

drive.mount('/content/drive')

執行後,會出現一個彈出視窗,要求授權存取 Google Drive 檔案。選擇「連線到 Google Drive」。

接下來,會出現另一個彈出視窗,顯示 Google 帳戶的 Gmail ID。點選帳戶即可。

然後,會出現另一個視窗,顯示 Google Drive for desktop 想要存取我們的 Google 帳戶。滾動到下方,點選「允許」。

允許存取後,Google Colab 筆記本會回到前景,我們可以看到程式碼已經執行完成。這意味著 Google Drive 已經掛載成功,可以從 Colab 筆記本存取。

現在,我們可以在 Colab 筆記本的程式碼儲存格中執行以下程式碼,檢視 Google Drive 中的檔案和目錄:

!ls /drive/MyDrive/

ls 命令前面的感嘆號 (!) 是必需的,它表示我們正在執行 Unix 命令,而不是 Python 程式碼。

使用 Google Colab 與 GitHub

Google Colab 也可以與 GitHub 整合,實作軟體開發和版本控制。我們可以從 GitHub 匯入公開的筆記本檔案,也可以將筆記本檔案推播到 GitHub 儲存函式庫。

要從 GitHub 開啟筆記本檔案(.ipynb 格式),我們需要先前往「檔案」選單,然後點選「開啟筆記本」。接下來,會出現一個視窗,包含多個標籤頁,如「範例」、「最近」、「Google Drive」、「GitHub」和「上傳」。我們需要點選「GitHub」標籤頁。

如果是第一次開啟此視窗,會顯示搜尋結果。我們可以在搜尋欄中輸入 GitHub URL、使用者名稱或組織名稱來搜尋筆記本檔案。如果我們也想包含私人儲存函式庫,需要勾選「包含私人儲存函式庫」核取方塊。

讓我們搜尋 TensorFlow 官方 GitHub 儲存函式庫中的 beginner.ipynb 筆記本檔案。該檔案的 URL 是 https://github.com/tensorflow/docs/blob/master/site/en/tutorials/quickstart/beginner.ipynb。我們需要在搜尋欄中輸入此 URL 並按 Enter 鍵搜尋。結果會出現在視窗中。

點選第一個結果,beginner.ipynb 筆記本檔案就會在 Colab 中開啟。

如果我們想將筆記本檔案儲存到 GitHub 儲存函式庫,需要再次前往「檔案」選單,然後選擇「儲存副本到 GitHub」。如果是第一次執行此操作,會出現一個視窗,提示 Colab 正在等待 GitHub 授權。接下來,會出現另一個視窗,要求我們登入 GitHub 帳戶。

登入後,會出現一個名為「複製到 GitHub」的視窗,包含了已登入的 GitHub 帳戶中的儲存函式庫列表。我們需要選擇目標儲存函式庫和分支。如果需要,可以編輯提交訊息,然後按「確定」將 Colab 筆記本推播到 GitHub 儲存函式庫。

現在,我們可以前往 GitHub 儲存函式庫檢視 Colab 筆記本是否已經儲存成功。

提示:執行複雜任務(例如訓練大型深度神經網路)可能需要很長時間。在執行長時間任務時,我們可以切換到其他標籤頁、視窗或應用程式,並在 Colab 完成執行後收到桌面通知。只要前往「工具」|「設定」|「站點」,然後勾選「完成執行時顯示桌面通知」的核取方塊即可。

重點回顧

  • Anaconda是一個強大的工具,允許我們輕鬆管理Python環境和依賴項,確保我們安裝了正確的套件,並可以輕易在不同的專案需求之間切換。
  • Google Colab提供了卓越的優勢,讓我們可以在不需要專用硬體的情況下存取高效能計算資源。
  • Google Colab可以輕易設定為利用硬體加速器(如GPU)來顯著加速我們的模型訓練和實驗。
  • 我們可以輕易儲存和存取資料集、程式碼和專案檔案,消除龐大資料轉移的需要,確保我們的工作從任何地方都可存取。
  • 我們可以從Google Colab筆記本存取GitHub,以匯入現有筆記本檔案和儲存筆記本檔案。它有助於更快的合作和版本控制。

設計我的第一個神經網路模型

簡介

在今天快速進步的人工智慧世界中,我們經常聽到像深度學習、神經網路等流行詞彙。幾乎每個組織、行業和部門都試圖將人工智慧的力量增加到其產品和服務中。這是因為人工智慧模擬了人類與世界的互動方式。因此,人工智慧正在變得在自動化重複任務方面不可或缺,以便我們人類可以集中精力做更複雜的工作。人工智慧領域是根據不同種類別的人工神經網路(ANN)的應用。如果您以前從未使用過ANN,不要擔心。我們將學習關於ANN,並建立我們的第一個完全功能性的ANN模型,可以像人類一樣做出決定。

結構

在這一章中,我們將涵蓋以下主題:

人工神經網路(ANN)基礎

人工神經網路(ANN)是一種機器學習模型,模仿人類大腦的學習方式,能夠對資料進行分類別和迴歸分析。在本章中,我們將探討ANN的基本概念、TensorFlow和Keras的應用,以及如何建立和訓練ANN模型。

ANN的基本概念

ANN是一種由多個神經元(neuron)組成的網路,每個神經元都是一個簡單的數學函式,能夠接收輸入、進行計算和產生輸出。ANN的目的是學習資料中的模式和關係,以便對新資料進行預測或分類別。

TensorFlow和Keras

TensorFlow是一個開源的機器學習框架,提供了強大的工具和函式庫來建立和訓練ANN模型。Keras是一個高階別的神經網路API,能夠在TensorFlow上執行,提供了簡單易用的介面來建立和訓練ANN模型。

建立ANN模型

要建立一個ANN模型,我們需要定義模型的架構,包括輸入層、隱藏層和輸出層。輸入層接收資料,隱藏層進行計算和轉換,輸出層產生預測結果。每個層都包含多個神經元,神經元之間透過權重和偏差進行連線。

訓練ANN模型

訓練ANN模型涉及調整模型的引數,以最小化損失函式和最大化準確率。損失函式衡量模型的預測結果與真實結果之間的差異,準確率衡量模型的預測結果的正確性。

Hyperparameter調整

Hyperparameter調整是指調整模型的超引數,例如學習率、批次大小和隱藏層的數量,以改善模型的效能。

儲存和載入TensorFlow模型

TensorFlow提供了多種方式來儲存和載入模型,包括儲存模型的權重和架構。

ANN的應用

ANN可以應用於多種領域,包括影像分類別、語言翻譯、語音識別等。

內容解密:

在這個章節中,我們探討了ANN的基本概念、TensorFlow和Keras的應用,以及如何建立和訓練ANN模型。ANN是一種強大的機器學習模型,能夠對資料進行分類別和迴歸分析。透過調整模型的引數和超引數,我們可以改善模型的效能和準確率。同時,我們也需要注意模型的複雜度和過擬合問題,以避免模型過度複雜和降低其泛化能力。

圖表翻譯:

下圖展示了ANN的基本架構,包括輸入層、隱藏層和輸出層。

  graph LR
    A[輸入層] --> B[隱藏層]
    B --> C[輸出層]

這個圖表展示了ANN的基本流程,輸入層接收資料,隱藏層進行計算和轉換,輸出層產生預測結果。每個層都包含多個神經元,神經元之間透過權重和偏差進行連線。

活化函式

活化函式是人工神經網路(ANN)中的一個重要元件,負責引入非線性關係以捕捉複雜模式。每個神經元的線性輸出(加權和)需要透過一個非線性函式,稱為活化函式,以引入非線性關係。常用的活化函式包括sigmoid、tanh、ReLu(修正線性單元)等。

Sigmoid函式

Sigmoid函式是一個S形的可微分函式,能夠引入非線性關係。以下是使用Python實作Sigmoid函式並繪製其圖形的例子:

import numpy as np
import matplotlib.pyplot as plt

# 建立一個包含50個均勻分佈的數值陣列,範圍從-10到10
x = np.linspace(-10, 10, 50)

# 定義Sigmoid函式
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# 應用Sigmoid函式到陣列x
y = sigmoid(x)

# 繪製Sigmoid曲線
plt.plot(x, y)
plt.title('Sigmoid函式')
plt.xlabel('輸入')
plt.ylabel('輸出')
plt.show()

Sigmoid函式會將輸入值壓縮到0到1之間,如圖3.5所示。

Tanh函式

Tanh函式是一個雙曲線型的指數函式,常用作神經網路的活化函式。NumPy提供了內建的tanh函式,我們可以使用它來繪製其圖形,如圖3.7所示。

ReLu函式

ReLu函式是一種修正線性單元,當輸入值為正時直接傳回輸入值,否則傳回0。ReLu函式在神經網路中被廣泛使用。以下是使用NumPy實作ReLu函式的例子:

import numpy as np

# 建立一個包含50個均勻分佈的數值陣列,範圍從-10到10
x = np.linspace(-10, 10, 50)

# 定義ReLu函式
def relu(x):
    return np.maximum(x, 0)

# 應用ReLu函式到陣列x
y = relu(x)

# 繪製ReLu曲線
plt.plot(x, y)
plt.title('ReLu函式')
plt.xlabel('輸入')
plt.ylabel('輸出')
plt.show()

除了這三種活化函式外,還有許多其他活化函式可供選擇。

深度神經網路

一個具有多個隱藏層和神經元的全連線ANN可以視覺化地表示,如圖3.9所示。這種ANN也被稱為前饋神經網路。圖中每個箭頭代表了一個權重(類別似於圖3.2),乘以輸入值。具有多個隱藏層的ANN被稱為深度神經網路。深度神經網路在學習無結構化資料(如影像、自然語言等)中的複雜關係方面非常有效,因此被廣泛應用於AI應用中。

反向傳播演算法

反向傳播演算法是一種用於訓練多層神經網路的演算法,能夠高效地使用梯度方法進行訓練。預測任務的目標是最小化實際值和預測值之間的差異。反向傳播演算法使用鏈式法則計算損失函式對每個神經網路權重的梯度。層層遞迴地從最後一層到輸入層,梯度會反饋回去。反向傳播過程會多次迭代,直到損失最小且不再改變。在反向傳播過程中,最佳化演算法會找到最佳的權重值以獲得最小的損失。

損失函式

損失函式用於衡量實際值和預測值之間的差異。損失函式計算實際輸出和預測輸出之間的差異,並且需要最小化這個差異。對於迴歸任務,最常用的損失函式是均方誤差(MSE)、絕對誤差(MAE)、絕對百分比誤差(MAPE)等。對於分類別任務,最常用的損失函式是交叉熵損失、鉤形損失等。

Optimizer

在神經網路中,最佳化器(Optimizer)扮演著至關重要的角色,負責最小化預測損失。最佳化器與反向傳播法(Backpropagation)一起使用,訓練神經網路。它們透過調整權重,逐步達到最小化預測損失的目標。這個過程中的步值被稱為學習率。常用的最佳化器包括隨機梯度下降(Stochastic Gradient Descent, SGD)、RMSProp、Adadelta、Adagrad、Adam等。

TensorFlow 和 Keras

TensorFlow 是一個開源的軟體函式庫,主要用於開發各種人工智慧(AI)應用。雖然 TensorFlow 不是唯一的 AI 開發函式庫,但由於其強大的功能和廣泛的使用,我們將以 TensorFlow 2 的 Python API 為基礎進行 AI 應用的開發。在本章中,我們將學習如何使用 TensorFlow 2 開發 AI 應用,並探討其與舊版本的差異。

Keras 是另一個開源的 Python 函式庫,專門用於開發 AI 應用。Keras 由 Google 工程師 François Chollet 建立於 2015 年,其目的是提供一個高層抽象和簡潔易用的介面,以便開發者能夠快速地開發和測試 AI 模型。由於 Keras 的受歡迎程度和易用性,TensorFlow 2 將其整合為其的一個介面。現在,我們可以透過 tf.keras 介面存取 Keras。

建立第一個 ANN 模型

在瞭解了基礎知識後,我們可以開始建立第一個人工神經網路(ANN)模型。這個模型將使用 TensorFlow 2 函式庫,目的是識別手寫數字。由於這是一個多類別分類別任務,我們將使用 Modified National Institute of Standards and Technology(MNIST)資料函式庫作為我們的資料集。MNIST 資料函式庫包含 60,000 個訓練影像和 10,000 個測試影像,每個影像都是 28x28 的灰度影像。

import tensorflow as tf
from tensorflow import keras
from sklearn.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as plt

# 載入 MNIST 資料函式庫
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()

# 顯示第一個訓練影像
plt.imshow(x_train[0], cmap='gray')
plt.show()
print("影像對應的數字:", y_train[0])

# 檢視資料形狀
print("訓練資料形狀:", x_train.shape)
print("測試資料形狀:", x_test.shape)

# 將影像矩陣展平為向量
x_train = x_train.reshape(-1, 784)
x_test = x_test.reshape(-1, 784)

print("訓練資料展平後的形狀:", x_train.shape)
print("測試資料展平後的形狀:", x_test.shape)

影像預處理

在建立模型之前,我們需要對資料進行預處理,以便模型能夠最佳地學習和預測。由於我們正在嘗試開發一個全連線、前饋神經網路,所有影像的畫素值都將成為 ANN 模型的輸入特徵。因此,我們必須將影像矩陣視為一個扁平向量來輸入神經網路。

  flowchart TD
    A[影像矩陣] --> B[展平]
    B --> C[輸入神經網路]

圖表翻譯:

此流程圖描述瞭如何將影像矩陣轉換為扁平向量,以便輸入神經網路。首先,我們有影像矩陣 A,然後透過展平過程 B 將其轉換為一維向量,最後輸入神經網路 C 進行處理。

手寫辨識模型的建立

資料預處理

在開始建立模型之前,我們需要對影像資料進行預處理。影像資料的畫素值範圍從 0 到 255。為了將這些值標準化,我們可以使用 Min-Max 標準化公式。這個公式需要從每個畫素值中減去最小值,並將結果除以最大值和最小值之間的差值。由於最小值為 0,因此我們可以簡化這個過程,直接將畫素值除以 255.0。

x_train = x_train / 255.0
x_test = x_test / 255.0

建立模型

現在,我們將建立一個全連線、前饋的神經網路(ANN)來識別手寫數字。在 TensorFlow 中,有三種方法可以建立模型:順序 API、函式 API 和模型子類別化。首先,我們將使用順序 API 來建立一個三層神經網路。

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(128, input_shape=(784,), activation='relu'))
model.add(tf.keras.layers.Dense(128, activation='relu'))
model.add(tf.keras.layers.Dense(10))

在這段程式碼中,我們首先建立了一個 Sequential 模型例項。然後,我們使用 add() 方法增加了三個全連線層(Dense 層)。第一層有 128 個神經元,使用 ReLU 作為啟用函式,並指定了輸入形狀為 (784,),代表著 28x28 的影像被扁平化為 784 個元素的向量。第二層也是 128 個神經元,使用 ReLU 啟用函式。第三層有 10 個神經元,代表著輸出的類別數量。

模型摘要

定義好模型後,我們可以使用 summary() 方法來檢視模型的詳細訊息。

model.summary()

這將顯示每層的引數數量、輸入和輸出的形狀等訊息。例如,第一層全連線層有 100480 個引數,這是由於每個神經元有 784 個權重(對應於輸入的 784 個元素)加上 1 個偏差項,總共 785 個引數。瞭解這些引數對於模型的訓練和最佳化至關重要。

內容解密:

  • 資料預處理:對影像資料進行 Min-Max 標準化,以便於模型的訓練。
  • 建立模型:使用 TensorFlow 的順序 API 建立一個三層全連線神經網路。
  • 模型摘要:使用 summary() 方法檢視模型的詳細訊息,包括每層的引數數量和輸入、輸出的形狀。

圖表翻譯:

  graph LR
    A[影像資料] -->|標準化|> B[標準化資料]
    B -->|建立模型|> C[三層全連線神經網路]
    C -->|模型摘要|> D[模型詳細訊息]

此圖表描述了從影像資料到建立模型並檢視模型摘要的過程。每一步驟都對應著前面所描述的內容。

神經網路模型的建立和視覺化

在建立神經網路模型的過程中,我們需要考慮每個神經元的引數數量。假設我們有 16512 個引數需要學習,如果每個神經元有 128 個輸出和 1 個偏差單元,那麼每個神經元就有 129 個引數需要學習。

從技術架構視角來看,本章節完整闡述了構建AI開發環境的核心要素,涵蓋了本地Anaconda環境設定、雲端Google Colab平臺的應用,以及與GitHub的整合。深入分析了Google Colab的優勢,包括免安裝的雲端特性、GPU/TPU加速、便捷的Google Drive整合以及版本控制的便利性。然而,對於本地環境的建置說明略顯簡略,缺乏對不同作業系統的細節指導,可能會對新手造成困擾。此外,雖然提到了TensorFlow和Keras,但並未深入探討其在模型構建中的具體應用,僅停留在框架介紹層面。展望未來,隨著雲端開發環境的普及,Google Colab等平臺將扮演更重要的角色。建議後續章節更深入地探討TensorFlow/Keras的實務操作,並提供更詳盡的本地環境建置,以提升讀者的實戰能力。玄貓認為,掌握雲端開發環境是AI工程師的必備技能,本章節提供了一個良好的開端,但仍需持續補充更豐富的實戰內容。