- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Pytorch 提供了一个 lstsq
函数,但它返回的结果与 numpy 的版本截然不同。这是一个示例输入及其两个结果:
import numpy as np
import torch
a = torch.tensor([[1., 1, 1],
[2, 3, 4],
[3, 5, 2],
[4, 2, 5],
[5, 4, 3]])
b = torch.tensor([[-10., -3],
[ 12, 14],
[ 14, 12],
[ 16, 16],
[ 18, 16]])
a1 = a.clone().numpy()
b1 = b.clone().numpy()
x, r = torch.lstsq(b, a)
x1, res, r1, s = np.linalg.lstsq(b1, a1)
print(f'torch_x: {x}')
print(f'torch_r: {r}\n')
print(f'np_x: {x1}')
print(f'np_res: {res}')
print(f'np_r1(rank): {r1}')
print(f'np_s: {s}')
输出:
torch_x: tensor([[ 2.0000, 1.0000],
[ 1.0000, 1.0000],
[ 1.0000, 2.0000],
[10.9635, 4.8501],
[ 8.9332, 5.2418]])
torch_r: tensor([[-7.4162, -6.7420, -6.7420],
[ 0.2376, -3.0896, 0.1471],
[ 0.3565, 0.5272, 3.0861],
[ 0.4753, -0.3952, -0.4312],
[ 0.5941, -0.1411, 0.2681]])
np_x: [[-0.11452514 -0.10474861 -0.28631285]
[ 0.35913807 0.33719075 0.54070234]]
np_res: [ 5.4269753 10.197526 1.4185953]
np_r1(rank): 2
np_s: [43.057705 5.199417]
我在这里缺少什么?
最佳答案
torch.lstq(a, b)
解决 minX L2∥bX−a∥
而 np.linalg.lstsq(a, b)
解决 minX L2∥aX−b∥
所以改变传递参数的顺序。
这是一个示例:
将 numpy 导入为 np
进口火炬
a = torch.tensor([[1., 1, 1],
[2, 3, 4],
[3, 5, 2],
[4, 2, 5],
[5, 4, 3]])
b = torch.tensor([[-10., -3],
[ 12, 14],
[ 14, 12],
[ 16, 16],
[ 18, 16]])
a1 = a.clone().numpy()
b1 = b.clone().numpy()
x, _ = torch.lstsq(a, b)
x1, res, r1, s = np.linalg.lstsq(b1, a1)
print(f'torch_x: {x[:b.shape[1]]}')
print(f'np_x: {x1}')
结果:
torch_x: tensor([[-0.1145, -0.1047, -0.2863],
[ 0.3591, 0.3372, 0.5407]])
np_x: [[-0.11452514 -0.10474861 -0.28631285]
[ 0.35913807 0.33719075 0.54070234]]
火炬链接
doc
rank
来自 numpy.lianalg.lstsq 是
第一个参数的排名 .要在 pytorch 中获得排名,请使用
torch.matrix_rank()
功能。
关于python - 为什么 torch.lstsq 的输出与 np.linalg.lstsq 截然不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63543236/
我有一个性别表单,第一个按钮如下所示 name=radio_43 第二个按钮显示如下: xpath=(//input[@name='radio_43'])[2] 为什么固定按钮名为 radio_43
我使用when.js作为 Mongoose 的 promise 库,并尝试获取不同的集合文件并返回结果作为 promise mongoose.Promise= require("when"); f
除了 Delta Manager 复制到所有 Tomcat 节点(即使在没有托管应用程序的节点上)并且在较小的集群中工作得更好以及 Backup Manager 仅复制到另一个 Tomcat 节点并在
Pytorch 提供了一个 lstsq函数,但它返回的结果与 numpy 的版本截然不同。这是一个示例输入及其两个结果: import numpy as np import torch a = tor
当有人发布的 jsperf 基准测试与我之前运行的几乎相同的基准测试冲突时,我遇到了一个非常有趣的问题。 Chrome 在这两行之间做了一些截然不同的事情: new Array(99999); //
我是一名优秀的程序员,十分优秀!