如何在PyTorch中使用autograd.grad签入?
文档中不包括gradcheck的任何示例用例,它在哪里有用?文档中提供了一个示例用例: 您可能需要检查您实现的反向方法 实际计算函数的导数。这是可能的 与小有限元数值近似的比较 差异:如何在PyTorch中使用autograd.grad签入?,pytorch,autograd,Pytorch,Autograd,文档中不包括gradcheck的任何示例用例,它在哪里有用?文档中提供了一个示例用例: 您可能需要检查您实现的反向方法 实际计算函数的导数。这是可能的 与小有限元数值近似的比较 差异: 来自torch.autograd导入梯度检查 #gradcheck将一个张量元组作为输入,检查梯度 #用这些张量计算的结果与数值结果足够接近 #近似值,如果它们都验证了此条件,则返回True。 输入=(torch.randn(20,20,dtype=torch.double,需要_grad=True),torc
来自torch.autograd导入梯度检查
#gradcheck将一个张量元组作为输入,检查梯度
#用这些张量计算的结果与数值结果足够接近
#近似值,如果它们都验证了此条件,则返回True。
输入=(torch.randn(20,20,dtype=torch.double,需要_grad=True),torch.randn(30,20,dtype=torch.double,需要_grad=True))
测试=梯度检查(线性,输入,eps=1e-6,atol=1e-4)
打印(测试)
如上所述,gradcheck
函数的目的是验证自定义后向函数是否与梯度的数值近似值一致。主要用例是在实现自定义向后操作时在极少数情况下,您应该在PyTorch中实现自己的后退功能。这是因为PyTorch的autograd功能负责计算绝大多数操作的梯度
最明显的例外是
gradcheck函数中的第一个参数指的是什么?线性层?如何将它与我编写的自定义函数一起使用?可以找到
gradcheck
的文档。第一个参数是一个函数,它接受一个张量(大小和类型与input
)并返回一个张量或张量元组。