M3D 测试脚本内存问题
昨晚在测试M3D的时候,服务器的94GB内存全被占满,今天来调试发现问题就是这两行代码
q_pids.extend(pids)
q_camids.extend(camids)
不知道原因是什么,改为
pids = pids.numpy().astype(np.int16)
camids = camids.numpy().astype(np.int16)
g_pids.append(pids)
g_camids.append(camids)
就可以正常运行了。
CUDA 显存
测试的是Video-Person-ReID,models是里面的模型,在模型计算之后,要将model(img)等号左边的变量删除,才会释放内存,否则下次计算的时候就会出现CUDA显存不足
import torch
import models
import time
img1=torch.randn(64,4,3,224,112).cuda()
img2=torch.randn(20,4,3,224,112).cuda()
imgs=[img1, img2]
qf=[]
for i,img in enumerate(imgs):
    model = models.init_model(name='resnet50tp', num_classes=625, loss={'xent', 'htri'}).cuda()
    model.eval()
    f = model(img)
    f = f.view(img.size()[0], -1)
    f = torch.mean(f, 0)
    f = f.data.cpu()
    qf.append(f)
    del f  # 释放f的内存空间
    #torch.cuda.empty_cache()
    print(torch.cuda.memory_allocated())
评论
发表评论