gpt4 book ai didi

machine-learning - 如何使用resnet50模型进行微调?

转载 作者:行者123 更新时间:2023-11-30 09:19:08 25 4
gpt4 key购买 nike

我在网上看到很多关于如何微调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 创建一个模型,然后将其完全卡住。
现在,您添加自己的密集层并使其可训练。

这是这些模型最常见的改编。

对于其他类型的微调,可能没有明确的规则。

关于machine-learning - 如何使用resnet50模型进行微调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46693776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com