Scikit-learn
SKTet, fullt navn scikit-learn, er et maskinlæringsbibliotek i Python, bygget på data science-pakker som numpy, scipy og matplotlib, og dekker nesten alle aspekter av maskinlæring som prøvedata, dataforbehandling, modellverifisering, funksjonsvalg, klassifisering, regresjon, klynging og dimensjonsreduksjon. I motsetning til deep learning-standarden som finnes i ulike rammeverk som pytorch og TensorFlow, er sklearn det foretrukne biblioteket for tradisjonell maskinlæring i Python, og det finnes ingen andre konkurrenter.
Offisiell nettside:Innloggingen med hyperkoblingen er synlig. Kilde:Innloggingen med hyperkoblingen er synlig.
Utvidelse for Scikit-learn
Som et klassisk maskinlæringsrammeverk har scikit-learn utviklet seg i mer enn ti år siden oppstarten, men datahastigheten har blitt mye kritisert av brukerne. Extension for Scikit-learn er en gratis AI-programvareakselerator designet for å hjelpe degEksisterende Scikit-learn-kode gir 10 til 100 ganger raskere hastighetsøkninger。 Programvareakselerasjon oppnås gjennom vektorinstruksjoner, minneoptimalisering for AI-maskinvare, tråding og optimalisering.
Med Scikit-learn-utvidelsen kan du:
- Trening og slutning er 100 ganger raskere med samme matematiske presisjon
- Dra nytte av ytelsesforbedringer på tvers av ulike CPU-maskinvarekonfigurasjoner, inkludert GPU- og multi-GPU-konfigurasjoner
- Integrer utvidelser i dine eksisterende Scikit-learn-applikasjoner uten å endre koden
- Fortsett å bruke det åpne kildekode-API-et scikit-learn
- Bruk noen linjer kode eller aktiver og deaktiver utvidelser i kommandolinjen
Kilde:Innloggingen med hyperkoblingen er synlig. Dokumentasjon:Innloggingen med hyperkoblingen er synlig.
Prøve
Først, bruk conda for å forberede miljøet og installer nødvendige pakker med følgende kommando:
Den nye Python-testkoden er som følger:
Den akselererte koden er som følger:
Tolkning av kildekode:
1.X, y = make_regression(n_samples=2000000, n_features=100, støy=1, random_state=42) make_regression er en funksjon i scikit-learn som genererer et datasett for lineære regresjonsproblemer. n_samples=2000000: Angir antall prøver i det genererte datasettet på 2 000 000. n_features=100: Spesifiserer at hvert utvalg har 100 funksjoner (dvs. inputvariabler). Støy=1: Standardavviket for å legge til støy på målverdien y er 1. Dette betyr at målverdien vil ha noen tilfeldige forstyrrelser. random_state=42: Sett det tilfeldige frøet til 42, og sørg for at de genererte dataene er de samme hver gang koden kjøres (repeterbarhet). Resultater: X er et NumPy-array av form (2000000, 100) som representerer 2 000 000 prøver med 100 funksjoner hver; y er et endimensjonalt array på 2 000 000 i lengde som representerer mål-verdien.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42) train_test_split er en funksjon i scikit-learn som deler datasettet i trenings- og testsett. test_size=0,33: Indikerer at 33 % av datasettet er allokert til testsettet og de resterende 67 % til treningssettet. random_state=42: Sett det tilfeldige frøet til 42, og sørg for at resultatet av datadelingen er det samme hver gang du kjører koden. : Bruk en understrek for å ignorere returverdien. Her bryr vi oss kun om treningssett-delen (X_train og y_train) og ignorerer testsett-delen. Utfall: X_train: Funksjonsmatrisen til treningssettet, formet som (1340000, 100) (omtrent 67 % av dataene). y_train: Målverdien for treningssatt med en lengde på 1 340 000.
3. modell = Lineærregresjon() LinearRegresjon er en klasse i scikit-learn som implementerer lineære regresjonsmodeller. Denne kodelinjen lager en instans av en lineær regresjonsmodell og tildeler verdier til variabelmodellen. Som standard regulerer ikke lineærregresjon data (dvs. ingen L1- eller L2-regularisering).
4. model.fit(X_train, y_train) Tilpasning er en metode i scikit-learn-modellen som brukes til å trene modellen. Her kalles tilpasningsmetoden for å tilpasse den lineære regresjonsmodellen ved å bruke treningssettdataene X_train og målverdien y_train. Modellen beregner et optimalt sett med vekter (koeffisienter) og avskjæringer for å minimere feilen mellom de predikerte og sanne verdiene (vanligvis minste kvadrater). Når treningen er fullført, lagres modellens parametere i model.coef_ (vekten av funksjonen) og model.intercept_ (avskjæring).
Utførelsestiden er som følger:
Du kan se at effekten er veldig tydelig både uten akselerasjon og etter akselerasjon,Det tar omtrent 16 sekunder uten akselerasjon og bare 0,1 sekunder etter akselerasjon!!!! |