RuntimeError: Ожидается тензор типа torch.FloatTensor, но найден тип torch.IntTensor для элемента последовательности - PullRequest
0 голосов
/ 28 января 2019

Я хочу сгенерировать какое-нибудь случайное число с помощью python и преобразовать его в тензор с помощью pytorch.Вот мой код для генерации случайного числа и преобразования его в тензор.

import numpy as np
import torch

P = np.random.uniform(0.5, 1, size=[20, 1])
k = np.random.randint(1, 20, size=[20, 1])
d_k = np.random.uniform(0, np.sqrt(80000), size=[20, 1])

P = torch.from_numpy(P).float()
k = torch.from_numpy(k).int()
d_k = torch.from_numpy(d_k).float()

torch.cat((P, k, d_k), dim=-1)

После этого я получил ошибку, которая показала:

RuntimeError: Expected a Tensor of type torch.FloatTensor but found a type torch.IntTensor for sequence element 1 in sequence argument at position #1 'tensors'

1 Ответ

0 голосов
/ 28 января 2019

Ошибка заключается в том, что тензор k имеет тип dtype torch.int32, а другие тензоры P и d_k имеют тип dtype torch.float32.Но операция cat требует, чтобы все входные тензоры были одного типа.Из документации

torch.cat (тензоры, dim = 0, out = нет) → Тензор

тензоры (последовательность тензоров) - любая последовательность питонатензоров одного типа.

Одним из решений является преобразование k в float dtype следующим образом:

k = torch.from_numpy(k).float()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...