keras_冻结网络特定层
使用keras进行网络模型训练,冻结一些网络层能提高做对比实验的效率。
- 查询网络层数、冻结位置
#doublebranch为网络模型
Modellxx = doublebranch(2,)
Modellxx.summary()
total = len(Modellxx.layers)
freeze = Modellxx.layers.index(Modellxx.get_layer("Freeze_position"))
其中:层名称通过model.summary()输出即可得到(示例)
2. 冻结指定层前的所有层数
#方法1
trainable_layer = 321
for i in range(trainable_layer):
model.layers[i].trainable = False
#方法2
for layer in model.layers[:-9]:#此处所需冻结位置为第321层,相较于总层数(329)为倒数第八层
layer.trainable = False