Python pytorch中.data的用途是什么

Python pytorch中.data的用途是什么,python,generative-adversarial-network,Python,Generative Adversarial Network,我刚从spectrum.py文件中得到代码。部分代码在下面。我真的不明白.data的用途是什么,这是某个类中的方法吗?如果是,它属于哪一类 import torch from torch.optim.optimizer import Optimizer, required from torch.autograd import Variable import torch.nn.functional as F from torch import nn from torch import Tensor

我刚从spectrum.py文件中得到代码。部分代码在下面。我真的不明白.data的用途是什么,这是某个类中的方法吗?如果是,它属于哪一类

import torch
from torch.optim.optimizer import Optimizer, required
from torch.autograd import Variable
import torch.nn.functional as F
from torch import nn
from torch import Tensor
from torch.nn import Parameter

def l2normalize(v, eps=1e-12):
    return v / (v.norm() + eps)


class SpectralNorm(nn.Module):

    def _make_params(self):
        w = getattr(self.module, self.name)

        height = w.data.shape[0]
        width = w.view(height, -1).data.shape[1]

        u = Parameter(w.data.new(height).normal_(0, 1), requires_grad=False)
        v = Parameter(w.data.new(width).normal_(0, 1), requires_grad=False)
        u.data = l2normalize(u.data)
        v.data = l2normalize(v.data)
        w_bar = Parameter(w.data)

好的,所以SpectralNorm.\uuuuu init\uuuuuuu设置self.module=module和self.name=name默认值:权重,这是一个构造函数参数。这似乎被称为so SpectralNormann.Conv2d3,conv_dim,4,2,1,所以模块是一个实例,它是子类-根据我们最终找到的

。数据是w的一个属性,它是我们不知道的一个实例,因为getattrself.module,self.name可以是任何东西。作为猜测,w.data是一个numpy数组,因为它有一个.shape属性,它是一个元组!我刚刚检查了numpy文档,它说numpy.ndarray.data表示指向数组数据开头的Python缓冲区对象。数据实际上是一个张量对象。