我在努力改進下面的cnn架構。我正在使用cnn進行圖像分類。任何人都可以建議對下面的體系結構進行任何更改,以減少訓練時間而不會失去太多的準確性?減少cnn的培訓時間
上建築注:
它具有利用3,3窗口處理的神經網絡的初始輸入16個濾波器卷積層。
它隨後與2,2-
接着一個最大池層,是另一種卷積層,其大小與第一層相同,以便保持這是通過從現有層傳遞的數據。
繼第一層2是第三卷積層爲包括過濾器32,因爲這允許對網絡開始尋找更多的細節和開闢空間更多的數據。
的第三層,得到那麼這將被饋送到完全連接的層的總體平均池層。
第一完全連接隱藏層利用了64個單位,因爲這是一個估計通過我以允許輸出層之前,黃油,得到網絡更多的空間來確定權重。
接着是降層,以防止過度擬合終於被傳遞到使預測輸出層之前。
輸出層具有SOFTMAX激活功能,其允許它保持數字0,1之間的概率分佈。
CNN代碼:
from keras.layers import Conv2D, MaxPooling2D, GlobalAveragePooling2D
from keras.layers import Dropout, Flatten, Dense
from keras.models import Sequential
model = Sequential()
model.add(Conv2D(16, (3,3), input_shape=(224,224,3), activation = 'relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(16, (3,3), activation= 'relu'))
model.add(MaxPooling2D(pool_size =(2,2)))
model.add(Conv2D(32, (3,3), activation= 'relu'))
model.add(GlobalAveragePooling2D())
model.add(Dense(units=64, activation= 'relu'))
model.add(Dropout(0.3))
model.add(Dense(units= 133, activation = 'softmax'))
model.summary()
您的圖片相對較大(224x224x3),嘗試較小的尺寸並查看它對您的表現有多大影響。根據圖像的不同,您可能也會嘗試事先將它們轉換爲灰度。 – aseipel