【发布时间】:2022-02-11 23:20:03
【问题描述】:
是否可以加载预训练模型,例如 ResNet152,然后冻结特定层中的某些权重并微调这些特定层中的其他权重?例如:
比如说,冻结特定卷积层中 50% 的过滤器,然后微调同一特定卷积层中剩余的 50%?
我似乎想不出一个可靠的方法来实现这一点。我想也许两次加载预训练模型,冻结一个并允许另一个微调,但是我需要从两个分支中删除过滤器。
【问题讨论】:
标签: tensorflow
是否可以加载预训练模型,例如 ResNet152,然后冻结特定层中的某些权重并微调这些特定层中的其他权重?例如:
比如说,冻结特定卷积层中 50% 的过滤器,然后微调同一特定卷积层中剩余的 50%?
我似乎想不出一个可靠的方法来实现这一点。我想也许两次加载预训练模型,冻结一个并允许另一个微调,但是我需要从两个分支中删除过滤器。
【问题讨论】:
标签: tensorflow
您可以使用layer.trainable = False(在 Tensorflow 或 Keras 中)冻结图层。在你训练你的网络并想要对其进行微调之后。您可以使用以下方法来冻结您的一些权重:
for layer in model.layers[:5]: # freeze first 5 layers
layer.trainable = False
【讨论】: