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