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

Метод repeat

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

Синтаксис

tensor.repeat(*sizes)

Пример

Давайте повторим одномерный тензор два раза вдоль единственной оси:

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

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

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

Пример

Давайте повторим одномерный тензор два раза по вертикали и три раза по горизонтали, сделав его двумерным:

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

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

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

Пример

Давайте повторим двумерный тензор два раза по строкам и три раза по столбцам:

import torch t = torch.tensor([ [1, 2], [3, 4], ]) res = t.repeat(2, 3) print(res)

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

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

Пример

Давайте повторим трёхмерный тензор вдоль каждой оси с разными коэффициентами:

import torch t = torch.tensor([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], ]) res = t.repeat(1, 2, 3) print(res)

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

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

Пример

Давайте используем метод repeat для создания блочной матрицы из одной строки:

import torch t = torch.tensor([1, 2, 3]) res = t.repeat(4, 1) print(res)

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

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

Пример

Давайте используем метод repeat для расширения тензора с сохранением одной оси без изменений:

import torch t = torch.tensor([ [1, 2], [3, 4], ]) res = t.repeat(1, 2) print(res)

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

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

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

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