关于自动求导的问题,示例常数因变量求导不等于0?

2.5. 自动微分 — 动手学深度学习 2.0.0 documentation (d2l.ai)
在这
自变量是这样定义的

import torch

x = torch.arange(4.0)

后面y是这样定义的

x.grad.zero_()
y = x.sum()
y.backward()
x.grad

把y和x.grad打印出来

y:  tensor(6., grad_fn=<SumBackward0>)
x.grad:  tensor([1., 1., 1., 1.])

这是怎么回事?既然y已经用x的sum方法返回了一个常数标量,那么y关于任何变量的梯度不都应该是0吗?为什么因变量没有任何变化,梯度都不为零呢?这不符合数学定义啊。y这里的数值已经定死了,扩展出来就是(6,6,6,6),x的数值也定死了(1,2,3,4)
dy/dx0=(6-6)/(1-0)=0,这不是0吗…