Der Speicher steigt in der Pytorch -Trainingsschleife auch mit leere_cache ().

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Der Speicher steigt in der Pytorch -Trainingsschleife auch mit leere_cache ().

by Anonymous » 25 Feb 2025, 11:04

Ich habe ein Pytorch-Trainingsskript und ich erhalte einen außerem-memory-Fehler, nachdem ein paar Epochen sogar THO TOMEN nenne. Die GPU -Erinnerung steigt einfach weiter und ich kann nicht herausfinden, warum. < /P>
Hier ist im Grunde das, was ich tue:

Code: Select all

import torch
from torch.utils.data import Dataset, DataLoader
import numpy as np

class CustomDataset(Dataset):
def __init__(self, data_paths):
self.data_paths = data_paths

def __len__(self):
return len(self.data_paths)

def __getitem__(self, idx):
image = np.load(self.data_paths[idx]['image']).astype(np.float32)
label = np.load(self.data_paths[idx]['label']).astype(np.int64)

image = torch.tensor(image).cuda()
label = torch.tensor(label).cuda()

return image, label

data_paths = [{'image': f'img_{i}.npy', 'label': f'label_{i}.npy'} for i in range(10000)]
dataset = CustomDataset(data_paths)
dataloader = DataLoader(dataset, batch_size=32, num_workers=4, pin_memory=True)

for epoch in range(10):
for batch in dataloader:
images, labels = batch

output = images.mean()
loss = output.sum()
loss.backward()

del images, labels, loss, output
torch.cuda.empty_cache()
Auch nachdem alles gelöscht und leer_cache () aufgerufen wird, steigt das VRAM einfach weiter und ich verstehe nicht, warum. Dies passiert nicht auf der CPU. Wenn ich Nvidia-smi ausführe, nimmt die Speicherverwendung nach jeder Charge zu, bis sie abstürzt. Rufen Sie Del auf allem nach jeder Stapel
[*] Einstellen num_workers = 0 (nicht geholfen)
[*] Verwenden von .detach () Bevor Sie die Tensoren in GPU
[*] überprüft haben, ob das Problem in meinem Modell ist, aber auch ohne das Modell das Laden der Daten bereits den Speicher erhöht

hat jemand das schon einmal gesehen? Gibt es etwas über Dataloader und CUDA () , das dies verursachen könnte?
würde Ideen schätzen. Ich habe keine Dinge, um es zu versuchen,

Top