Scikit-learn
SKTet, nome completo scikit-learn, è una libreria di machine learning in Python, costruita sulla base di pacchetti di data science come numpy, scipy e matplotlib, che copre quasi tutti gli aspetti del machine learning come dati campioni, preprocessing dati, verifica dei modelli, selezione delle caratteristiche, classificazione, regressione, clustering e riduzione della dimensionalità. A differenza dello stock di deep learning disponibile in vari framework come pytorch e TensorFlow, sklearn è la libreria preferita per il machine learning tradizionale in python, e non ci sono altri concorrenti.
Sito ufficiale:Il login del link ipertestuale è visibile. Fonte:Il login del link ipertestuale è visibile.
Estensione per Scikit-learn
Come framework classico di machine learning, scikit-learn si sviluppa da oltre dieci anni dalla sua nascita, ma la sua velocità di calcolo è stata ampiamente criticata dagli utenti. L'estensione per Scikit-learn è un acceleratore software gratuito di intelligenza artificiale progettato per aiutartiIl codice Scikit-learn esistente offre accelerazioni da 10 a 100 volte più veloci。 L'accelerazione software si ottiene tramite istruzioni vettoriali, ottimizzazione della memoria per hardware AI, threading e ottimizzazione.
Con l'estensione Scikit-learn, puoi:
- Addestramento e inferenza sono cento volte più veloci con la stessa precisione matematica
- Beneficia di miglioramenti delle prestazioni su diverse configurazioni hardware CPU, incluse configurazioni GPU e multi-GPU
- Integra le estensioni nelle tue applicazioni Scikit-learn esistenti senza modificare il codice
- Continua a utilizzare l'API open source scikit-learn
- Usa qualche riga di codice oppure abilita e disabilita le estensioni nella riga di comando
Fonte:Il login del link ipertestuale è visibile. Documentazione:Il login del link ipertestuale è visibile.
Test
Per prima cosa, usa conda per preparare l'ambiente e installa i pacchetti necessari con il seguente comando:
Il nuovo codice di test Python è il seguente:
Il codice accelerato è il seguente:
Interpretazione del codice sorgente:
1.X, y = make_regression(n_samples=2000000, n_features=100, rumore=1, random_state=42) make_regression è una funzione in scikit-learn che genera un dataset per problemi di regressione lineare. n_samples=2000000: Specifica il numero di campioni nel dataset generato di 2.000.000. n_features=100: Specifica che ogni campione ha 100 caratteristiche (cioè variabili di input). rumore=1: La deviazione standard dell'aggiunta di rumore sul valore target y è 1. Ciò significa che il valore target avrà alcune perturbazioni casuali. random_state=42: Impostare il seed casuale a 42, assicurandosi che i dati generati siano gli stessi ogni volta che il codice viene eseguito (ripetibilità). Risultati: X è un array NumPy di forme (2000000, 100) che rappresenta 2.000.000 di campioni con 100 caratteristiche ciascuno; Y è un array unidimensionale di 2.000.000 di lunghezza che rappresenta il valore target.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42) train_test_split è una funzione in scikit-learn che divide il dataset in set di addestramento e di test. test_size=0,33: Indica che il 33% del dataset è allocato al set di test e il restante 67% è destinato all'insieme di addestramento. random_state=42: Imposta il seed casuale a 42, assicurandoti che il risultato della divisione dei dati sia lo stesso ogni volta che esegui il codice. : Usa un sottolineamento per ignorare il valore di restituzione. Qui ci interessa solo la parte del set di addestramento (X_train e y_train) e ignoriamo la parte del set di test. Risultato: X_train: La matrice di caratteristiche del set di addestramento, a forma di (1340000, 100) (circa il 67% dei dati). y_train: Il valore target del set di addestramento con una lunghezza di 1.340.000.
3. modello = RegressionLineare() LinearRegression è un corso in scikit-learn che implementa modelli di regressione lineare. Questa linea di codice crea un'istanza di un modello di regressione lineare e assegna valori al modello variabile. Per impostazione predefinita, LinearRegression non regolarizza i dati (cioè, nessuna regolarizzazione L1 o L2).
4. model.fit(X_train, y_train) L'adattamento è un metodo nel modello scikit-learn utilizzato per addestrare il modello. Qui il metodo di adattamento viene chiamato per adattare il modello di regressione lineare usando i dati dell'insieme di addestramento X_train e il valore target y_train. Il modello calcola un insieme ottimale di pesi (coefficienti) e intercetti per minimizzare l'errore tra i valori previsti e veri (di solito minimi quadrati). Una volta completato l'addestramento, i parametri del modello vengono memorizzati in model.coef_ (il peso della caratteristica) e model.intercept_ (intercetto).
Il tempo di esecuzione è il seguente:
Puoi vedere che l'effetto è molto evidente sia senza accelerazione che dopo l'accelerazione,Ci vogliono circa 16 secondi senza accelerazione e solo 0,1 secondi dopo l'accelerazione!!!! |