os.makedirs

os.makedirs(path, exist_ok=False)

该语句可以建立用于迭代建立文件夹。exist_ok为bool值。当path不存在时,则会根据path迭代(划重点)的建立文件夹。当path存在时,若exist_ok为True时,则什么都不做,若为False,则会报文件夹已存在的错误。该语句可以很方便地替代以下语句:

if not os.path.exists(path):
os.mkdir(path)

Pytorch手动释放显存

最近遇到一个问题,用pytorch跑一个 不固定输入的模型inference,一张图片一张图片的测试。有两张图片分辨率相同,都是4032×3024,但是前一张图片可以跑,到后一张图片就报cuda out of memory的错误。原因是对于固定输入,pytorch会复用显存。而对于不固定输入的模型,pytorch存在显存释放不及时的问题,导致一直增长。解决方法是在每次inference后,手动释放显存


torch.cuda.empty_cache()

加上该语句之后就可以正常运行了