iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
自我挑戰組

30天初探tensorflow之旅系列 第 20

Day 20 認識與安裝Keras

  • 分享至 

  • xImage
  •  

因為後續會用到Keras讀取模型,所以今天想了解一下Keras。先來看一下它的介紹:
Keras 是一個用 Python 編寫的開源類神經網路庫,是一個高階神經網絡 API,包含許多常用神經網路構建塊的實現,例如層、目標、啟用功能、最佳化器和一系列工具,可以更輕鬆地處理圖像和文字資料,它支援卷積神經網路和迴圈神經網路,常見的實用公共層支援有Dropout、批次歸一化和池化層等。
因為它深度學習模型的構建和訓練相較簡單直觀,且提供了多種預建的層(如卷積層、全連接層、池化層等)以及各種優化器和損失函數,適合初學者用於摸索。

先開始安裝:

pip3 install keras

https://ithelp.ithome.com.tw/upload/images/20241004/2016933077mngWF1sJ.png

確認是否安裝成功和確認版本:

import keras
print(keras.__version__)

https://ithelp.ithome.com.tw/upload/images/20241004/20169330yHNQq0Uycd.png

簡介它提供了兩種主要方式來建立模型:
一、Sequential API:
它是由一系列層按順序堆疊而成,比較適合用於大多數簡單的模型。它建構模型的方式如下,

import tensorflow as tf
from tensorflow.keras import layers, models
model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.Flatten(),
    layers.Dense(64, activation='relu'),
    layers.Dense(10, activation='softmax')
])

二、Functional API:
它可以創建多輸入、多輸出或共享層的模型,通常是用於構建更複雜的模型。範例如下,

inputs = layers.Input(shape=(28, 28, 1))
x = layers.Conv2D(32, (3, 3), activation='relu')(inputs)
x = layers.MaxPooling2D((2, 2))(x)
x = layers.Conv2D(64, (3, 3), activation='relu')(x)
x = layers.Flatten()(x)
x = layers.Dense(64, activation='relu')(x)
outputs = layers.Dense(10, activation='softmax')(x)
model = models.Model(inputs=inputs, outputs=outputs)

這邊特別提一個前面沒用過的語法,關於儲存和載入模型,是用 save 和 load_model 。

model.save('my_model.h5')
loaded_model = tf.keras.models.load_model('my_model.h5')

上一篇
Day 19 卷積神經網路(CNN)實作
下一篇
Day 21 反向傳播演算法
系列文
30天初探tensorflow之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言