为什么通过克隆删除张量对象属性?
Why tensor object attributes are removed by cloning?
我正在尝试在 pytorch 中克隆一个张量,并且还想克隆张量属性。这是一个例子:
import torch
from torch import nn
a = nn.Parameter(torch.rand(1))
a.adapt = True # define tensor attribute
b = a.clone() # clone
在上面的例子中,我想print(b.adapt)
到returnTrue
;但是,我收到以下错误:
Traceback (most recent call last):
File "scratch.py", line 13, in <module>
print(b.adapt)
AttributeError: 'Tensor' object has no attribute 'adapt'
我想知道为什么通过克隆删除张量对象属性以及如何解决这个问题。
函数 torch.Tensor.clone
执行张量数据的副本,而不是 Python 对象的副本。这就是 a
的 adapt 属性在 b
上不可用的原因。此外,它将在新创建的张量上保持相同的 grad_fn
:
我正在尝试在 pytorch 中克隆一个张量,并且还想克隆张量属性。这是一个例子:
import torch
from torch import nn
a = nn.Parameter(torch.rand(1))
a.adapt = True # define tensor attribute
b = a.clone() # clone
在上面的例子中,我想print(b.adapt)
到returnTrue
;但是,我收到以下错误:
Traceback (most recent call last): File "scratch.py", line 13, in <module> print(b.adapt) AttributeError: 'Tensor' object has no attribute 'adapt'
我想知道为什么通过克隆删除张量对象属性以及如何解决这个问题。
函数 torch.Tensor.clone
执行张量数据的副本,而不是 Python 对象的副本。这就是 a
的 adapt 属性在 b
上不可用的原因。此外,它将在新创建的张量上保持相同的 grad_fn
: