tensorflow中内置了很多经典的网络模型,供我们在迁移学习中训练和使用。
比如 VGG16、VGG19、Xception resnet50 等等
在迁移学习中我们经常会用到别人已经训练好的模型,然后在别人的基础上添加自己的处理,然后可能也会对人家的模型做一些微调,这些keras都做了很好的封装,供我们使用。
这些模型都通过 tf.keras.applications类里面下载,最终下载到本地个人目录下的.keras models下面。
# 下载VGG模型 weights="imagenet" 表示使用别人训练好的参数,include_top表示不包含输出层covn_base = tf.keras.applications.VGG16(weights="imagenet", include_top=False)# 添加到自己的模型当中,然后可以添加自己的层model.add(covn_base)# 需要设置covn_base中的参数与不可变covn_base.trainable = False# 在我们的模型训练完后,可能会对模型进行微调,对covn_base立面的参数进行更改,这里就需要重新设置# 1、首先让所有的层可调covn_base.trainable = True# 2、获取预训练模型层数len(covn_base.layers)# 3 锁定自己规定的数 前面的参数for layer in covn_base.layers[:-3]:layer.trainable = True# 然后在对模型进行训练model.fit(initial_epoch=10, epochs=30)

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