julia - 如何在 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
推荐阅读
- python-3.x - 如何使用 tika 解析器配置 google vision api
- terraform - Terraform (A)lb 重定向 http -> https
- javascript - 用酶和 Jest 测试 React:不变违规:目标容器不是 DOM 元素
- java - Android 每次运行时都会在服务器/数据库上保存日志以获取崩溃报告?
- spring-boot - Spring Boot - SSL 设置(./well-known/pki-validation)
- c++ - C++ 中的纯 ABC 是否需要是虚拟的?
- spring - 实施从登录的 jhipster 用户获取数据的方法时出现“无法解析符号”错误
- arm - 难以在具有 Mini PCIe 总线的 Spartan 6 FPGA 和 ARM-cortex A9(IMX6 架构)之间建立通信
- sql-server - Issue while adding values in SQL Server
- javascript - 取消选中复选框需要重新加载搜索项