簡體   English   中英

Keras層解凍會導致訓練過程從頭開始

[英]Keras layers unfreezing causes training process to start from scratch

我訓練了一個具有多個層的模型,而不是對model.layers set中的每個層進行訓練

layer.trainable = False

我在此模型中添加了幾層,稱為

model.compile(...)

並針對凍結幾個圖層的幾個紀元訓練了這個新模型。

后來我決定解凍各層並跑

for layer in model.layers:
   layer.trainable = True
model.compile(...)

當我開始使用未凍結的層來學習模型時,即使我只是想繼續使用先前學習的權重進行訓練,我也會得到很高的損失函數值。 我還檢查了model.compile(...)模型是否仍能很好地預測(不重置以前學習的權重),但是一旦學習過程開始,一切都會被“擦除”,我從頭開始。

有人可以澄清一下,這種行為是否可以? 如何重新編譯模型而不是從頭開始?

PS我還要求手動保存權重,並使用layer.get_weights()layer.set_weights()將其分配回新編譯的模型

我使用了相同的編譯參數(類似的optimizer和類似的loss

在開始微調訓練有素的圖層時,您可能需要降低學習率。 例如,對於新的密集層(頂部),所有其他層均設置為不可訓練的,學習率0.01可能適用。 但是,當將所有圖層設置為可訓練時,您可能需要將學習率降低為0.001,而無需手動復制或設置權重。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM