РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pytoSpSqHd 67 of 82 menu
◀ ▶

Память ячейки в PyTorch

После прогона цепочки слой LSTM возвращает выход по каждому шагу и пару тензоров состояния. Первый из них - скрытый вектор, второй - ячейка памяти. Оба несут сводку прочитанного текста.

Создадим слой, подадим короткую последовательность и выведем формы скрытого вектора и ячейки:

import torch import torch.nn as nn layer = nn.LSTM(input_size=8, hidden_size=16) sequence = torch.randn(3, 1, 8) _, (hidden, cell) = layer(sequence) print(hidden.shape) # выведет torch.Size([1, 1, 16]) print(cell.shape) # выведет torch.Size([1, 1, 16])

Первая ось отвечает за число слоёв в стопке, вторая - за размер пакета, третья - за размер скрытого слоя.

Начальное состояние можно задать вручную парой тензоров той же формы. Передадим нули и снова выведем формы после прохода:

import torch import torch.nn as nn layer = nn.LSTM(6, 10) sequence = torch.randn(2, 2, 6) h0 = torch.zeros(1, 2, 10) c0 = torch.zeros(1, 2, 10) _, (hidden, cell) = layer(sequence, (h0, c0)) print(hidden.shape) # выведет torch.Size([1, 2, 10]) print(cell.shape) # выведет torch.Size([1, 2, 10])

Соберите рекуррентный блок с входом 5 и внутренним размером 8. Подайте цепочку 4 шагов и выведите формы обоих тензоров состояния.

Возьмите блок с 7 на входе и 6 внутри. Задайте начальные нули для пакета из 3 примеров, прогоните 5 шагов и выведите форму скрытого вектора на выходе.

Опишите слой с размером вектора 4 и памятью 9. Подайте две цепочки по 6 шагов и выведите форму ячейки после последнего шага.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить