На самом деле документация действительно ясно показывает их различия. Скрытый размер - это количество признаков скрытого состояния для RNN. Поэтому, если вы увеличиваете скрытый размер, вы вычисляете более крупную функцию как вывод скрытого состояния.
Однако num_layers - это всего лишь несколько единиц RNN, которые содержат скрытые состояния с заданным скрытым размером.
num_layers = 2 будет означать объединение двух RNN вместе, чтобы сформировать составную RNN, при этом вторая RNN принимает выходные данные первой RNN и вычисляет окончательные результаты
Я хочу объяснить, как RNN работает с изображением ниже. Каждый блок RNN (синие прямоугольники) принимает один h_n (скрытое состояние) и один вход. Скрытый размер определяет размер вектора признаков h_n (скрытое состояние). На каждом временном шаге (t, горизонтальное распространение изображения) ваш rnn будет принимать h_n и вводить. Затем, если у вас n_layers> 1, он создаст промежуточный вывод и передаст его на верхний уровень (вертикальный). Таким образом, скрытый размер определяет размер горизонтального h_n в изображении, тогда как num_layers определяет количество синих ячеек по вертикальной оси изображения.
RNN