Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 1062|Відповідь: 0

[Чайови] Прискоріть програму машинного навчання на scikit-learn за допомогою sklearnex

[Копіювати посилання]
Опубліковано 2025-4-27 09:59:40 | | | |
Scikit-learn

SKTet, повна назва scikit-learn, — це бібліотека машинного навчання на Python, створена на основі пакетів для науки про дані, таких як numpy, scipy та matplotlib, що охоплює майже всі аспекти машинного навчання, такі як вибіркові дані, попередня обробка даних, верифікація моделей, вибір ознак, класифікація, регресія, кластеризація та зменшення розмірності. На відміну від фонду глибокого навчання, доступного в різних фреймворках, таких як pytorch і TensorFlow, sklearn є улюбленою бібліотекою для традиційного машинного навчання на Python, і інших конкурентів немає.

Офіційний вебсайт:Вхід за гіперпосиланням видно.
Джерело:Вхід за гіперпосиланням видно.

Розширення для Scikit-learn

Як класичний фреймворк машинного навчання, scikit-learn розробляється вже понад десять років з моменту свого народження, але його швидкість обчислень широко критикується користувачами. Розширення для Scikit-learn — це безкоштовний акселератор програмного забезпечення на основі штучного інтелекту, розроблений для допомоги вамІснуючий код Scikit-learn забезпечує у 10–100 разів швидше прискорення。 Програмне прискорення досягається за допомогою векторних інструкцій, оптимізації пам'яті для апаратного забезпечення ШІ, потоків і оптимізації.

З розширенням Scikit-learn ви можете:

  • Тренування та висновки у 100 разів швидші з однаковою математичною точністю
  • Отримайте переваги від покращення продуктивності в різних апаратних конфігураціях процесора, включно з GPU та мульти-GPU
  • Інтегруйте розширення у ваші існуючі додатки Scikit-learn без змін коду
  • Продовжуйте використовувати відкритий API scikit-learn
  • Використайте кілька рядків коду або ввімкніть і вимкніть розширення в командному рядку


Джерело:Вхід за гіперпосиланням видно.
Документації:Вхід за гіперпосиланням видно.



Тест

Спочатку використайте 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: Встановіть випадкове насіння на 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