IndexError: тензоры, используемые в качестве индексов, должны быть длинными, байтовыми или булевыми тензорами - PullRequest
0 голосов
/ 26 марта 2020

Я получаю эту ошибку только на этапе тестирования, но у меня не возникает проблем на этапе обучения и проверки.

IndexError: tensors used as indices must be long, byte or bool tensors

Я получаю эту ошибку для последней строки в данном фрагменте кода .

Фрагмент кода выглядит как приведенный ниже,

NumClass = 10
mask = torch.zeros(batch_size, self.mem_dim, 4, 4)
ones = torch.ones(1, 4, 4)
NumRows = self.mem_dim
Elements = NumRows//NumClass
for i in range(batch_size):
    lab = torch.arange(Elements * label[i], Elements*(label[i]+1), 1)
    mask[i,lab] = ones

"Лаборатория" - это тензорное значение, которое выводит диапазон таким образом,

tensor([6, 7, 8])
tensor([ 9, 10, 11])
tensor([21, 22, 23])

(Примечание *: длина этого лабораторного тензора может иметь длину 'n' в зависимости от значения ElementsPerClass)

...