Это логические или «маскирующие» индексные массивы, см. do c, чтобы узнать больше
>>> y = torch.arange(9).reshape(3,3)
>>> y
tensor([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> target = np.copy(y)
, поэтому target[y == l] = label
y == l
дают нам логический массив типа ( если l = 0
)
>>> y == 0
tensor([[ True, False, False],
[False, False, False],
[False, False, False]])
, и мы можем получить доступ и присвоить значение, используя логический массив y == 0
>>> target[y == 0]
array([0], dtype=int64)
>>> target[y == 0] = 999
>>> target
array([[999, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]], dtype=int64)