深度學習keras筆記

芋泥啵啵月亮發表於2020-12-17

基本概念

1、tensorflow是keras的後端
2、tensor是張量,是向量和矩陣的推廣。張量的階數或維度稱為軸(axis)

import  numpy as np
a = np.array([[1,2],[3,4]])
sum1 = np.sum(a,axis=0) # axis=0代表按行計算
sum2 = np.sum(a,axis=1) # axis=1代表按列計算
print(sum1)
print(sum2)

output:

[4 6]
[3 7]

3、在tensorflow中表示1000張32*32的彩色圖片用四維張量(1000,32,32,3)來表示,把通道數放在最後,由於是彩色影像,有RGB三個通道。
4、在keras中有兩種模型 ①:序貫模型Sequential,單輸入單輸出層與層之間只有相鄰關係,沒有連線關係,編譯速度較快。②:圖模型Graph,支援多輸入多輸出,各個層之間可以任意連線,但編譯速度較慢。
5、深度學習的優化演算法是梯度下降演算法,使用batch_size可以把資料分為若干個批,按批來更新引數。也可避免一次送入網路資料過多,引起記憶體爆炸。
6、序貫模型Sequential,第一層需要接收一個關於輸入資料shape的參量

搭建模型

例:

from keras.models import Sequential
from keras.layers import Dense,Activation
model = Sequential()
model.add(Dense(16,input_dim=32))
model.add(Activation('relu'))
Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense (Dense)                (None, 64)                8256      
_________________________________________________________________
activation (Activation)      (None, 64)                0         
=================================================================
Total params: 8,256
Trainable params: 8,256
Non-trainable params: 0
_________________________________________________________________

模型的配置

在訓練模型之前,需要用compile來進行配置。
compile接受三個引數 (1)優化器optimizer (2)損失函式loss (3)指標列表metrics

模型的訓練

model.fit
執行訓練過程,告知訓練集和測試集的輸入特徵和標籤,告知batch
model.fit(訓練集的輸入特徵,訓練集的標籤,
batch_size= , epochs= ,
validation_data=(測試集的輸入特徵,測試集的標籤),
validation_split=從訓練集劃分多少比例給測試集,
validation_freq=多少次epoch迭代用測試集測試一次結果)
epochs是指把所有的資料訓練多少遍

模型的儲存

可以使用model.save(filepath)的方法將keras的模型和權重儲存在一個檔案中。可以使用model.load_model(filepath)來例項化模型。

from keras.models import load_model
model.save('my_model.h5') # creates a HDF5 file 'my_model.h5'
del model # deletes the existing model
# returns a compiled model
# identical to the previous one
model = load_model('my_model.h5')

相關文章