![](/img/trans.png)
[英]How to fo transfer learning of a resnet50 model with with own dataset?
[英]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.