Совместное использование параметров в разных nn.Moules в pytorch - PullRequest
3 голосов
/ 12 марта 2020

У меня есть модель, которую вы можете увидеть ниже, но мне нужно создать два экземпляра с общими значениями x2h и h2h. Кто-нибудь знает как это сделать?

class RNN(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(RNN, self).__init__()

        self.hidden_size = hidden_size
        self.x2h = nn.Linear(input_size, hidden_size)
        self.h2h = nn.Linear(hidden_size, hidden_size)
        self.h2o = nn.Linear(hidden_size, output_size)

        #self.softmax = nn.LogSoftmax(dim=1)
        self.softmax = nn.Softmax(dim=1)

    def forward(self, input, hidden):

        hidden1 = self.x2h(input)
        hidden2 = self.h2h(hidden)
        hidden = hidden1 + hidden2
        output = self.h2o(hidden)
        output = self.softmax(output)

        return output, hidden

    def initHidden(self):
        return torch.zeros(1, self.hidden_size)

1 Ответ

1 голос
/ 13 марта 2020

Это вопрос Python, который я принимаю.

Переменные, объявленные внутри класса, а не внутри метода, являются переменными класса или состояния c.

Ссылка: https://radek.io/2011/07/21/static-variables-and-methods-in-python/

...