darknet-ocr
darknet-ocr copied to clipboard
跑的过程经常遇到:cuda.c:36: check_error: Assertion `0' failed.
python3: ./src/cuda.c:36: check_error: Assertion `0' failed. 在Ubuntu上部署了服务,长时间运行后,经常出现这个错误,有人遇到过吗? 显存不足?(部署在阿里云GPU服务器上)
难倒是多线程调用导致的? 我是在后台程序直接POST请求的。
应该是高并发显存不足导致的,加了一个semaphone来限制并发,可以了。
并发要改为异步的方式
并发要改为异步的方式 是修改darknet c代码还是在python中修改? 我测试了多次,目前的代码并发也是可以调用的,但是并发高的话显存更容易不足,所以才加了请求队列。 但是目前也还是偶尔会崩溃,所以暂时性又做了一个守护程序定时检测。 如有更好方案还望不吝赐教。
C或者python修改都可以,python性能有一些损失,用C会更好一些。python的话,就用nginx+uwsgi的方式,修改的地方很少。要性能更好,把文字检测和识别进行拆分,识别环节并行。
我也有这个问题,请问具体是改了哪儿?
我也有这个问题,请问具体是改了哪儿?
改成单线程也是偶尔会崩溃,可以探讨下(QQ 1815691977)
ocr.py 里有outW = int(np.ceil(w/4)-3),这也是网络输出特征的outW,如果输入小于13,则输出特征图的宽为0,会报错;所以把84行 if w<8: 改为 w<13即可。