当前位置:网站首页>迁移学习冻结网络的方法:
迁移学习冻结网络的方法:
2022-08-01 10:59:00 【Wsyoneself】
说明:pytorch(1-3),TensorFlow(4)
fine tune就是冻结网络前面的层,然后训练最后一层
- 给优化器传入所有参数,但将要冻结层的参数的
requires_grad置为False:optimizer = optim.SGD(model.parameters(), lr=1e-2) # 传入的是所有的参数 for name, param in model.named_parameters(): if 要冻结的网络层的名字(即name的值): param.requires_grad = False - 优化器传入不冻结的网络层的参数:
optimizer = optim.SGD(model.不冻结的网络层的name.parameters(), lr=1e-2) # 优化器只传入fc2的参数 - 最优做法是:优化器只传入requires_grad=True的参数,占用的内存会更小一点,效率也会更高。代码及结合1和2
节省显存:不将不更新的参数传入
optimizer提升速度:将不更新的参数的
requires_grad设置为False,节省了计算这部分参数梯度的时间
- 代码如下:
#定义优化算子 optimizer = tf.train.AdamOptimizer( 1e-3) #选择待优化的参数 output_vars = tf.get_collection(tf.GraphKyes.TRAINABLE_VARIABLES, scope= 'outpt') train_step = optimizer.minimize(loss_score,var_list = output_vars)
把需要更新梯度的层放在tf.get_collection这个函数里面,不需要更新的不放进去。
边栏推荐
- 一篇文章,带你详细了解华为认证体系证书(2)
- .NET analyzes the LINQ framework in depth (three: the elegant prelude of LINQ)
- 2022年7月31日--使用C#迈出第一步--使用C#中的数组和foreach语句来存储和循环访问数据序列
- Promise学习(一)Promise是什么?怎么用?回调地狱怎么解决?
- 一篇文章,带你详细了解华为认证体系证书(1)
- 基于ArkUI eTS开发的坚果食谱(NutRecipes)
- C#/VB.NET 将PPT或PPTX转换为图像
- 【likeshop】回收租凭系统100%开源无加密 商城+回收+租赁
- Google Earth Engine——给影像添加一个属性对于单景的时间序列并返回影像
- IntellJ IDEA如何显示换行符(line endings)
猜你喜欢
随机推荐
将本地项目推送到远程仓库
解决new Thread().Start导致高并发CPU 100%的问题
Mysql索引相关的知识复盘一
Promise学习(一)Promise是什么?怎么用?回调地狱怎么解决?
DBPack SQL Tracing 功能及数据加密功能详解
监视网络连接的ss命令
这是我见过写得最烂的Controller层代码,没有之一!
RK3399 platform development series on introduction to (kernel) 1.52, printk function analysis - the function call will be closed
【云驻共创】分布式技术之华为云全域调度技术与实践
shell--第九章练习
Promise学习(二)一篇文章带你快速了解Promise中的常用API
我是如何保护 70000 ETH 并赢得 600 万漏洞赏金的
DBPack SQL Tracing 功能及数据加密功能详解
Promise学习(三)Promise的几个关键性问题 -- 状态改变、执行顺序与机制、多任务串联、异常穿透、中断promise链
正则表达式
jmeter
Cross-domain network resource file download
使用KeyStore生成证书
利用正则表达式的回溯实现绕过
July 31, 2022 -- Take your first steps with C# -- Use C# to create readable code with conventions, spaces, and comments








