Pytorch kullanarak bir DNN modelini eğitmeye çalışıyorum ve modelimi eğitmek için GPU kullanmak istiyorum. Modelimi kullanarak GPU'ya başarıyla kopyalayabilirim model.to(device)
, nere device = cuda:0
.
Ancak, girişi GPU'ya kopyalamak için kullanılan standart yöntemler, (RuntimeError: Giriş türü (meşale.FloatTensor) ve ağırlık tipi (meşale.cuda.FloatTensor) aynı olmalıdır), yani, X.to(device)
ve X.cuda()
bana istenen çıktıyı vermiyor. Şu anda uyguladığım yöntem aşağıdadır:
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)
Aygıt değerini yazdırırken print(device)
olarak gösterir: cuda:0
. Ama kaçtığımda print(X.is_cuda)
geri dönüyor false
. (Ekran görüntüsü aşağıda eklenmiştir).
Lütfen nereye yanlış gittiğimi bana bildirin. Teşekkürler!