版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
在训练时,常遇到RuntimeError错误,提示Memory或者RAM不足,甚至受到buy an new RAM的嘲笑!记录一下所遭遇的报错的原因和解决办法,希望对大家有所帮助,也欢迎大家在评论区补充和纠正。
【Q】DataLoader 函数num_workers 设置过大,线程过多,过多占用Cpu,导致报错memory不足。
【A】改小num_workers 即可, 参考值4 ,8 。
【Q】DataLoader 函数batch_size设置过大,过多占用Gpu,导致爆显存。
【A】改小batch_size即可, 参考值1,4 ,8 ,16。
【Q】运行时间过长,缓存过多导致内存或者显存溢出。
【A】清除缓存,事实上在pytorch机制中是会自动清除缓存的,但是人工清除有时也有用,代码如下:
try: main() # the code may result error except RuntimeError as exception: if "memory" in str(exception): print("WARNING: out of memory") if hasattr(torch.cuda, 'empty_cache'): torch.cuda.empty_cache() else: raise exception
【Q】网络结构设计不合理,或者部分网络参数过大,计算量过大。
【A】查看是不是代码实现网络时候出现纰漏,本人就在设计池化层时,将加法写成了乘法,导致参数陡增,训练时爆显存。可以适当修改网络结构,减少参数,训练速度也会快些。
收藏
一键三连
扫一扫,分享海报
1:第一步键盘上同时按“win+R”键打开运行,在运行输入框中输入“regedit”,如下图所示。点击确定2:进去注册表之后,找到“HKEY_LOCAL_MACHINE/SOFTWARE/microsoft/Windows/CurrentVersion/Run”3:点击“Run”之后,在右侧中找到“runtime”的错误信息,然后将它删除就完成了,不会对电脑系统有影响4:也可以按“Ctrl+F”键...
今天做了一个界面,想到模型预测占据大量的运算,会对界面造成影响,很可能会造成界面卡死。所以另外新开一个进程去预测图片,又考虑到如果在子进程中加载模型,那么每次预测图片都需要进行加载模型这个过程,太浪费时间,于是考虑在主进程中开一个线程加载模型,然后通过管道来讲模型传递到子进程中,然后,代码运行起来后,报错了 ,如下: cudaruntimeerror (801) : operation not supported at C:\w\b\windows\pytorch\torch/csrc/generic/
image.png ANR(App Not Responding)基本上99%的App都有,即使是系统,也有system_anr,我相信虽然ANR问题这样的普遍,还是有很多人对ANR问题即熟悉又陌生的,ANR中log信息怎么看?发生的场景有哪些?广播会发生ANR吗?我的App啥事都没有干怎么发生了ANR了等等一些问题,今天通过三个案例总结一下ANR问题分析的一般套路,以做备忘。 一、ANR初步了解 1、发生原因 一句话总结:没有在规定的时间内,干完要干的事情,就会发生ANR。 2、AN...