Я пытаюсь обучить модель DNN с помощью pytorch, и я хочу использовать графический процессор для обучения своей модели. Я могу успешно скопировать свою модель на графический процессор, используя model.to(device)
, где device = cuda:0
.
Однако стандартные методы копирования входных данных на графический процессор (ошибка выполнения: Тип ввода (факел.Поплавковый) и тип веса (факел.cuda.FloatTensor) должен быть таким же), то есть, X.to(device)
и X.cuda()
не дает мне желаемого результата. Ниже приведен метод, который я в настоящее время внедряю:
def train_loop(self, dataloader, device):
size = len(dataloader.dataset)
for batch, (X, y) in enumerate(dataloader):
# Compute prediction and loss
print(device)
X.to(device)
print(X.is_cuda)
y.to(device)
pred = self.model(X)
loss = self.loss_fn(pred, y)
При печати значения устройства print(device)
это показывает, как: cuda:0
. Но когда я бегу print(X.is_cuda)
он возвращается false
. (Скриншот прилагается ниже).
Пожалуйста, дайте мне знать, где я ошибаюсь. Спасибо!