Pytorch 什么是';需要梯度';在Pytork中做什么?我应该使用它吗?

Pytorch 什么是';需要梯度';在Pytork中做什么?我应该使用它吗?,pytorch,Pytorch,我有一个网络,我需要添加我自己的参数,我想培训。我用它来添加这个,但是有一个“Requires Grad”的论点,我真的无法理解阅读文档时我希望这是真是假。我将此设置为true是有意义的,因为我希望此参数作为学习过程的一部分进行优化——但对此参数的需要让我困惑:如果False意味着它没有作为训练过程的一部分进行优化,那么为什么要使用nn.parameter()而不仅仅使用法线张量 从文档中,我看到它将参数添加到您从模型中获得的可说出的参数列表中,但我不明白如果您没有对其进行优化,为什么您会想要它

我有一个网络,我需要添加我自己的参数,我想培训。我用它来添加这个,但是有一个“Requires Grad”的论点,我真的无法理解阅读文档时我希望这是真是假。我将此设置为true是有意义的,因为我希望此参数作为学习过程的一部分进行优化——但对此参数的需要让我困惑:如果False意味着它没有作为训练过程的一部分进行优化,那么为什么要使用nn.parameter()而不仅仅使用法线张量


从文档中,我看到它将参数添加到您从模型中获得的可说出的参数列表中,但我不明白如果您没有对其进行优化,为什么您会想要它。

据我所知,有时,您可能需要冻结/解冻神经网络的某些部分,并避免/让某些参数在训练期间进行优化。“requires_grad”参数提供了在反向传播阶段包含或排除网络参数的简单方法。就我所知,有时你可能需要冻结/解冻神经网络的某些部分,并避免/让某些参数在训练期间进行优化。“requires_grad”参数提供了在反向传播阶段包含或排除网络参数的简单方法。您只需将其设置为True或False,就完成了。

好的,这是有意义的(不确定您希望在什么情况下这样做,但理论上是有意义的)。我想我需要将我的设置为True,以便对其进行优化。假设您希望以以下特定方式训练GAN:首先在鉴别器冻结的情况下训练发电机,然后在发电机冻结的情况下训练鉴别器。当你进行训练时,你可以在这些模式之间切换。这将是一个在现实世界中这样做的例子。好吧,这是有意义的(不确定什么时候你会想这样做,但理论上是有意义的)。我想我需要将我的设置为True,以便对其进行优化。假设您希望以以下特定方式训练GAN:首先在鉴别器冻结的情况下训练发电机,然后在发电机冻结的情况下训练鉴别器。当你进行训练时,你可以在这些模式之间切换。这将是一个在现实世界中这样做的例子。