pytorch要让两个tensor相加,使用的权重相加和为1,这两个权重,如果手动用代码调试的话,可能需要很多次才能找到最佳权重,然后就找了一下权重配置自学习的代码,稍微修改了一下,感觉能满足自己需求了,代码如下:
输出结果如下:
tensor([[0.6457, 0.3543]], grad_fn=<SoftmaxBackward0>) tensor([0.6457], grad_fn=<SelectBackward0>) tensor([0.3543], grad_fn=<SelectBackward0>)
0
tensor([[0.6461, 0.3539]], grad_fn=<SoftmaxBackward0>) tensor([0.6461], grad_fn=<SelectBackward0>) tensor([0.3539], grad_fn=<SelectBackward0>)
1
tensor([[0.6464, 0.3536]], grad_fn=<SoftmaxBackward0>) tensor([0.6464], grad_fn=<SelectBackward0>) tensor([0.3536], grad_fn=<SelectBackward0>)
2
tensor([[0.6464, 0.3536]], grad_fn=<SoftmaxBackward0>) tensor([0.6464], grad_fn=<SelectBackward0>) tensor([0.3536], grad_fn=<SelectBackward0>)
3
tensor([[0.6466, 0.3534]], grad_fn=<SoftmaxBackward0>) tensor([0.6466], grad_fn=<SelectBackward0>) tensor([0.3534], grad_fn=<SelectBackward0>)
4
tensor([[0.6468, 0.3532]]) tensor([0.6468]) tensor([0.3532])
Test output: tensor([[ 0.0491],
[-0.4962],
[ 0.0250],
[-0.1889],
[-0.6193],
[-0.5427],
[ 0.1463],
[ 1.1827],
[ 0.7400],
[-0.4070]])
Learned weights: Parameter containing:
tensor([[0.8024, 0.1976]], requires_grad=True)
可以看到参数值得到了更新