tensorflow2加载模型并修改模型

def reload_output_layer(model):
    #model为加载的模型
    new_model = keras.Sequential()
    #获取模型最后一层
    old_output_layer = model.layers[-1]
    #获取最后一层配置文件
    old_config = old_output_layer.get_config()
    new_config = old_config
    #我这里是将激活函数从softmax改为linear
    new_config['activation'] = 'linear'
    #新建一个和原模型中最后一层一样的层(参数以及各种配置)
    new_layer = old_output_layer
    #将新配置应用到新层,不过此时参数什么的会被清空,所以需要在下面重新赋值
    new_layer = new_layer.from_config(new_config)
    for layer in model.layers[:-1]:
        new_model.add(layer)
    new_model.add(new_layer)
    #重新赋值参数,如果没有之前的步骤,直接设置参数会提示权重数量不匹配
    new_layer.set_weights(old_output_layer.get_weights())
    new_layer.get_config()
    new_model.layers
    old_output_layer.get_config()
    new_layer.weights
    #返回新模型
    return new_model

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值