教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

tf.keras是什么?tf.keras怎樣實現(xiàn)深度學習?

更新時間:2022年02月12日11時53分 來源:傳智教育 瀏覽次數(shù):

tf.keras是TensorFlow 2.0的高階API接口,為TensorFlow的代碼提供了新的風格和設計模式,大大提升了TF代碼的簡潔性和復用性,官方也推薦使用tf.keras來進行模型設計和開發(fā)。

tf.keras是什么

常用模塊

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


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

常用方法

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

深度學習常用方法

1.導入tf.keras

使用 tf.keras,首先需要在代碼開始時導入tf.keras。

import tensorflow as tf
from tensorflow import keras

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

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

3.模型構(gòu)建

  • 簡單模型使用Sequential進行構(gòu)建
  • 復雜模型使用函數(shù)式編程來構(gòu)建
  • 自定義layers

4.訓練與評估

  • 配置訓練過程:
# 配置優(yōu)化方法,損失函數(shù)和評價指標
model.compile(optimizer=tf.train.AdamOptimizer(0.001),
              loss='categorical_crossentropy',
              metrics=['accuracy'])

模型訓練:

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

模型評估:

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

模型預測:

# 對新的樣本進行預測
model.predict(x, batch_size=32)

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

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

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

6.模型的保存和恢復

只保存參數(shù):

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






猜你喜歡:

什么是深度學習?深度學習各層負責什么內(nèi)容?

OpenCV圖片相加和混合的方法【人工智能基礎】

機器學習中入門級必學的算法有哪些?

Numpy數(shù)組操作教程【傳智教育】

傳智教育Ai人工智能軟件工程師培訓

0 分享到:
和我們在線交談!