iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0
Python

30天學Python系列 第 30

Python的TensorFlow

  • 分享至 

  • xImage
  •  

TensorFlow 是一個由 Google Brain 團隊開發的開源深度學習框架於 2015 年推出,並迅速成為研究人員和開發者用來進行人工智能和深度學習開發的首選工具之一。在 TensorFlow 中,核心是數據以張量的形式通過計算圖進行流動和處理。張量是多維數組,用於存儲數據,而計算圖則定義了數據處理的操作。

TensorFlow 應用場景

  • 圖像分類:如物體識別、手寫數字識別等。
  • 自然語言處理:包括文本分類、情感分析、機器翻譯等任務。
  • 強化學習:用於訓練智能體進行自主學習和決策。
  • 自動駕駛:實時分析周圍環境,進行物體檢測和路徑規劃。

TensorFlow 簡單範例

一個簡單的 TensorFlow 使用範例,它構建了一個基本的神經網絡來對 MNIST 手寫數字進行分類。

import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.datasets import mnist

# 下載 MNIST 手寫數字數據集
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# 預處理數據:將像素值縮放到 0-1 之間
x_train, x_test = x_train / 255.0, x_test / 255.0

# 建立模型
model = models.Sequential([
    layers.Flatten(input_shape=(28, 28)),  # 將28x28像素的圖像展平
    layers.Dense(128, activation='relu'),  # 全連接層,有128個神經元
    layers.Dropout(0.2),  # 防止過擬合的Dropout層
    layers.Dense(10, activation='softmax')  # 輸出層,10個類別
])

# 編譯模型
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 訓練模型
model.fit(x_train, y_train, epochs=5)

# 測試模型
test_loss, test_acc = model.evaluate(x_test, y_test)

print(f'測試準確率: {test_acc}')

步驟解釋

  1. 數據下載與預處理:下載 MNIST 數據集並將像素值標準化(0-255 轉換到 0-1 範圍)。
  2. 構建模型:使用 Keras API 構建神經網絡,包含一個全連接層和一個 Dropout 層來防止過擬合,最後一層是 10 個類別的 softmax 輸出。
  3. 編譯與訓練:使用 Adam 優化器和交叉熵損失函數,對模型進行編譯並進行 5 輪訓練。
  4. 評估模型:對測試集進行評估,輸出模型在測試數據上的準確率。

今天也是30天分享的最後一天了,很高興能參加並完成這項比賽,這過程中我也重新將學過的Python基本知識重新學習了一遍,也希望未來能再次參加,並帶來更多的文章分享。


上一篇
Python的matplotlib
系列文
30天學Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言