【问题标题】:Freezing certain filters in pre-trained model, Tensorflow在预训练模型 Tensorflow 中冻结某些过滤器
【发布时间】:2022-02-11 23:20:03
【问题描述】:

是否可以加载预训练模型,例如 ResNet152,然后冻结特定层中的某些权重并微调这些特定层中的其他权重?例如:

比如说,冻结特定卷积层中 50% 的过滤器,然后微调同一特定卷积层中剩余的 50%?

我似乎想不出一个可靠的方法来实现这一点。我想也许两次加载预训练模型,冻结一个并允许另一个微调,但是我需要从两个分支中删除过滤器。

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    您可以使用layer.trainable = False(在 Tensorflow 或 Keras 中)冻结图层。在你训练你的网络并想要对其进行微调之后。您可以使用以下方法来冻结您的一些权重:

    for layer in model.layers[:5]: # freeze first 5 layers 
        layer.trainable = False
    

    Docpage

    【讨论】:

    • 对不起,我的意思是,将权重冻结在一层内。例如,从包含 32 个过滤器的卷积层冻结 16 个过滤器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 2019-12-02
    • 2019-01-29
    相关资源
    最近更新 更多