簡體   English   中英

如何使用resnet50模型進行微調?

[英]how to do fine-tuning with resnet50 model?

我在互聯網上看到過很多關於如何微調VGG16和InceptionV3的示例,例如,有些人在微調VGG16時會將前25層設置為凍結。 對於InceptionV3,將凍結前172層。 但是resnet呢? 進行微調時,將凍結基本模型的某些層,如下所示:

from keras.applications.resnet50 import ResNet50

base_model = ResNet50(include_top=False, weights="imagenet", input_shape=(input_dim, input_dim, channels))

..............

for layer in base_model.layers[:frozen_layers]:
    layer.trainable = False

那么我應該如何設置Frozen_layers? 實際上,當我使用VGG16,VGG19,ResNet50,InceptionV3等進行微調時,我不知道應該設置多少層凍結。 誰能給我一些關於如何微調這些模型的建議? 特別是當人們對這些模型進行微調時,他們將凍結多少層?

很好奇.... VGG16模型共有23層...( https://github.com/fchollet/keras/blob/master/keras/applications/vgg16.py


所有這些模型都具有類似的結構:

  • 一系列卷積層
  • 隨后是幾層致密層

這幾層密集的層被keras稱為top (與include_top參數相同)。

通常,這種微調僅發生在最后的密集層中。 您讓卷積層(理解圖像並定位特征)不變地完成其工作,並創建適合您的個人班級的頂部。

人們經常創建自己的頂部,因為他們沒有與原始模型完全相同的課程。 因此他們改編了最后一部分,只訓練了最后一部分。

因此,您可以使用include_top=False創建一個模型,然后將其完全凍結。
現在,您可以添加自己的致密層並使它們可訓練。

這是這些模型的最常見的改編。

對於其他類型的微調,可能沒有明確的規則。

暫無
暫無

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

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