Я использую двунаправленный LSTM с batch_first=True
. Тем не менее, это вызывает у меня ошибку в отношении размеров.
**Error:
Expected hidden[0] size (6, 5, 40), got (5, 6, 40)**
Когда я проверил исходный код, произошла ошибка из-за функции ниже
if is_input_packed:
mini_batch = int(batch_sizes[0])
else:
mini_batch = input.size(0) if self.batch_first else input.size(1)
num_directions = 2 if self.bidirectional else 1
expected_hidden_size = (self.num_layers * num_directions,
mini_batch, self.hidden_size)
def check_hidden_size(hx, expected_hidden_size, msg='Expected hidden size {}, got {}'):
if tuple(hx.size()) != expected_hidden_size:
raise RuntimeError(msg.format(expected_hidden_size, tuple(hx.size())))
По умолчанию expected_hidden_size
записывается относительно последовательности в первую очередь. Я считаю, что это вызывает проблему. Может кто-нибудь посоветовать, если я прав и проблему нужно исправить?