训练过程中遇到的问题将会一一记录
内存不断增长导致killed
首先检查代码逻辑有无问题,比如有没有出现不断增长的复杂数据结构,比如list,array,dict等等。
torch新老代码不兼容
比如在老版本的torch中,将tensor从gpu转到cpu是这样的
tensor.data.cpu().numpy()
但是在新版本中是
tensor.cpu().detach().numpy()
老版本中让tensor不受梯度的影响
tensor = Variable(tensor.cuda(), volatile=True)
新版本中,用以下代码将不受影响的元素包围
with torch.no_grad()
num_worker和pin_memmory的影响
num_worker变大,内存占用也会变大。但是具体的影响尚未深究。