iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0
Python

進擊的Python系列 第 33

Day30-Keras(法蘭)

  • 分享至 

  • xImage
  •  

大家好!我是法蘭~我分享Keras

https://ithelp.ithome.com.tw/upload/images/20240913/20163257MoVfJjy4IM.jpg
圖片來源:(https://acg.gamer.com.tw/acgDetail.php?s=71979)

https://ithelp.ithome.com.tw/upload/images/20240828/20163257X2CUJgNfC2.png
圖片來源:Keras

Keras

一個高階神經網路API,以用戶友善、模組化和可擴展性著稱。讓使用者能夠快速地將想法轉換為結果。Keras 已經成為 TensorFlow 的一部分,提供更緊密的整合和更豐富的功能

Keras優勢

  • 易用性:Keras 的 API 設計直觀,即使是初學者也能快速上手
  • 模組化:Keras 模型由可組合的模組構成,靈活度高
  • 擴展性:Keras 允許使用者自定義層、損失函數等,滿足各種需求
  • 速度:Keras 基於 TensorFlow 或 Theano,擁有高效的後端支持

Keras基本概念

  • 模型(Model):神經網路整體結構
  • 層(Layer):神經網路基本單位,例如:Dense層、Conv2D層
  • 優化器(Optimizer):更新模型參數的算法,例如:Adam、SGD
  • 損失函數(Loss Function):衡量模型預測值與真實值之間差異
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# 建立一個簡單的全連接神經網路
model = Sequential([
    Dense(units=64, activation='relu', input_dim=100),
    Dense(units=10, activation='softmax')
])

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

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

程式碼說明

  • 導入模組:導入 TensorFlow 和 Keras 模組

  • 建立模型:使用 Sequential API 連接多個層

  • Dense:全連接層 units 表示神經元數量,activation 表示激活函數

  • 編譯模型

    • loss:損失函數,評估模型預測與真實值之間的差異
    • optimizer:優化器,更新模型的參數
    • metrics:評估指標,評估模型的性能
  • 訓練模型

    • x_train、y_train:訓練數據
    • epochs:訓練輪數
    • batch_size:每次訓練樣本數量

Keras應用場景

  • 影像辨識:圖像分類、物件偵測、影像分割
  • 自然語言處理:文本分類、機器翻譯、問答系統
  • 產生式模型:圖像生成、音樂生成

Keras 與 TensorFlow 的關係

Keras 原本是一個獨立的深度學習庫,後來被整合到 TensorFlow 中,成為 TensorFlow 的高階 API。TensorFlow 提供強大後端支持,而 Keras 則提供一個更易於使用的前端

以下是一個使用Keras建立簡單的圖片分類模型的程式碼示例

from keras.models import Sequential
from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D

# 定義模型
model = Sequential()

# 添加卷積層
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))

# 添加全連接層
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))

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

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

# 評估模型
model.evaluate(x_test, y_test)

這個程式碼將建立一個具有兩個卷積層和兩個全連接層的神經網路模型。模型可以對MNIST手寫數字資料集進行分類

結論

Keras是一個功能強大且易於使用的深度學習函式庫,它可以幫助使用者快速地建立和訓練神經網路模型。Keras適用於各種深度學習任務,包括圖像分類、物件偵測、自然語言處理和機器翻譯


上一篇
Day29-PyTorch(妮法)
下一篇
Day30 Scikit-Learn(伊莎貝爾)
系列文
進擊的Python36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言