2017-07-19 108 views

回答

2

這聽起來像你正試圖解決兩個不同但密切相關的問題。我建議您訓練您的第一個模型以預測10個課程,然後創建第一個模型(包括權重)的副本,但使用不同的輸出層以支持二進制分類。此時,您可以:

  1. 火車站只有你最後的緻密層和新輸出層,或
  2. 列車具有低學習速率

因爲你可以瞭解更多的信息,整個模型Transfer Learning

示例代碼:

model.save('model_1') # load this to retrieve your original model 
model.pop() # pop output activation layer and associated params 
model.pop() # pop final dense layer 
model.add(Dense(1), kernel_initializer='normal', activation='sigmoid') 
for layer in model.layers[:-2]: 
    layer.trainable = False 
model.compile(loss='binary_crossentropy', optimizer='nadam', metrics=['accuracy']) 
model.fit(x_train, y_train, epochs=50, batch_size=32) 

如果你想重新訓練整個模型,那麼你可以省略循環設置所有,但最後兩層untrainable,並選擇優化,如SGD具有低學習速率。

+0

感謝您的答案,但你可以告訴如何創建模型的副本,以及如何使用它作爲第二個模型的輸入 – goku2rider

+0

我會嘗試和今天結束時用一些代碼更新這個 – Imran

+0

好吧,我有添加了一些(未經測試的!)代碼。希望有所幫助。 – Imran