Sto cercando di utilizzare Python e Numpy/Scipy per implementare un algoritmo di elaborazione delle immagini. Il profiler mi dice un sacco di tempo viene speso nella seguente funzione (chiamata spesso), che mi dice che la somma delle differenze tra due immagini quadratiSomma delle differenze quadrate (SSD) in numpy/scipy
def ssd(A,B):
s = 0
for i in range(3):
s += sum(pow(A[:,:,i] - B[:,:,i],2))
return s
Come posso accelerare questo? Grazie.
Bang. Sto passando una giornata lenta. Dimezza il mio tempo di esecuzione. –
Vale la pena notare che per questo si dovrà usare 'numpy.sum', non la' somma' incorporata, che troverà la somma sulla prima dimensione e restituirà una nuova matrice di una dimensione inferiore. –
((A-B) ** 2) .sum (-1) Se si desidera aggiungere solo l'ultimo asse, è necessario specificare l'argomento dell'asse. Basta usare sum() per aggiungere tutte le voci dell'array (ravelled first) – user333700