微调
所谓微调: 冻结模型库的底部的卷积层,
共同训练新添加的分类器层和顶部部分卷积层。
这允许我们“微调”基础模型中的高阶特征表示,以使它们
与特定任务更相关。
只有分类器已经训练好了,才能微调卷积基的顶部卷积层。如果有没有这样的话,刚开始的训练误差很大,微调之前这些卷积层学到的表示会被破坏掉
微调步骤
一、在预训练卷积基上添加自定义层
二、冻结卷积基所有层
三、训练添加的分类层
四、解冻卷积基的一部分层
在1.0版本基础上添加
covn_base.trainable = True
len(covn_base.layers)
fine_tune_at = -3
for layer in covn_base.layers[:fine_tune_at]:
layer.trainable = False
model.compile(optimizer=keras.optimizers.Adam(lr=0.0005/10),
loss='binary_crossentropy',
metrics=['acc'])
initial_epochs = 12
fine_tune_epochs = 10
total_epochs = initial_epochs + fine_tune_epochs
history = model.fit_generator(
train_generator,
steps_per_epoch=100,
epochs=total_epochs,
initial_epoch=initial_epochs,
validation_data=test_generator,
validation_steps=50)
本文介绍了深度学习中微调的概念,即在预训练模型的基础上,通过冻结底层卷积层,仅训练新添加的分类层和部分顶层卷积层,以适应特定任务。微调有助于调整基础模型的高阶特征表示。步骤包括添加自定义层,冻结卷积基,训练分类层,然后逐步解冻并微调卷积层。整个过程通过设置学习率和训练周期进行优化,以提高模型在新任务上的性能。

1339

被折叠的 条评论
为什么被折叠?



