Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 1062|Respuesta: 0

[Consejos] Acelera la biblioteca de aprendizaje automático scikit-learn con sklearnex

[Copiar enlace]
Publicado el 27-4-2025 09:59:40 | | | |
Scikit-learn

SKTet, nombre completo scikit-learn, es una biblioteca de aprendizaje automático en Python, construida sobre la base de paquetes de ciencia de datos como numpy, scipy y matplotlib, que cubre casi todos los aspectos del aprendizaje automático, como datos de muestras, preprocesamiento de datos, verificación de modelos, selección de características, clasificación, regresión, agrupamiento y reducción de dimensionalidad. A diferencia del stock de aprendizaje profundo disponible en varios frameworks como pytorch y TensorFlow, sklearn es la biblioteca preferida para el aprendizaje automático tradicional en python, y no hay otros competidores.

Página web oficial:El inicio de sesión del hipervínculo es visible.
Fuente:El inicio de sesión del hipervínculo es visible.

Extensión para Scikit-learn

Como marco clásico de aprendizaje automático, scikit-learn lleva desarrollándose más de diez años desde su nacimiento, pero su velocidad de cálculo ha sido ampliamente criticada por los usuarios. Extension for Scikit-learn es un acelerador de software gratuito de IA diseñado para ayudarteEl código existente de Scikit-learn proporciona aceleraciones de 10 a 100 veces más rápidas。 La aceleración por software se logra mediante instrucciones vectoriales, optimización de memoria para hardware de IA, hilos y optimización.

Con la extensión Scikit-learn, puedes:

  • El entrenamiento y la inferencia son 100 veces más rápidos con la misma precisión matemática
  • Beneficiarse de mejoras de rendimiento en diferentes configuraciones de hardware de CPU, incluyendo configuraciones de GPU y multi-GPU
  • Integra extensiones en tus aplicaciones Scikit-learn existentes sin modificar el código
  • Sigue usando la API de código abierto scikit-learn
  • Usa unas pocas líneas de código o activa y desactiva extensiones en la línea de comandos


Fuente:El inicio de sesión del hipervínculo es visible.
Documentación:El inicio de sesión del hipervínculo es visible.



Prueba

Primero, usa conda para preparar el entorno e instala los paquetes necesarios con el siguiente comando:

El nuevo código de prueba en Python es el siguiente:

El código acelerado es el siguiente:

Interpretación del código fuente:

1.X, y = make_regression(n_samples=2000000, n_features=100, ruido=1, random_state=42)
make_regression es una función en scikit-learn que genera un conjunto de datos para problemas de regresión lineal.
n_samples=2000000: Especifica el número de muestras en el conjunto de datos generado de 2.000.000.
n_features=100: Especifica que cada muestra tiene 100 características (es decir, variables de entrada).
ruido=1: La desviación estándar de añadir ruido al valor objetivo y es 1. Esto significa que el valor objetivo tendrá algunas perturbaciones aleatorias.
random_state=42: Establecer la semilla aleatoria en 42, asegurando que los datos generados sean los mismos cada vez que se ejecuta el código (repetibilidad).
Resultados: X es un array NumPy de formas (2000000, 100) que representa 2.000.000 de muestras con 100 características cada una; Y es un array unidimensional de 2.000.000 de longitud que representa el valor objetivo.

2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42)
train_test_split es una función en scikit-learn que divide el conjunto de datos en conjuntos de entrenamiento y de prueba.
test_size=0,33: Indica que el 33% del conjunto de datos está asignado al conjunto de prueba y el 67% restante al conjunto de entrenamiento.
random_state=42: Establece la semilla aleatoria en 42, asegurando que el resultado de la división de datos sea el mismo cada vez que ejecutes el código.
: Usa un guion bajo para ignorar el valor de retorno. Aquí solo nos importa la parte del conjunto de entrenamiento (X_train y y_train) e ignoramos la parte del conjunto de pruebas.
Resultado:
X_train: La matriz de características del conjunto de entrenamiento, con la forma de (1340000, 100) (aproximadamente el 67% de los datos).
y_train: El valor objetivo del conjunto de entrenamiento con una longitud de 1.340.000.

3. modelo = Regresión Lineal()
LinearRegression es una clase en scikit-learn que implementa modelos de regresión lineal.
Esta línea de código crea una instancia de un modelo de regresión lineal y asigna valores al modelo de variables.
Por defecto, LinearRegression no regulariza los datos (es decir, no hay regularización L1 ni L2).

4. model.fit(X_train, y_train)
El ajuste es un método en el modelo scikit-learn que se utiliza para entrenar el modelo.
Aquí se llama al método de ajuste para ajustar el modelo de regresión lineal usando el conjunto de entrenamiento X_train datos y el valor objetivo y_train.
El modelo calcula un conjunto óptimo de pesos (coeficientes) e interceptos para minimizar el error entre los valores predichos y los verdaderos (normalmente mínimos cuadrados).
Una vez completado el entrenamiento, los parámetros del modelo se almacenan en model.coef_ (el peso de la característica) y model.intercept_ (interceptación).

El tiempo de ejecución es el siguiente:



Puedes ver que el efecto es muy evidente tanto sin aceleración como después de ella,Tarda unos 16 segundos sin acelerar y solo 0,1 segundos después de acelerar!!!!




Anterior:.NET/C# utiliza reconocimiento de texto de Tesseract a OCR para imágenes
Próximo:.NET/C# utiliza HtmlAgilityPack para eliminar todas las etiquetas HTML
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com