pytorch常用功能代码汇总

统计网络参数量
# 所有参数量
p_all = sum([torch.numel(param) for param in model.parameters()])
# 需进行梯度更新的参数量
p_require_grad = sum([torch.numel(param) for param in model.parameters() if param.requires_grad])
统计optimizer中参数量
sum([torch.numel(param) for param in optimizer.param_groups[0]['params'] if param.requires_grad])	# 这里只考虑只有一组param
冻结网络部分参数

冻结:

for param in model.parameters():	# 设置对应的参数requires_grad = False
	param.requires_grad = False
optimizer = optim.Adam(filter(lambda p: p.requires_grad, model.parameters()), lr, [beta1, beta2])	# 在optimizer中传入需要更新梯度的参数

解冻:

for param in model.parameters():	# 设置对应的参数requires_grad = True
	param.requires_grad = True
optimizer = optim.Adam(model.parameters(), lr, [beta1, beta2])	# 在optimizer中传入模型的参数
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值