加入SE模块后就会报错,不加SE模块没问题,不知道为啥。。。
最简单的解决方案是dataloader的num_worker参数设为0,但是加载数据会慢很多
以下是正确的解决方案:
https://blog.csdn.net/qq_39560620/article/details/105734243
原因:
一开始我以为是多线程的问题,后来才发现是matplotlib.pyplot
造成的问题。matplotlib.pyplot
在运行的时候,是需要在主线程(Main Thread)上运行的,然而,我在使用多线程的时候,将使用matplotlib.pyplot
的函数用在了子线程里面。之后也在matplotlib
的官方FAQ找到了相应的原因,如下图:
utils/general.py中,导入matplotlib包的部分进行修改
import matplotlib
#import matplotlib.pyplot as plt
matplotlib.use('Agg') #
from matplotlib import pyplot as plt #
具体原因有空再研究~