显存没有吃满,降低batch无法解决这个问题,应该和显存没关系
但是降低输入图片resize的尺寸就可以了
报错后程序不工作,等多久都没用,但是还在运行,显存也处于高度占用的情况,就好像突然按了暂停一样。
报错代码如下,给了个半精度训练的函数调用?
--Call--
> /home/eta/anaconda3/envs/PY1.8/lib/python3.9/site-packages/torch/cuda/amp/autocast_mode.py(130)__exit__()
-> def __exit__(self, *args):
(Pdb) --KeyboardInterrupt--
非常感谢
看下你的参数设置是什么样子的,比如多大的img_size和batch_size会出现这个问题,显存总共多少G,你训练的时候花了多少叫没吃满。
还有一些时候是用opencv加载数据的话也会出现和pytorch互锁的情况,这种需要设置多线程来加载,也就是你的代码里面的DataLoader 是否设置了num worker,设置的大一些,或者直接改成0不使用多线程加载看看
另外一种就是多显卡训练,但是你的batch size小于多显卡的个数,导致无法正确分配数据流也会卡住。
看图片里的报错是进入了Pdb调试环境,相当于停在了那个断点,程序没有继续执行,你可以直接退出;而且这个报错是你执行了Ctrl-C吧,看不出代码的错误