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

Память на цепочке в PyTorch

Рекуррентный слой LSTM принимает на вход последовательность векторов и на каждом шаге обновляет внутреннюю память. При создании задают размер входного вектора и размер скрытого слоя.

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

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

Длина цепочки на выходе совпадает с длиной на входе. В последней оси вместо исходного размера вектора стоит размер скрытого слоя.

Вызов возвращает пару: выход по шагам и второй элемент - состояние памяти. Разбор состояния вынесен в отдельный урок; здесь достаточно формы выходной последовательности.

import torch import torch.nn as nn layer = nn.LSTM(6, 10) sequence = torch.randn(3, 2, 6) output, _ = layer(sequence) print(output.shape) # выведет torch.Size([3, 2, 10])

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

Возьмите входной размер 9 и скрытый 5. Пропустите через слой тензор 4 на 3 на 9 из случайных чисел и выведите форму результата.

Опишите блок с вектором длиной 11 и внутренним размером 8. Подайте две цепочки по 7 шагов и выведите форму выходной последовательности.

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