tensorflow中内置了很多经典的网络模型,供我们在迁移学习中训练和使用。

    比如 VGG16、VGG19、Xception resnet50 等等

    在迁移学习中我们经常会用到别人已经训练好的模型,然后在别人的基础上添加自己的处理,然后可能也会对人家的模型做一些微调,这些keras都做了很好的封装,供我们使用。

    这些模型都通过 tf.keras.applications类里面下载,最终下载到本地个人目录下的.keras models下面。

    1. # 下载VGG模型 weights="imagenet" 表示使用别人训练好的参数,include_top表示不包含输出层
    2. covn_base = tf.keras.applications.VGG16(weights="imagenet", include_top=False)
    3. # 添加到自己的模型当中,然后可以添加自己的层
    4. model.add(covn_base)
    5. # 需要设置covn_base中的参数与不可变
    6. covn_base.trainable = False
    7. # 在我们的模型训练完后,可能会对模型进行微调,对covn_base立面的参数进行更改,这里就需要重新设置
    8. # 1、首先让所有的层可调
    9. covn_base.trainable = True
    10. # 2、获取预训练模型层数
    11. len(covn_base.layers)
    12. # 3 锁定自己规定的数 前面的参数
    13. for layer in covn_base.layers[:-3]:
    14. layer.trainable = True
    15. # 然后在对模型进行训练
    16. model.fit(initial_epoch=10, epochs=30)

    image.png
    可以看到下载后的模型都是之前在模型保存中说的,,采用的是h5的形式保存的