Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 1062|Răspunde: 0

[Bacșișuri] Accelerează biblioteca de învățare automată scikit-learn cu sklearnex

[Copiază linkul]
Postat la 2025-4-27 09:59:40 | | | |
Scikit-learn

SKTet, numele complet scikit-learn, este o bibliotecă de învățare automată în Python, construită pe baza pachetelor de știință a datelor precum numpy, scipy și matplotlib, acoperind aproape toate aspectele învățării automate, cum ar fi date de probă, preprocesarea datelor, verificarea modelului, selecția caracteristicilor, clasificarea, regresia, clusterizarea și reducerea dimensionalității. Spre deosebire de stocul de deep learning disponibil în diverse framework-uri precum pytorch și TensorFlow, sklearn este biblioteca preferată pentru învățarea automată tradițională în python și nu există alți concurenți.

Site oficial:Autentificarea cu hyperlink este vizibilă.
Sursă:Autentificarea cu hyperlink este vizibilă.

Extensie pentru Scikit-learn

Ca un cadru clasic de învățare automată, scikit-learn se dezvoltă de mai bine de zece ani de la înființare, însă viteza sa de calcul a fost larg criticată de utilizatori. Extensia pentru Scikit-learn este un accelerator software gratuit AI conceput să te ajuteCodul Scikit-learn existent oferă accelerări de 10 până la 100 de ori mai rapide。 Accelerarea software se realizează prin instrucțiuni vectoriale, optimizarea memoriei pentru hardware-ul AI, threading și optimizare.

Cu extensia Scikit-learn, poți:

  • Antrenamentul și inferența sunt de 100 de ori mai rapide cu aceeași precizie matematică
  • Beneficiază de îmbunătățiri de performanță la diferite configurații hardware ale CPU-urilor, inclusiv GPU și configurații multi-GPU
  • Integrează extensii în aplicațiile tale Scikit-learn existente fără a modifica codul
  • Continuați să folosiți API-ul open-source scikit-learn
  • Folosește câteva linii de cod sau activează și dezactivează extensiile din linia de comandă


Sursă:Autentificarea cu hyperlink este vizibilă.
Documentație:Autentificarea cu hyperlink este vizibilă.



Testa

Mai întâi, folosește conda pentru a pregăti mediul și instalează pachetele necesare cu următoarea comandă:

Noul cod de test Python este următorul:

Codul accelerat este următorul:

Interpretarea codului sursă:

1.X, y = make_regression(n_samples=2000000, n_features=100, zgomot=1, random_state=42)
make_regression este o funcție în scikit-learn care generează un set de date pentru probleme de regresie liniară.
n_samples=2000000: Specifică numărul de eșantioane din setul de date generat de 2.000.000.
n_features=100: Specifică că fiecare eșantion are 100 de caracteristici (adică variabile de intrare).
Zgomot=1: Abaterea standard a adăugării zgomotului pe valoarea țintă y este 1. Aceasta înseamnă că valoarea țintă va avea unele perturbații aleatorii.
random_state=42: Setează sămânța aleatorie la 42, asigurându-te că datele generate sunt aceleași de fiecare dată când codul este rulat (repetabilitate).
Rezultate: X este un tablou NumPy de forme (2000000, 100) care reprezintă 2.000.000 de mostre cu câte 100 de caracteristici fiecare; Y este un tablou unidimensional de 2.000.000 lungime care reprezintă valoarea țintă.

2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42)
train_test_split este o funcție în scikit-learn care împarte setul de date în seturi de antrenament și de testare.
test_size=0,33: Indică faptul că 33% din setul de date este alocat setului de test, iar restul de 67% este alocat setului de antrenament.
random_state=42: Setează seed-ul aleatoriu la 42, asigurându-te că rezultatul împărțirii datelor este același de fiecare dată când rulezi codul.
: Folosește un subliniu pentru a ignora valoarea returnării. Aici ne interesează doar partea cu setul de antrenament (X_train și y_train) și ignorăm partea cu setul de test.
Rezultat:
X_train: Matricea de caracteristici a setului de antrenament, având forma (1340000, 100) (aproximativ 67% din date).
y_train: Valoarea țintă a setului de antrenament cu o lungime de 1.340.000.

3. model = Regresie Liniară()
Regresia Liniară este un curs din scikit-learn care implementează modele de regresie liniară.
Această linie de cod creează o instanță a unui model de regresie liniară și atribuie valori modelului variabil.
În mod implicit, LinearRegression nu regularizează datele (adică nu are regularizare L1 sau L2).

4. model.fit(X_train, y_train)
Ajustarea este o metodă din modelul scikit-learn care este folosită pentru antrenarea modelului.
Aici metoda de ajustare este numită pentru a ajusta modelul de regresie liniară folosind datele setului de antrenament X_train și valoarea țintă y_train.
Modelul calculează un set optim de greutăți (coeficienți) și interceptări pentru a minimiza eroarea dintre valorile prezise și cele adevărate (de obicei cele mai mici pătrate).
Odată ce antrenamentul este finalizat, parametrii modelului sunt stocați în model.coef_ (greutatea caracteristicii) și model.intercept_ (intercept).

Timpul de execuție este următorul:



Poți vedea că efectul este foarte evident atât fără accelerare, cât și după accelerare,Durează aproximativ 16 secunde fără accelerație și doar 0,1 secunde după accelerație!!!!




Precedent:.NET/C# folosește recunoașterea textului Tesseract pentru OCR pentru imagini
Următor:.NET/C# folosește HtmlAgilityPack pentru a elimina toate etichetele HTML
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com