如何在 Flux.jl 中冻结图层参数
How to freeze layer parameters in Flux.jl
我目前正在处理一个迁移学习问题,所以我想冻结我的大部分层,这样就不会重新训练模型,并且只修改最后一层的权重。我如何选择使用 Flux.jl 冻结哪些图层?
Flux 提供了一个简单的接口来执行此操作,只需将要修改的层传递给 Flux.params()
函数,如下所示:
m = Chain(
Dense(784, 64, relu),
Dense(64, 64, relu),
Dense(32, 10)
)
ps = Flux.params(m[3:end])
在上面的示例中,我们选择仅更新最后的 Dense
层(这通常是您在迁移学习示例中所做的)。
您可以在有关迁移学习的 Flux.jl 教程中看到包含更多内容的完整示例:https://fluxml.ai/tutorials/2020/10/18/transfer-learning.html
我目前正在处理一个迁移学习问题,所以我想冻结我的大部分层,这样就不会重新训练模型,并且只修改最后一层的权重。我如何选择使用 Flux.jl 冻结哪些图层?
Flux 提供了一个简单的接口来执行此操作,只需将要修改的层传递给 Flux.params()
函数,如下所示:
m = Chain(
Dense(784, 64, relu),
Dense(64, 64, relu),
Dense(32, 10)
)
ps = Flux.params(m[3:end])
在上面的示例中,我们选择仅更新最后的 Dense
层(这通常是您在迁移学习示例中所做的)。
您可以在有关迁移学习的 Flux.jl 教程中看到包含更多内容的完整示例:https://fluxml.ai/tutorials/2020/10/18/transfer-learning.html