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

Метод reshape_as

Метод reshape_as изменяет форму исходного тензора, используя форму другого тензора в качестве образца. Метод принимает один параметр - тензор, чья форма будет использована для изменения формы текущего тензора. Общее количество элементов в тензоре должно совпадать с общим количеством элементов в тензоре-образце. Метод возвращает новый тензор с изменённой формой, при этом исходный тензор остаётся неизменным. В отличие от метода view, метод reshape_as может создавать копию данных, если тензор не является непрерывным в памяти.

Синтаксис

tensor.reshape_as(other)

Пример

Давайте изменим форму одномерного тензора из пяти элементов в форму двумерного тензора размером 2x3 (при этом один элемент будет лишним, поэтому возьмём тензор из шести элементов):

import torch t = torch.tensor([1, 2, 3, 4, 5, 6]) other = torch.zeros(2, 3) res = t.reshape_as(other) print(res)

Результат выполнения кода:

tensor([ [1, 2, 3], [4, 5, 6], ])

Пример

Давайте изменим форму двумерного тензора размером 2x3 в форму трёхмерного тензора размером 2x1x3:

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], ]) other = torch.zeros(2, 1, 3) res = t.reshape_as(other) print(res)

Результат выполнения кода:

tensor([ [ [1, 2, 3], ], [ [4, 5, 6], ], ])

Пример

Давайте изменим форму тензора из шести элементов в форму одномерного тензора с помощью тензора-образца размером 6:

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], ]) other = torch.zeros(6) res = t.reshape_as(other) print(res)

Результат выполнения кода:

tensor([1, 2, 3, 4, 5, 6])

Пример

Давайте попробуем изменить форму тензора из шести элементов в форму тензора размером 2x4, что невозможно, так как общее количество элементов не совпадает:

import torch t = torch.tensor([1, 2, 3, 4, 5, 6]) other = torch.zeros(2, 4) res = t.reshape_as(other) print(res)

Результат выполнения кода:

RuntimeError: shape '[2, 4]' is invalid for input of size 6

Смотрите также

  • метод reshape,
    который изменяет форму тензора на указанную
  • метод view,
    который изменяет форму тензора без копирования данных
  • метод view_as,
    который изменяет форму тензора по образцу без копирования данных
  • метод flatten,
    который преобразует тензор в одномерный
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить