Как используется метод forward (), если в pytorch более двух входных параметров - PullRequest
1 голос
/ 29 февраля 2020

Может кто-нибудь сказать мне концепцию нескольких параметров в методе forward()? Как правило, реализация метода forward() имеет два параметра

  1. self
  2. input

, если метод forward имеет больше этих параметров, чем PyTorch используя метод forward.

Давайте рассмотрим эту кодовую базу: https://github.com/bamps53/kaggle-autonomous-driving2019/blob/master/models/centernet.py здесь онлайн 236 авторов использовали метод forward с еще двумя параметрами:

  1. центров
  2. return_embeddings

Я не могу найти ни одной статьи, которая могла бы ответить на мой запрос о том, какие условия будут выполняться в строке 254 (return_embeddings:) и строке 257 (if centers is not None:). Насколько мне известно, метод внутренне вызывается модулем nn. Может кто-нибудь, пожалуйста, поставить некоторые огни на это?

1 Ответ

0 голосов
/ 29 февраля 2020

Функция пересылки, установленная вами. Это означает, что вы можете добавить больше параметров, как вы хотите. Например, вы можете добавить входы, как показано ниже

def forward(self, input1, input2,input3):
    x = self.layer1(input1)
    y = self.layer2(input2)
    z = self.layer3(input3)

    net = torch.cat((x,y,z),1)

    return net

Вы должны контролировать свои параметры во время подачи в сеть. Слои не могут быть снабжены больше, чем параметром. Следовательно, вам нужно извлекать элементы из входных данных один за другим и объединять их с torch.cat((x,y),1) (1 для измерения).

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