Pytorch 一旦使用了张量,我们能改变它的内容吗?

Pytorch 一旦使用了张量,我们能改变它的内容吗?,pytorch,Pytorch,我想知道,在将张量发送到pytorch中的损失函数后,是否允许我们更改张量的内容。例如: x = torch.zeros(1000) y = torch.zeros(1000) output = net(x) loss = criterion(oytput, y) loss.backward() optimizer.step() y[0] = 990 output[0] = 1000 完成此操作后,是否可以更改y和output的内容而不产生不良影响?例如: x = torch.zeros(

我想知道,在将张量发送到pytorch中的损失函数后,是否允许我们更改张量的内容。例如:

x = torch.zeros(1000)
y = torch.zeros(1000)
output = net(x)

loss = criterion(oytput, y)
loss.backward()
optimizer.step()
y[0] = 990
output[0] = 1000
完成此操作后,是否可以更改
y
output
的内容而不产生不良影响?例如:

x = torch.zeros(1000)
y = torch.zeros(1000)
output = net(x)

loss = criterion(oytput, y)
loss.backward()
optimizer.step()
y[0] = 990
output[0] = 1000
在我做了一个小批量之后,但是继续用更多的小批量喂养它,这会导致问题吗


我不太确定,因为可能节点仍然由计算图在内部引用

我认为这里不会有副作用。调用backward()后,图形实际上不存在。如果更改张量的内容,它将影响新图形,但不会影响以前的结果。此外,输出将被语句
output=net(x)
覆盖。那么,设置
output[0]=1000
有什么意义呢?我在想,也许
pytorch
在内部保存了一些变量的引用,无意中更改它们会导致意外的影响。请注意,
backward
确实有
retain\u graph
create\u graph
选项,启用这些选项后,更改变量可能会产生影响。