Yolov5 线程问题 Tcl_AsyncDelete: async handler deleted by the wrong thread

加入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 #

具体原因有空再研究~

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值