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

Подстановка по маске в PyTorch

Готовую маску можно использовать, чтобы собрать новый тензор: в ячейке с True берётся одно значение, с False - другое. Для этого служит функция where с тремя аргументами: маска, значение при истине, значение при лжи.

Создадим ряд, построим маску «больше 3» и подставим нули в остальные ячейки:

import torch values = torch.tensor([1, 5, 3, 8]) mask = values > 3 result = torch.where(mask, values, torch.tensor(0)) print(result) # выведет tensor([0, 5, 0, 8])

Вместо нуля можно подставить любое число того же типа, что и исходный тензор:

import torch temps = torch.tensor([2.0, 7.0, 4.0]) result = torch.where(temps > 5, temps, torch.tensor(-1.0)) print(result) # выведет tensor([-1., 7., -1.])

Если при истине и при лжи передать разные тензоры одной формы, в каждой ячейке выберется элемент из нужного источника:

import torch base = torch.tensor([10, 20, 30]) extra = torch.tensor([1, 2, 3]) mask = base > 15 result = torch.where(mask, base, extra) print(result) # выведет tensor([ 1, 20, 30])

Создайте ряд из четырёх целых чисел и маску, где ячейка больше 5. Соберите новый ряд: там, где маска истинна, оставьте исходное число, иначе запишите -1, и выведите его.

Задайте ряд дробных температур и маску «выше 20». Соберите ряд, где в прохладных ячейках стоит 0.0, а в тёплых - исходное значение, и выведите результат.

Создайте два ряда одинаковой длины и маску равенства по позициям. Соберите ряд, где при совпадении берётся элемент первого ряда, иначе - второго, и выведите его.

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