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

Метод expand_as

Метод expand_as расширяет тензор до формы, заданной другим тензором. Возвращается новый тензор, который разделяет данные с исходным. Метод работает только для размерностей, где исходный размер равен 1. Для остальных размерностей форма должна совпадать. Метод не копирует данные, что делает его эффективным с точки зрения памяти.

Синтаксис

tensor.expand_as(other_tensor)

Пример

Давайте расширим одномерный тензор до формы двумерного тензора:

import torch t = torch.tensor([1, 2, 3]) other = torch.tensor([[0, 0, 0], [0, 0, 0]]) res = t.expand_as(other) print(res)

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

tensor([ [1, 2, 3], [1, 2, 3], ])

Исходный тензор t имеет форму (3,), другой тензор other имеет форму (2, 3). Метод расширяет первый тензор до формы второго.

Пример

Расширение одномерного тензора до формы трёхмерного тензора с размерами 2 x 3 x 4:

import torch t = torch.tensor([1, 2, 3, 4]) other = torch.zeros(2, 3, 4) res = t.expand_as(other) print(res.shape) print(res)

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

torch.Size([2, 3, 4]) tensor([ [ [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], ], [ [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], ], ])

Пример

Метод expand_as работает только когда расширяемая размерность равна 1. Рассмотрим ошибочный случай:

import torch t = torch.tensor([[1, 2], [3, 4]]) other = torch.zeros(3, 2) res = t.expand_as(other)

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

RuntimeError: The expanded size of the tensor (3) must match the existing size (2)

Ошибка возникает, потому что первая размерность исходного тензора равна 2, а мы пытаемся расширить её до 3.

Пример

Расширение одномерного тензора до формы четырёхмерного тензора:

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

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

torch.Size([2, 3, 4, 2])

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

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