Keras2.0 使用预训练模型权重创建网络的两种方式
使用预训练模型进行迁移学习,是一种常见的资源利用,加速训练的方法。
在图形分类问题中常用的网络有VGG16、VGG19、ResNet50等
Keras内置了这些常见经典算法的imagenet数据集上的训练权重。
迁移学习的基本模式是:
- 加载预训练权重,但是忽略最上层的全连接网络(Network(weights=”imagenet”, include_top=False,
input_tensor=Input(shape=(64, 64, 3)))). - 在加载的模型上根据自己的需要添加网络层
- 设置预训练权重的各层(layer)训练中不更新(layer.trainable=False)。
- 重新训练
如何把预加载权重的网络和自己新建的网络连接在一起,有两种常见的写法。
写法一:
1 | #加载预训练模型 |
方法二:
1 | #加载预训练模型 |
第二种方式更简单一些,1.0版本里面可以直接add模型,2.0版本里面没有响应的api接口了。所以需要重新生成一个模型对象。