Разница между параметром и тензором в PyTorch - PullRequest
0 голосов
/ 21 июня 2019

Хотелось бы узнать разницу между параметром PyTorch и Tensor?

Существующий ответ предназначен для старого PyTorch, где используются переменные?

1 Ответ

0 голосов
/ 21 июня 2019

Это вся идея класса Parameter (прилагается) в одном изображении.

enter image description here

, так как он подклассифицирован изTensor это Тензор.

Но тут есть хитрость.Параметры, которые находятся внутри модуля, добавляются в список параметров модуля.Если m - это ваш модуль, m.parameters() будет содержать ваш параметр.

Вот пример:

class M(nn.Module):
    def __init__(self):
        super().__init__()
        self.weights = nn.Parameter(torch.randn(2, 2))
        self.bias = nn.Parameter(torch.zeros(2))

    def forward(self, x):
        return x @ self.weights + self.bias

m=M()
m.parameters()
list(m.parameters())

---

[Parameter containing:
 tensor([[ 0.5527,  0.7096],
         [-0.2345, -1.2346]], requires_grad=True), Parameter containing:
 tensor([0., 0.], requires_grad=True)]

Вы видите, как параметры будут показывать то, что мы определили.И если мы просто добавим тензор внутри класса, например self.t = Tensor, он не будет отображаться в списке параметров.Это буквально это.Ничего особенного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...