Насколько я знаю, это невозможно без некоторого l oop или понимания списка.
Ниже приведены некоторые альтернативы, которые могут быть полезны в зависимости от вашего варианта использования. В частности, если вы хотите повторно использовать одни и те же start_indices
и end_indices
для нескольких назначений или если у вас есть только одно присвоение на месте для tensor
, то следующие решения будут полезны.
Если вместо start_indices
и end_indices
вам будет предоставлен список индексов, например
row_indices = torch.cat([torch.arange(s, e, dtype=torch.int64) for s, e in zip(start_indices, end_indices)])
, тогда это будет возможно при использовании
tensor[row_indices, :] = 0
Или, если вам дали маску
mask = torch.zeros(tensor.shape, dtype=torch.bool, device=tensor.device)
for s, e in zip(start_indices, end_indices):
mask[s:e, :] = True
, это было бы возможно с помощью
tensor[mask] = 0