我有一些麻煩了解使用batchnormalization的DNN模型,在使用keras的詳細說明中。有人可以向我解釋我構建的這個模型中每一層的結構和內容嗎?有關使用keras進行batening規範的dnn層的理論問題
modelbatch = Sequential()
modelbatch.add(Dense(512, input_dim=1120))
modelbatch.add(BatchNormalization())
modelbatch.add(Activation('relu'))
modelbatch.add(Dropout(0.5))
modelbatch.add(Dense(256))
modelbatch.add(BatchNormalization())
modelbatch.add(Activation('relu'))
modelbatch.add(Dropout(0.5))
modelbatch.add(Dense(num_classes))
modelbatch.add(BatchNormalization())
modelbatch.add(Activation('softmax'))
# Compile model
modelbatch.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# Train the model
start = time.time()
model_info = modelbatch.fit(X_2, y_2, batch_size=500, \
epochs=20, verbose=2, validation_data=(X_test, y_test))
end = time.time()
這一點,我想,我的模型的所有層:
print(modelbatch.layers[0].get_weights()[0].shape)
(1120, 512)
print(modelbatch.layers[0].get_weights()[1].shape)
(512,)
print(modelbatch.layers[1].get_weights()[0].shape)
(512,)
print(modelbatch.layers[1].get_weights()[1].shape)
(512,)
print(modelbatch.layers[1].get_weights()[2].shape)
(512,)
print(modelbatch.layers[1].get_weights()[3].shape)
(512,)
print(modelbatch.layers[4].get_weights()[0].shape)
(512, 256)
print(modelbatch.layers[4].get_weights()[1].shape)
(256,)
print(modelbatch.layers[5].get_weights()[0].shape)
(256,)
print(modelbatch.layers[5].get_weights()[1].shape)
(256,)
print(modelbatch.layers[5].get_weights()[2].shape)
(256,)
print(modelbatch.layers[5].get_weights()[3].shape)
(256,)
print(modelbatch.layers[8].get_weights()[0].shape)
(256, 38)
print(modelbatch.layers[8].get_weights()[1].shape)
(38,)
print(modelbatch.layers[9].get_weights()[0].shape)
(38,)
print(modelbatch.layers[9].get_weights()[1].shape)
(38,)
print(modelbatch.layers[9].get_weights()[2].shape)
(38,)
print(modelbatch.layers[9].get_weights()[3].shape)
(38,)
我會感謝您的幫助,在此先感謝。
是的,謝謝,它更清晰,但只是批量標準化的4個參數,我不知道是否可以用另一個數據來評估(如何知道,可以將模型保存在keras中或如果是簡單的DNN,你可以通過model.layers.get_weights()來獲取權重和偏差來評估另一個數據),所以,我希望做同樣的事情,在這種情況下使用批量規範化,但我不知道所有圖層中的哪一個需要在另一個環境中進行評估?提前致謝! –
您的意思是您希望使用您學習的模型在沒有Keras API的情況下進行預測,並且您想將所有權重和體系結構複製到其他項目中? – Nathan
是的,就像用一個簡單的DNN例子一樣,我得到這個權重:'weights1 = modelbatch.layers [0] .get_weights()[0]'#1隱藏層 'biases1 = ...' '權重2 = modelbatch.layers [1] .get_weights()[0]'#The 2 hidden layer 'biases2 = .....' 'weights3 = modelbatch.layers [4] .get_weights()[0]'#The輸出層 'biases3 = ....' –