PyTorch中的自动记录力学 – 1

Autograd力学

本说明将显示autograd如何运行和记录任务的K线走势图。看到这一点并不重要,但我们建议您熟悉它,因为它可以让您逐步构建有效,清洁的程序,并可以帮助您进行故障排除。

反过来禁止子图

每个Tensor都有一个标题:requires_grad,它考虑从斜率计算中细粒度地禁止子图,并可以扩展有效性。

  • requires_grad

如果对一项需要倾向的活动有单独贡献,那么它的产量同样需要斜率。然后,如果所有数据源都不需要角度,则产量同样不需要它。反向计算从不在子图中执行,其中所有张量都不需要斜率。

>>> x = torch.randn(5,5)#requires_grad = False当然

>>> y = torch.randn(5,5)#requires_grad = False当然

>>> z = torch.randn((5,5),requires_grad = True)

>>> a = x + y

>>> a.requires_grad

>>> b = a + z

>>> b.requires_grad

真正

当你需要停止模型的某些部分,或者你提前知道你不打算使用角度w.r.t时,这尤其有用。一些参数。例如,如果您需要对预训练的CNN进行微调,则在固化基础中切换requires_grad信号就足够了,并且不会中间任何中间支架,直到计算到达最后一层,相对变化将利用负载需要倾斜的,系统的产量同样需要它们。

model = torchvision.models.resnet18(pretrained = True)

for model.parameters()中的param:

param.requires_grad =假

#替换最后一个完全关联的图层

#最近构建的模块的参数当然是requires_grad = True

model.fc = nn.Linear(512,100)

#优化分类器

enhancer = optim.SGD(model.fc.parameters(),lr = 1e-2,momentum = 0.9)

资讯来源:由0x资讯编译自NVESTLABS。版权归作者Anusha所有,未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢