Scikit-learn
SKTet, plný název scikit-learn, je knihovna strojového učení v Pythonu, postavená na základě datovědních balíčků jako numpy, scipy a matplotlib, pokrývající téměř všechny aspekty strojového učení, jako jsou vzorková data, předzpracování dat, ověřování modelů, výběr rysů, klasifikace, regrese, shlukování a snižování dimenzionality. Na rozdíl od deep learning standardu dostupného v různých frameworkech jako pytorch a TensorFlow je sklearn preferovanou knihovnou pro tradiční strojové učení v pythonu a neexistují žádní další konkurenti.
Oficiální webové stránky:Přihlášení k hypertextovému odkazu je viditelné. Zdroj:Přihlášení k hypertextovému odkazu je viditelné.
Rozšíření pro Scikit-learn
Jako klasický rámec strojového učení se scikit-learn vyvíjí více než deset let od svého vzniku, ale jeho výpočetní rychlost byla uživateli široce kritizována. Rozšíření pro Scikit-learn je bezplatný akcelerátor AI softwaru navržený tak, aby vám pomohlStávající kód Scikit-learn poskytuje 10 až 100x rychlejší zrychlení。 Softwarová akcelerace je dosažena pomocí vektorových instrukcí, optimalizace paměťi pro AI hardware, vláknění a optimalizace.
S rozšířením Scikit-learn můžete:
- Trénink a inference jsou 100krát rychlejší se stejnou matematickou přesností
- Využijte zlepšení výkonu napříč různými konfiguracemi CPU, včetně konfigurací GPU a multi-GPU
- Integrujte rozšíření do svých stávajících aplikací Scikit-learn, aniž byste museli upravovat kód
- Pokračujte v používání open-source scikit-learn API
- Použijte pár řádků kódu nebo povolte a deaktivujte rozšíření v příkazovém řádku
Zdroj:Přihlášení k hypertextovému odkazu je viditelné. Dokumentace:Přihlášení k hypertextovému odkazu je viditelné.
Test
Nejprve použijte conda k přípravě prostředí a instalaci potřebných balíčků pomocí následujícího příkazu:
Nový testovací kód v Pythonu je následující:
Zrychlený kód je následující:
Interpretace zdrojového kódu:
1.X, y = make_regression(n_samples=2000000, n_features=100, šum=1, random_state=42) make_regression je funkce ve scikit-learn, která generuje datovou sadu pro problémy lineární regrese. n_samples=2000000: Specifikuje počet vzorků v generované datové sadě 2 000 000. n_features=100: Specifikuje, že každý vzorek má 100 znaků (tj. vstupních proměnných). šum=1: Směrodatná odchylka při sčítání šumu na cílovou hodnotu y je 1. To znamená, že cílová hodnota bude mít určité náhodné narušení. random_state=42: Nastavte náhodné semeno na 42, aby byla generovaná data pokaždé stejná při spuštění kódu (opakovatelnost). Výsledky: X je NumPy pole tvarů (2000000, 100) reprezentující 2 000 000 vzorků s každým 100 rysy; y je jednorozměrné pole o délce 2 000 000, které představuje cílovou hodnotu.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42) train_test_split je funkce ve scikit-learn, která rozděluje datovou sadu na tréninkovou a testovací sadu. test_size=0,33: Označuje, že 33 % datové sady je přiděleno k testovací sadě a zbývajících 67 % do trénovací sady. random_state=42: Nastavte náhodné seedy na 42, aby výsledek rozdělení dat byl pokaždé stejný při spuštění kódu. : Použijte podtržítko k ignorování hodnoty návratu. Tady nás zajímá jen část tréninkové sady (X_train a y_train) a ignorujeme část testovací sady. Výsledek: X_train: Matice rysů trénovací množiny ve tvaru (1340000, 100) (asi 67 % dat). y_train: Cílová hodnota trénovací sady o délce 1 340 000.
3. model = LinearRegression() LinearRegression je kurz ve scikit-learn, který implementuje lineární regresní modely. Tento řádek kódu vytváří instanci lineárního regresního modelu a přiřazuje hodnoty proměnnému modelu. Ve výchozím nastavení LinearRegression data neregularizuje (tj. žádná regularizace L1 nebo L2).
4. model.fit(X_train, y_train) Fit je metoda v modelu scikit-learn, která se používá k trénování modelu. Zde se metoda přizpůsobení používá k přizpůsobení lineárního regresního modelu pomocí tréninkové množiny X_train a cílové hodnoty y_train. Model vypočítá optimální množinu vah (koeficientů) a průsečíků, aby minimalizoval chybu mezi předpovězenou a skutečnou hodnotou (obvykle nejmenšími čtverců). Po dokončení tréninku jsou parametry modelu uloženy do model.coef_ (váha prvku) a model.intercept_ (průsečík).
Doba provedení je následující:
Vidíte, že efekt je velmi zřejmý jak bez zrychlení, tak po zrychlení,Bez akcelerace to trvá asi 16 sekund a po zrychlení jen 0,1 sekundy!!!! |