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!!!! |