Документ GR PyTorch (https://pytorch.org/docs/stable/nn.html#gru) говорит, что форма для переменной weight_ih_l[k]
равна 3*hidden_size x input_size
независимо от слоя.
Однако, когда я распечатывал форму каждого веса с помощью
gru = nn.GRU(...)
for name, p in gru.named_parameters():
print(name,p.shape)
с hidden_size=2
, input_size=1
, num_layers=3
и bidirectional=True
, я получаю (6,1)
только для weight_ih_l0
и получаю (6,4)
для weight_ih_l1
и l2
,который, кажется, предполагает, что форма для weight_ih
равна 3 * hidden_size * (hidden_size*num_directions)
для layer > 0
.
Это ошибка документации? Или в GRU есть что-то, чего я не понимаю?