Come ottimizzare le operazioni di array Numpy multidimensionali con Numexpr |  di Peng Qian |  Ottobre 2023

 | Intelligenza-Artificiale

Un caso di studio reale sull’ottimizzazione delle prestazioni in Numpy

Come ottimizzare le operazioni di array Numpy multidimensionali con Numexpr.
Come ottimizzare le operazioni di array Numpy multidimensionali con Numexpr. Credito fotografico: creato dall’autore, Tela.

Questo è un articolo relativamente breve. In esso, utilizzerò uno scenario del mondo reale come esempio per spiegare come utilizzarlo Espressioni espressionenum in array Numpy multidimensionali per ottenere miglioramenti sostanziali delle prestazioni.

Non ci sono molti articoli che spiegano come utilizzare Numexpr negli array Numpy multidimensionali e come utilizzare le espressioni Numexpr, quindi spero che questo ti possa aiutare.

Recentemente, mentre rivedevo alcuni dei miei vecchi lavori, mi sono imbattuto in questo pezzo di codice:

def predict(X, w, b):
z = np.dot(X, w)
y_hat = sigmoid(z)
y_pred = np.zeros((y_hat.shape(0), 1))

for i in range(y_hat.shape(0)):
if y_hat(i, 0) < 0.5:
y_pred(i, 0) = 0
else:
y_pred(i, 0) = 1
return y_pred

Questo codice trasforma i risultati della previsione da probabilità in risultati di classificazione pari a 0 o 1 nel modello di regressione logistica dell’apprendimento automatico.

Ma cielo, chi userebbe a for loop ripetere su Numpy ndarray?

Puoi prevedere che quando i dati raggiungono una certa quantità, non solo occuperanno molta memoria, ma anche le prestazioni saranno inferiori.

Esatto, la persona che ha scritto questo codice ero io quando ero più giovane.

Con senso di responsabilità, oggi ho intenzione di riscrivere questo codice con la libreria Numexpr.

Lungo il percorso, ti mostrerò come utilizzare Numexpr e Numexpr where espressione in array Numpy multidimensionali per ottenere miglioramenti significativi delle prestazioni.

Se non hai familiarità con l’utilizzo di base di Numexpr, puoi fare riferimento a questo articolo:

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *