Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 1062|Отговор: 0

[Бакшиши] Ускорете машинната библиотека на scikit-learn с sklearnex

[Копирай линк]
Публикувано на 27.04.2025 09:59:40 | | | |
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 секунди след ускорение!!!!




Предишен:.NET/C# използва Tesseract за OCR разпознаване на текст за изображения
Следващ:.NET/C# използва HtmlAgilityPack, за да премахне всички HTML тагове
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com