【问题标题】:Fine-Tune pre-trained InceptionResnetV2微调预训练的 InceptionResnetV2
【发布时间】:2018-04-27 19:53:28
【问题描述】:

微调网络的步骤如下:

  1. 在已经训练好的基础上添加您的自定义网络 网络。
  2. 冻结基础网络。
  3. 训练您添加的部分。
  4. 解冻基础网络中的一些层。
  5. 联合训练这两个层和您添加的部分。

现在如果网络架构简单如 VGG16,我们可以简单地从block5_conv1 (Conv2D) 解冻基础网络并重新训练它。

VGG16 架构

但是当架构像 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')`

【问题讨论】:

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


    【解决方案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(...)
    

    这是一个很好的起点github.com/yuyang-huang/keras-inception-resnet-v2

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 2021-11-18
      • 2017-06-05
      • 1970-01-01
      • 2019-12-08
      • 2016-05-01
      • 2019-11-14
      • 2019-01-22
      • 1970-01-01
      相关资源
      最近更新 更多