.data在pytorch中有什么用

时间:2018-07-05 15:29:14

标签: python generative-adversarial-network

我刚从https://github.com/heykeetae/Self-Attention-GAN获得了代码(文件为spectral.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)

1 个答案:

答案 0 :(得分:-1)

好的,因此SpectralNorm.__init__设置了self.module = moduleself.name = name(默认值:weight),这是一个构造函数参数。这似乎像SpectralNorm(nn.Conv2d(3, conv_dim, 4, 2, 1)))这样来命名,所以module是一个nn.Conv2d子类的nn.Module实例-在trail之后,我们终于找到了{{3} }