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

Метод index_fill_

Метод index_fill_ класса Tensor заполняет элементы тензора переданным значением по указанным индексам вдоль определённого измерения. В отличие от index_fill, метод с символом подчёркивания на конце изменяет исходный тензор на месте и не создаёт новый. Первым параметром метод принимает номер измерения, вторым - тензор с индексами, третьим - значение для заполнения.

Синтаксис

t.index_fill_(dim, index, value)

Пример

Давайте создадим одномерный тензор и заполним элементы с индексами 1 и 3 значением 99:

import torch t = torch.tensor([10, 20, 30, 40, 50]) indices = torch.tensor([1, 3]) t.index_fill_(0, indices, 99) print(t)

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

tensor([10, 99, 30, 99, 50])

Пример

Заполним строки двумерного тензора по индексам 0 и 2 значением -1 вдоль измерения 0:

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], ]) indices = torch.tensor([0, 2]) t.index_fill_(0, indices, -1) print(t)

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

tensor([ [-1, -1, -1], [4, 5, 6], [-1, -1, -1], [10, 11, 12], ])

Пример

Теперь заполним столбцы двумерного тензора по индексам 1 и 2 значением 0 вдоль измерения 1:

import torch t = torch.tensor([ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], ]) indices = torch.tensor([1, 2]) t.index_fill_(1, indices, 0) print(t)

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

tensor([ [1, 0, 0, 4], [5, 0, 0, 8], [9, 0, 0, 12], ])

Пример

Метод поддерживает работу с многомерными тензорами. Заполним элементы по индексам вдоль измерения 1 в трёхмерном тензоре:

import torch t = torch.tensor([ [ [1, 2], [3, 4], [5, 6], ], [ [7, 8], [9, 10], [11, 12], ], ]) indices = torch.tensor([0, 2]) t.index_fill_(1, indices, 99) print(t)

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

tensor([ [ [99, 99], [3, 4], [99, 99], ], [ [99, 99], [9, 10], [99, 99], ], ])

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

  • метод scatter_,
    который записывает значения в тензор по индексам
  • метод masked_fill_,
    который заполняет элементы по маске
  • метод index_select,
    который выбирает элементы по индексам
  • метод fill_,
    который заполняет все элементы тензора одним значением
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить