簡體   English   中英

如何轉換我的python代碼以在GPU而不是CPU上運行?

[英]How to convert my python code to run on GPU instead of CPU?

給了我一個python代碼,該代碼接受兩個圖像作為輸入,並使用Gabor濾鏡查找兩個圖像RGB的相關性並將其保存在一個csv文件中。 因此,我需要使用GPU執行該程序,因為這需要大量時間和CPU利用率。 我有GeForce GTX 1050 Ti,並且是編程的完整入門者。

我進行了一些研究,並了解了CUDA和Tensorflow,但我真的不確定如何繼續實施它,以及在不更改大量代碼的情況下實現它的最佳方法是什么。

#Gabor Filter
def build_filters():
    filters = []
    #tesing phrase filter - reduce
    for ksize in range(9, 19, 5):
        for theta in np.arange(45, 225, 45):
            for sigma in range(2,6,2):
                kern = cv2.getGaborKernel((ksize, ksize), sigma, theta, 5.0, 0.5, 0, ktype=cv2.CV_32F)
                kern /= 1.5*kern.sum()
                filters.append(kern)
    return filters

#Apply filter into the image
def process(images, f):
    accum = np.zeros_like(images)
    for kern in f:
        fimg = cv2.filter2D(images, cv2.CV_8UC3, kern)
        np.maximum(accum, fimg, accum)
    return accum

完整代碼: https : //gitlab.com/t.tansuwan/image_diff_kce/blob/master/allPixelNoCrop.py

謝謝!

Numba可以將一小部分Python轉換為。

您將要使用conda軟件包管理器安裝numba和cudatoolkit: conda install numba cudatoolkit 然后可以添加@jit(nopython=True, parallel=True)

我不確定Numba是否可以與OpenCV一起使用,但是您可以嘗試。 Python並不真正適合高性能計算,您最好學習FORTRAN,着色器語言或C並在其中實現計算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM