debian

Debian系统PyTorch内存占用高怎么办

小樊
37
2025-11-19 14:49:43
栏目: 智能运维

Debian下PyTorch内存占用高的排查与优化

一 快速定位占用来源

二 GPU显存优化

三 系统内存 RAM 优化

四 训练策略与并行优化

五 最小可用优化示例

import torch, gc
from torch.cuda.amp import autocast, GradScaler

model.train()
optimizer.zero_grad(set_to_none=True)
scaler = GradScaler()
accum_steps = 4

for i, (x, y) in enumerate(dataloader):
    x, y = x.cuda(), y.cuda()
    with autocast():
        out = model(x)
        loss = criterion(out, y) / accum_steps
    scaler.scale(loss).backward()

    if (i + 1) % accum_steps == 0:
        scaler.step(optimizer)
        scaler.update()
        optimizer.zero_grad(set_to_none=True)

    # 可选:阶段性清理
    if i % 100 == 0:
        del out, loss
        gc.collect()
        torch.cuda.empty_cache()
model.eval()
with torch.no_grad():
    for x in val_loader:
        x = x.cuda()
        out = model(x)
        # 处理 out
def print_mem():
    if torch.cuda.is_available():
        alloc = torch.cuda.memory_allocated() / 1024**3
        cached = torch.cuda.memory_reserved() / 1024**3
        print(f"GPU Allocated: {alloc:.2f} GB, Cached: {cached:.2f} GB")

0
看了该问题的人还看了