M3D 测试脚本内存问题

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())

评论

此博客中的热门博文

使用ssh反向代理+shadowsocks实现内网穿透

shadowsocks中转

ubuntu 16.04 reboot命令慢的原因