मुझे एक पायथन कोड दिया गया था जो दो छवियों को इनपुट के रूप में लेता है और दो छवियों के आरजीबी के सहसंबंध को खोजने के लिए गैबर फ़िल्टर का उपयोग करता है और इसे एक सीएसवी फ़ाइल में सहेजता है। इसलिए मुझे 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

शुक्रिया!

3
Soundeaf 11 सितंबर 2019, 17:35
1
 – 
nacho
11 सितंबर 2019, 17:38
मैंने इसे देखा लेकिन मैं वास्तव में अनिश्चित हूं कि सीयूडीए के साथ समांतरता के लिए फ़ंक्शन को कैसे संशोधित किया जाए।
 – 
Soundeaf
11 सितंबर 2019, 17:47
क्या आपने कपी पर एक नज़र डाली?
 – 
Someone
11 सितंबर 2019, 19:45

1 उत्तर

Numba पायथन के एक छोटे उप-सेट को .

आप कोंडा पैकेज मैनेजर के साथ numba और cudatoolkit इंस्टॉल करना चाहेंगे: conda install numba cudatoolkit। फिर आप @jit(nopython=True, parallel=True) जोड़ सकते हैं

मुझे यकीन नहीं है कि ओपनसीवी के साथ नुंबा का उपयोग किया जा सकता है, लेकिन आप निश्चित रूप से कोशिश कर सकते हैं। पाइथन वास्तव में उच्च-प्रदर्शन गणना के लिए उपयुक्त नहीं है, आप फोरट्रान, एक शेडर भाषा, या सी सीखने और उसमें अपनी गणना लागू करने से बेहतर हैं।

1
noɥʇʎԀʎzɐɹƆ 12 सितंबर 2019, 03:04