Sto cercando di formare un DNN modello utilizzando pytorch, e voglio usare la GPU per addestrare il mio modello. Io sono in grado di copiare correttamente il mio modello per la GPU utilizzando model.to(device)
dove device = cuda:0
.
Tuttavia, i metodi standard per la copia di input per la GPU, (RuntimeError: tipo di Ingresso (torcia.FloatTensor) e tipo di peso (torcia.cuda.FloatTensor) dovrebbe essere la stessa), che è, X.to(device)
e X.cuda()
non mi da l'output desiderato. Di seguito è il metodo che sto attuando:
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)
Su la stampa il valore del dispositivo print(device)
mostra: cuda:0
. Ma quando ho eseguito print(X.is_cuda)
restituisce false
. (Screenshot allegato di seguito).
Per favore fatemi sapere dove sto andando male. Grazie!