如題:
在使用深度學習框架時如果同時也在使用opencv那么有一些設置是需要設定的,第一個就是在python代碼中設定禁止使用opencl:
cv2.ocl.setUseOpenCL(False)
opencl和cuda的基本功能一致:
opencl和cuda當年是作為同等定位的軟件產品的,但是后來由於amd公司在這個領域上的落敗已經很少見到opencl的產品了,而基本所有的深度學習框架都是基於cuda的,但是opencv卻默認支持opencl的,如果一個應用中同時使用cuda和opencl就有可能造成一點的錯誤。在使用cuda的前提下為避免產生未知錯誤最好禁用opencl。
在pytorh中如果在數據集讀取加載過程中使用opencv可能由於opencv的自動多線程可能會與pytorch的多進程dataloader造成互鎖因此我們也往往需要將opencv的多線程設置關閉:
同樣是在python文件中添加設置語句:
cv2.setNumThreads(0)
總的來說,在使用深度學習框架的時候如果同時使用opencv最好進行下面的設置:
在python文件最初的地方添加設置語句:
cv2.setNumThreads(0)
cv2.ocl.setUseOpenCL(False)
=============================================
參考:
https://www.cnblogs.com/yqs-0705/archive/2018/12/15/10122988.html
https://www.e-learn.cn/topic/3316419
https://zhuanlan.zhihu.com/p/377013846