Scikit-learn
SKTet, пълно име scikit-learn, е библиотека за машинно обучение на Python, изградена на базата на пакети за наука за данни като numpy, scipy и matplotlib, обхващаща почти всички аспекти на машинното обучение като примерни данни, предварителна обработка на данни, верификация на модели, избор на признаци, класификация, регресия, клъстериране и намаляване на размерността. За разлика от запасите за дълбоко обучение, налични в различни рамки като pytorch и TensorFlow, sklearn е предпочитаната библиотека за традиционно машинно обучение в python и няма други конкуренти.
Официален уебсайт:Входът към хиперлинк е видим. Източник:Входът към хиперлинк е видим.
Разширение за Scikit-learn
Като класическа рамка за машинно обучение, scikit-learn се разработва повече от десет години от своето създаване, но неговата изчислителна скорост е широко критикувана от потребителите. Extension for Scikit-learn е безплатен AI софтуерен акселератор, създаден да ви помогнеСъществуващият Scikit-learn код осигурява 10 до 100 пъти по-бързо ускоряване。 Софтуерното ускорение се постига чрез векторни инструкции, оптимизация на паметта за AI хардуер, нишки и оптимизация.
С разширението Scikit-learn можете:
- Обучението и изводите са 100 пъти по-бързи с еднаква математическа прецизност
- Възползвайте се от подобрения в производителността при различни хардуерни конфигурации на CPU, включително GPU и мулти-GPU конфигурации
- Интегрирайте разширения в съществуващите си Scikit-learn приложения без да променяте кода
- Продължете да използвате отворения код scikit-learn API
- Използвайте няколко реда код или активирайте и деактивирайте разширенията в командния ред
Източник:Входът към хиперлинк е видим. Документация:Входът към хиперлинк е видим.
Тест
Първо, използвайте conda, за да подготвите средата и инсталирате необходимите пакети със следната команда:
Новият тестов код в Python е следният:
Ускореният код е следният:
Интерпретация на изходния код:
1.X, y = make_regression(n_samples=2000000, n_features=100, шум=1, random_state=42) make_regression е функция в scikit-learn, която генерира набор от данни за задачи с линейна регресия. n_samples=2000000: Определя броя на извадките в генерирания набор от данни от 2 000 000. n_features=100: Уточнява, че всяка извадка има 100 характеристики (т.е. входни променливи). шум=1: Стандартното отклонение при добавяне на шум върху целевата стойност y е 1. Това означава, че целевата стойност ще има някои случайни смущения. random_state=42: Задайте случайното семе на 42, като гарантираме, че генерираните данни са еднакви всеки път, когато кодът се изпълнява (повторяемост). Резултати: X е NumPy масив с форма (2000000, 100), представляващ 2 000 000 проби с по 100 характеристики всяка; y е едномерен масив с дължина 2 000 000, който представлява целевата стойност.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0.33, random_state=42) train_test_split е функция в scikit-learn, която разделя набора от данни на тренировъчен и тестов набор. test_size=0.33: Показва, че 33% от набора от данни се заделя към тестовия набор, а останалите 67% се зачисляват към тренировъчния набор. random_state=42: Задайте случайния seed на 42, като гарантирате, че резултатът от разделянето на данните е един и същ всеки път, когато стартирате кода. : Използвайте подчертаване, за да игнорирате възвръщаемата стойност. Тук ни интересува само частта с тренировъчния комплект (X_train и y_train) и игнорираме частта с тестовия сет. Резултат: X_train: Матрицата на характеристиките на тренировъчния набор, оформена като (1340000, 100) (около 67% от данните). y_train: Целевата стойност на тренировъчния комплект с дължина 1 340 000.
3. модел = Линейна регресия() Линейната регресия е клас в scikit-learn, който реализира линейни регресионни модели. Този ред код създава екземпляр на линеен регресионен модел и присвоява стойности на променливия модел. По подразбиране линейната регресия не регулира данните (т.е. няма регуляризация на L1 или L2).
4. model.fit(X_train, y_train) Fit е метод в scikit-learn модела, който се използва за обучение на модела. Тук методът на напасване се извиква да пасне на линейния регресионен модел, използвайки X_train от тренировъчния набор данни и целевата стойност y_train. Моделът изчислява оптимален набор от тегла (коефициенти) и пресичания, за да минимизира грешката между предсказаните и истинските стойности (обикновено най-малките квадрати). След като обучението приключи, параметрите на модела се съхраняват в model.coef_ (теглото на характеристиката) и model.intercept_ (прехващане).
Времето за изпълнение е следното:
Може да се види, че ефектът е много очевиден както без ускорение, така и след ускорение,Отнема около 16 секунди без ускорение и само 0.1 секунди след ускорение!!!! |