Нет абсолютно никакой причины для пользовательской инициализации скрытых состояний в нули ; это на самом деле дело :
def forward(self, input, hx=None):
...
if hx is None:
num_directions = 2 if self.bidirectional else 1
hx = torch.zeros(self.num_layers * num_directions,
max_batch_size, self.hidden_size,
dtype=input.dtype, device=input.device)
else:
# Each batch of the hidden state should match the input sequence that
# the user believes he/she is passing in.
hx = self.permute_hidden(hx, sorted_indices)
Сначала проверяется, переданы ли какие-либо пользовательские скрытые значения состояний, , если вы этого не сделали, он инициализирует его нулями .
Кроме того, обычно, теоретически, не необходимо инициализировать скрытые состояния модели в режиме тестирования (случайным образом или с использованием предварительно определенных значений).