keras 加载预训练模型权重和保存模型权重,以及迁移学习finetuning

本文介绍了如何在Keras中加载预训练的模型权重,如AlexNet, VGG16等,利用`load_weights`函数并设置`by_name=True`来匹配权重。同时,讲解了如何通过设置`model.trainable=True`允许加载的权重参与训练,并可以选择性地冻结部分层。此外,还探讨了使用Keras的`ModelCheckpoint`回调进行模型权重保存,以便于后续训练和预测。" 128618427,11872733,二进制补码表示下的1的个数,"['数据结构', '算法', 'c++']
摘要由CSDN通过智能技术生成
  1. keras 加载backbone网络训练权重
    一般神经网络的首次训练时,backbone网络一般采用成熟的特征提取网络,比如Alex net,VGG16,resnet,inception,densenet等,为了加速训练,可以直接加载这些backbone网络的训练权重进行训练,这些模型权重一般都在大型数据集中训练得到的,主要利用他们的强大的特征提取能力。透过keras的load_weights函数,透过by_name=True利用tensor name加载name相同的预训练权重,不同名的不加载。model.trainable = True,表示加载的权重都可以参与训练。可以根据需要冻结部分层参与训练。
model.load_weights(r'.\keras权重\resnet50_weights_tf_dim_ordering_tf_kernels.h5',
                   by_name=True)
model.trainable = True
  1. keras 保存模型权重
    经过多个epoch训练后,都要保存模型或者权重,方便后续训练及预测predict。
    利用kears的callbacks里面的ModelCheckpoint实现。
modelcheck = ModelCheckpoint('./unet_'+ label +'_20.h5', monitor='dice_coef', save_best_only=True, mode='max')

callable = [modelcheck]
H = model.fit_generator(generato
  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值