更新時間:2022-02-15 來源:黑馬程序員 瀏覽量:
tf.keras是TensorFlow 2.0的高階API接口,為TensorFlow的代碼提供了新的風格和設計模式,大大提升了TF代碼的簡潔性和復用性,官方也推薦使用tf.keras來進行模型設計和開發(fā)。
tf.keras中常用模塊如下表所示:
模塊 | 概述 |
activations | 激活函數 |
applications | 預訓練網絡模塊 |
Callbacks | 在模型訓練期間被調用 |
datasets | tf.keras數據集模塊,包括boston_housing,cifar10,fashion_mnist,imdb ,mnist |
layers | Keras層API |
losses | 各種損失函數 |
metircs | 各種評價指標 |
models | 模型創(chuàng)建模塊,以及與模型相關的API |
optimizers | 優(yōu)化方法 |
preprocessing | Keras數據的預處理模塊 |
regularizers | 正則化,L1,L2等 |
utils | 輔助功能實現 |
深度學習實現的主要流程:1.數據獲取,2,數據處理,3.模型創(chuàng)建與訓練,4 模型測試與評估,5.模型預測。
使用 tf.keras,首先需要在代碼開始時導入tf.keras。
import tensorflow as tf from tensorflow import keras
對于小的數據集,可以直接使用numpy格式的數據進行訓練、評估模型,對于大型數據集或者要進行跨設備訓練時使用tf.data.datasets來進行數據輸入。
# 配置優(yōu)化方法,損失函數和評價指標 model.compile(optimizer=tf.train.AdamOptimizer(0.001), loss='categorical_crossentropy', metrics=['accuracy'])
模型訓練:
# 指明訓練數據集,訓練epoch,批次大小和驗證集數據model.fit/fit_generator(dataset, epochs=10, batch_size=3, validation_data=val_dataset, )
模型評估:
# 指明評估數據集和批次大小 model.evaluate(x, y, batch_size=32)
模型預測:
# 對新的樣本進行預測 model.predict(x, batch_size=32)
回調函數用在模型訓練過程中,來控制模型訓練行為,可以自定義回調函數,也可使用tf.keras.callbacks 內置的 callback :
ModelCheckpoint:定期保存 checkpoints。 LearningRateScheduler:動態(tài)改變學習速率。 EarlyStopping:當驗證集上的性能不再提高時,終止訓練。 TensorBoard:使用 TensorBoard 監(jiān)測模型的狀態(tài)。
只保存參數:
# 只保存模型的權重 model.save_weights('./my_model') # 加載模型的權重 model.load_weights('my_model')保存整個模型:
# 保存模型架構與權重在h5文件中 model.save('my_model.h5') # 加載模型:包括架構和對應的權重 model = keras.models.load_model('my_model.h5')