pytorch固定部分网络参数

Posted ohelloolleho

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch固定部分网络参数相关的知识,希望对你有一定的参考价值。

方法1:

net :

block1 = sequence

block2 = …………

在train代码中,指定完lossfunction后,

loss_func = nn.Cro……

(事先打印你的net , 得到你想要固定的部分的name , 我这里是一个block有多步操作,所以使用正则)

for name , parameter in model.named_parametes():

        if fnmatch(name , "block1*"):

                parameter.requires_grad = False

                print(name , "has freezed.")

#之所以用正则,是因为我将所有需要固定的卷积放在block1中, 所以name为block1.1.weight , block1.2.…………

此外还有方法二在网络定义使用 with_no_grad参数,此处不再赘述。

以上是关于pytorch固定部分网络参数的主要内容,如果未能解决你的问题,请参考以下文章

Pytorch冻结部分层的参数

-pytorch实现深度神经网络与训练

[深度学习][pytorch]pytorch实现一个简单得线性回归模型并训练

Pytorch的参数“batch_first”的理解

Pytorch实现网络部分层的固定不进行回传更新

Pytorch实现网络部分层的固定不进行回传更新