Pytork旋转矩阵

2024-04-25 22:24:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用pytorch和autograd做一个旋转矩阵,但结果不是它应该的那样

theta = tc.tensor([3.1415],requires_grad=True)
tx = tc.tensor([1.0],requires_grad=True)
ty = tc.tensor([1.0],requires_grad=True)

P = tc.tensor([[tc.cos(theta),-tc.sin(theta), tx],
               [tc.sin(theta), tc.cos(theta),ty], 
               [0.0,0.0,0.0]],requires_grad=True)

我想“学习”参数θ,tx,ty。运行之后,我得到一个类型为

 [-0.0506, -0.0973,  0.1012],
 [-0.0957,  0.1025, -0.0147],
 [ 0.0000,  0.0000,  0.0000]

这意味着它学习每个条目,而不是θ。我们应该有[0,0]=[1,1],[0,1]=-[1,0],而我们没有。如果我从矩阵中删除requires_grad=True,它将返回属性。 你知道如何制作一个简单的矩阵吗