gpt4 book ai didi

python - PyTorch 线性代数梯度

转载 作者:太空狗 更新时间:2023-10-29 21:57:57 25 4
gpt4 key购买 nike

我希望通过奇异值分解反向传播梯度以实现正则化。 PyTorch 目前不支持通过奇异值分解进行反向传播。

我知道我可以编写自己的自定义函数来对变量进行操作;获取它的 .data 张量,将 torch.svd 应用于它,将一个变量包裹在它的奇异值周围并在正向传递中返回它,并在反向传递中将适当的雅可比矩阵应用于传入的梯度。

但是,我想知道是否有更优雅(并且可能更快)的解决方案,我可以直接覆盖“Type Variable doesn't implement stateless method svd”错误,调用 Lapack 等?

如果有人可以指导我完成我需要查看的适当步骤和源文件,我将不胜感激。我想这些步骤同样适用于目前没有相关反向方法的其他线性代数运算。

最佳答案

torch.svd 具有前向和后向传递的功能现在可在 Pytorch master 中使用:

http://pytorch.org/docs/master/torch.html#torch.svd

您需要从源代码安装 Pytorch: https://github.com/pytorch/pytorch/#from-source

关于python - PyTorch 线性代数梯度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44829420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com