1. 程式人生 > >keras神經網絡開發知識筆記

keras神經網絡開發知識筆記

mode put num AI out keras 大致 代碼 ras

mnist數據集獲取60000個訓練樣本和10000個測試樣本,樣本為0-9十個數字,用全連接神經網絡進行訓練,並測試結果。

例程采用60000個數據樣本進行訓練,對於一般的電腦來說,這樣訓練會比較費時間,學習測試較慢

所以,可以加入以下幾行代碼:

# mnist has 60000 datas,down to 6000 to accelerate
x_train=x_train[:6000]

y_train=y_train[:6000]

將原始60000個樣本只取前6000個樣本進行訓練

例程的核心代碼為(部分數值有修改):

model = Sequential()
model.add(Dense(512, activation=‘relu‘, input_shape=(784,)))
model.add(Dropout(0.2))
model.add(Dense(64, activation=‘relu‘))
model.add(Dropout(0.2))

model.add(Dense(num_classes, activation=‘softmax‘))

  依次理解筆記:

model.add(Dense(512, activation=‘relu‘, input_shape=(784,)))

  

為model添加Dense層,即全鏈接層,該層有784維輸入,512為輸出

model.add(Dropout(0.2))

  

添加Dropout層,訓練時概率性丟棄

model.add(Dense(64, activation=‘relu‘))

  

再次添加Dense層,64維輸出(輸入為前一層,512維)

model.add(Dense(num_classes, activation=‘softmax‘))

  

再次添加Dense層,10維輸出(num_classes=10,即0-9十個數字)

所以我們大致能夠知道,神經網絡是輸入784維,第一層512維,第二層64維,輸出10維。

在例程末尾,可以添加兩句

model.summary()

print (model.get_weights())

   

keras神經網絡開發知識筆記