使用TensorFlow、Pytorch等深度學習框架時如何設置對OpenCV的使用


如題:

在使用深度學習框架時如果同時也在使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM