Уменьшите размер тензора, используя слой max-pooling - PullRequest
0 голосов
/ 14 апреля 2020

Мой вопрос очень прост:

Как мне уменьшить размерность списка или тензора, используя слой max-pooling, до 512 элементов в списке:

Я пытаюсь следующий код:

    input_ids = tokenizer.encode(question, text)
    print(input_ids) # input_ids is a list of 700 elements
    m = nn.AdaptiveMaxPool1d(512)
    input_ids = m(torch.tensor([[input_ids]])) # convert the list to tensor and apply max-pooling layer

Но я получаю следующую ошибку:

RuntimeError: "adaptive_max_pool2d_cpu" not implemented for 'Long'

Итак, пожалуйста, помогите выяснить, где ошибка

1 Ответ

0 голосов
/ 14 апреля 2020

Проблема с вашими input_ids. Вы передаете тензор типа long в AdaptiveMaxPool1d, просто конвертируйте его в число с плавающей точкой.

    input_ids = tokenizer.encode(question, text)
    print(input_ids) # input_ids is a list of 700 elements
    m = nn.AdaptiveMaxPool1d(512)
    input_ids = m(torch.tensor([[input_ids]]).float()) #
...