一、问题
在训练过程中,训练了几个epoch,后出现"RuntimeError: main thread is not in main loop"问题;
二、问题分析
在多卡训练的时候和某个子线程冲突,大概率是因为每个epoch结束都使用了matplotlib和sns等作图工具包, 相当于进入了另一个线程之中。在主线程main和作图的小线程来回,很容易线程出错。且随着训练过程,epoch越大,出错概率越大。
三、解决
把相应的作图工具代码注释就好了;
在训练过程中,训练了几个epoch,后出现"RuntimeError: main thread is not in main loop"问题;
在多卡训练的时候和某个子线程冲突,大概率是因为每个epoch结束都使用了matplotlib和sns等作图工具包, 相当于进入了另一个线程之中。在主线程main和作图的小线程来回,很容易线程出错。且随着训练过程,epoch越大,出错概率越大。
把相应的作图工具代码注释就好了;