Fine-Tune预训练的InceptionResnetV2

时间:2018-04-27 19:53:28

标签: python-3.x neural-network keras

微调网络的步骤如下:

  1. 在已经训练过的基础上添加自定义网络 网络。
  2. 冻结基础网络。
  3. 训练你添加的部分。
  4. 解冻基础网络中的某些图层。
  5. 联合训练这些图层和你添加的部分。
  6. 现在,如果网络架构像VGG16一样简单,我们可以简单地从block5_conv1 (Conv2D)解冻基础网络并重新训练它。

    VGG16架构 VGG16 Architecture

    但是当架构像InceptionResnetV2一样高度复杂时,从哪里开始?有没有人有任何实践经验?在python中运行以下代码以查看模型:

    from keras.applications import InceptionResNetV2
    
    conv_base = InceptionResNetV2(weights='imagenet',
                      include_top=False,
                      input_shape=(299, 299, 3))
    conv_base.summary()
    from keras.utils import plot_model
    plot_model(conv_base, to_file='model.png')`
    

1 个答案:

答案 0 :(得分:1)

使用InceptionResNetV2对模型进行非常基本的微调将如下所示:

from inception_resnet_v2 import InceptionResNetV2
# ImageNet classification

model = InceptionResNetV2()
model.predict(...)

# Finetuning on another 100-class dataset
base_model = InceptionResNetV2(include_top=False, pooling='avg')
# The first argument in the next line represents the number of classes
outputs = Dense(100, activation='softmax')(base_model.output)
model = Model(base_model.inputs, outputs)
model.compile(...)
model.fit(...)

这是开始enter link description here

的好地方