首頁(yè)人工智能技術(shù)資訊正文

tf.keras 實(shí)現(xiàn)深度學(xué)習(xí)

更新時(shí)間:2022-02-15 來(lái)源:黑馬程序員 瀏覽量:

tf.keras是TensorFlow 2.0的高階API接口,為T(mén)ensorFlow的代碼提供了新的風(fēng)格和設(shè)計(jì)模式,大大提升了TF代碼的簡(jiǎn)潔性和復(fù)用性,官方也推薦使用tf.keras來(lái)進(jìn)行模型設(shè)計(jì)和開(kāi)發(fā)。

tf.keras是什么

常用模塊

tf.keras中常用模塊如下表所示:


模塊概述
activations激活函數(shù)
applications預(yù)訓(xùn)練網(wǎng)絡(luò)模塊
Callbacks在模型訓(xùn)練期間被調(diào)用
datasetstf.keras數(shù)據(jù)集模塊,包括boston_housing,cifar10,fashion_mnist,imdb ,mnist
layersKeras層API
losses各種損失函數(shù)
metircs各種評(píng)價(jià)指標(biāo)
models模型創(chuàng)建模塊,以及與模型相關(guān)的API
optimizers優(yōu)化方法
preprocessingKeras數(shù)據(jù)的預(yù)處理模塊
regularizers正則化,L1,L2等
utils輔助功能實(shí)現(xiàn)

常用方法

深度學(xué)習(xí)實(shí)現(xiàn)的主要流程:1.數(shù)據(jù)獲取,2,數(shù)據(jù)處理,3.模型創(chuàng)建與訓(xùn)練,4 模型測(cè)試與評(píng)估,5.模型預(yù)測(cè)。

深度學(xué)習(xí)常用方法

1.導(dǎo)入tf.keras

使用 tf.keras,首先需要在代碼開(kāi)始時(shí)導(dǎo)入tf.keras。

import tensorflow as tf
from tensorflow import keras

2.數(shù)據(jù)輸入

對(duì)于小的數(shù)據(jù)集,可以直接使用numpy格式的數(shù)據(jù)進(jìn)行訓(xùn)練、評(píng)估模型,對(duì)于大型數(shù)據(jù)集或者要進(jìn)行跨設(shè)備訓(xùn)練時(shí)使用tf.data.datasets來(lái)進(jìn)行數(shù)據(jù)輸入。

3.模型構(gòu)建

  • 簡(jiǎn)單模型使用Sequential進(jìn)行構(gòu)建
  • 復(fù)雜模型使用函數(shù)式編程來(lái)構(gòu)建
  • 自定義layers

4.訓(xùn)練與評(píng)估

  • 配置訓(xùn)練過(guò)程:
# 配置優(yōu)化方法,損失函數(shù)和評(píng)價(jià)指標(biāo)
model.compile(optimizer=tf.train.AdamOptimizer(0.001),
              loss='categorical_crossentropy',
              metrics=['accuracy'])

模型訓(xùn)練:

# 指明訓(xùn)練數(shù)據(jù)集,訓(xùn)練epoch,批次大小和驗(yàn)證集數(shù)據(jù)model.fit/fit_generator(dataset, epochs=10, 
                        batch_size=3,
          validation_data=val_dataset,
          )

模型評(píng)估:

# 指明評(píng)估數(shù)據(jù)集和批次大小
model.evaluate(x, y, batch_size=32)

模型預(yù)測(cè):

# 對(duì)新的樣本進(jìn)行預(yù)測(cè)
model.predict(x, batch_size=32)

5.回調(diào)函數(shù)(callbacks)

回調(diào)函數(shù)用在模型訓(xùn)練過(guò)程中,來(lái)控制模型訓(xùn)練行為,可以自定義回調(diào)函數(shù),也可使用tf.keras.callbacks 內(nèi)置的 callback :

ModelCheckpoint:定期保存 checkpoints。 LearningRateScheduler:動(dòng)態(tài)改變學(xué)習(xí)速率。 EarlyStopping:當(dāng)驗(yàn)證集上的性能不再提高時(shí),終止訓(xùn)練。 TensorBoard:使用 TensorBoard 監(jiān)測(cè)模型的狀態(tài)。

6.模型的保存和恢復(fù)

只保存參數(shù):

# 只保存模型的權(quán)重
model.save_weights('./my_model')
# 加載模型的權(quán)重
model.load_weights('my_model')
保存整個(gè)模型:
# 保存模型架構(gòu)與權(quán)重在h5文件中
model.save('my_model.h5')
# 加載模型:包括架構(gòu)和對(duì)應(yīng)的權(quán)重
model = keras.models.load_model('my_model.h5')





猜你喜歡:

Numpy數(shù)組運(yùn)算【黑馬程序員】

SIFT算法原理:SIFT算法詳細(xì)介紹

線性回歸定義和線性回歸方程公式

黑馬程序員Ai人工智能開(kāi)發(fā)培訓(xùn)班

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!