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

Непрерывная память тензора в PyTorch

После перестановки осей элементы часто лежат в памяти с шагом между соседними ячейками. Метод view ожидает сплошной порядок, поэтому прямой вид после transpose обычно недоступен.

Метод contiguous при необходимости создаёт копию с непрерывной памятью; если порядок уже сплошной, возвращается тот же тензор. Создадим таблицу, поменяем оси местами, выровняем память и зададим вид:

import torch grid = torch.tensor([[1, 2, 3], [4, 5, 6]]) swapped = grid.transpose(0, 1) aligned = swapped.contiguous() flat = aligned.view(6) print(flat) # выведет tensor([1, 4, 2, 5, 3, 6])

Без шага contiguous вызов view на переставленном тензоре завершится ошибкой: память не совпадает с запрошенной формой. Рабочий порядок - перестановка, затем выравнивание, затем вид.

Соберите таблицу 2 на 4 из последовательных целых, начиная с 1, поменяйте местами ряды и столбцы и выведите один ряд из восьми чисел в порядке чтения по столбцам исходной таблицы.

Создайте таблицу из рядов [1, 2] и [3, 4], транспонируйте её, подготовьте память к сплошному порядку и выведите длину получившегося ряда после свёртки в одну ось.

Создайте таблицу 3 на 2 с любыми целыми, переставьте оси 0 и 1, затем сверните в ряд из 6 чисел и выведите первое и последнее число ряда.

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