Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 1062|Resposta: 0

[Gorjetas] Acelere a biblioteca de aprendizado de máquina scikit-learn com sklearnex

[Copiar link]
Postado em 27-04-2025 09:59:40 | | | |
Scikit-learn

SKTet, nome completo scikit-learn, é uma biblioteca de aprendizado de máquina em Python, construída com base em pacotes de ciência de dados como numpy, scipy e matplotlib, cobrindo quase todos os aspectos do aprendizado de máquina, como dados de amostra, pré-processamento de dados, verificação de modelos, seleção de características, classificação, regressão, clustering e redução de dimensionalidade. Diferente do estoque de deep learning disponível em vários frameworks como pytorch e TensorFlow, o sklearn é a biblioteca preferida para aprendizado de máquina tradicional em python, e não há outros concorrentes.

Site Oficial:O login do hiperlink está visível.
Fonte:O login do hiperlink está visível.

Extensão para Scikit-learn

Como um framework clássico de aprendizado de máquina, o scikit-learn vem se desenvolvendo há mais de dez anos desde seu nascimento, mas sua velocidade de processamento tem sido amplamente criticada pelos usuários. Extension for Scikit-learn é um acelerador gratuito de software de IA projetado para ajudar vocêO código existente do Scikit-learn oferece acelerações de 10 a 100x mais rápidas。 A aceleração por software é alcançada por meio de instruções vetoriais, otimização de memória para hardware de IA, threading e otimização.

Com a extensão Scikit-learn, você pode:

  • Treinamento e inferência são 100 vezes mais rápidos com a mesma precisão matemática
  • Beneficie-se de melhorias de desempenho em diferentes configurações de hardware de CPU, incluindo configurações de GPU e multi-GPU
  • Integre extensões às suas aplicações Scikit-learn existentes sem modificar o código
  • Continue usando a API open-source scikit-learn
  • Use algumas linhas de código ou ative e desative extensões na linha de comando


Fonte:O login do hiperlink está visível.
Documentação:O login do hiperlink está visível.



Teste

Primeiro, use o conda para preparar o ambiente e instale os pacotes necessários com o seguinte comando:

O novo código de teste em Python é o seguinte:

O código acelerado é o seguinte:

Interpretação do código-fonte:

1.X, y = make_regression(n_samples=2000000, n_features=100, ruído=1, random_state=42)
make_regression é uma função no scikit-learn que gera um conjunto de dados para problemas de regressão linear.
n_samples=2000000: Especifica o número de amostras no conjunto de dados gerado de 2.000.000.
n_features=100: Especifica que cada amostra possui 100 características (ou seja, variáveis de entrada).
ruído=1: O desvio padrão de adicionar ruído ao valor alvo y é 1. Isso significa que o valor alvo terá algumas perturbações aleatórias.
random_state=42: Defina a semente aleatória para 42, garantindo que os dados gerados sejam os mesmos toda vez que o código é executado (repetibilidade).
Resultados: X é um array NumPy de formas (2000000, 100) representando 2.000.000 de amostras com 100 características cada; Y é um arranjo unidimensional de 2.000.000 de comprimento que representa o valor alvo.

2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42)
train_test_split é uma função no scikit-learn que divide o conjunto de dados em conjuntos de treinamento e de teste.
test_size=0,33: Indica que 33% do conjunto de dados é alocado ao conjunto de teste e os 67% restantes são alocados ao conjunto de treinamento.
random_state=42: Defina a semente aleatória para 42, garantindo que o resultado da divisão dos dados seja o mesmo toda vez que você executa o código.
: Use um sublinhado para ignorar o valor de retorno. Aqui só nos importamos com a parte do conjunto de treinamento (X_train e y_train) e ignoramos a parte do conjunto de teste.
Resultado:
X_train: A matriz de características do conjunto de treinamento, com formato de (1340000, 100) (cerca de 67% dos dados).
y_train: O valor-alvo do conjunto de treinamento com duração de 1.340.000.

3. modelo = Regressão Linear()
LinearRegression é uma disciplina do scikit-learn que implementa modelos de regressão linear.
Essa linha de código cria uma instância de um modelo de regressão linear e atribui valores ao modelo de variáveis.
Por padrão, a Regressão Linear não regulariza os dados (ou seja, não há regularização L1 ou L2).

4. model.fit(X_train, y_train)
Ajuste é um método no modelo scikit-learn que é usado para treinar o modelo.
Aqui, o método de ajuste é chamado para ajustar o modelo de regressão linear usando o conjunto de treinamento X_train e o valor-alvo y_train.
O modelo calcula um conjunto ótimo de pesos (coeficientes) e interceptos para minimizar o erro entre os valores previstos e verdadeiros (geralmente mínimos quadrados).
Uma vez concluído o treinamento, os parâmetros do modelo são armazenados em model.coef_ (o peso da característica) e model.intercept_ (interceptação).

O tempo de execução é o seguinte:



Você pode ver que o efeito é muito óbvio tanto sem aceleração quanto após a aceleração,Leva cerca de 16 segundos sem acelerar e apenas 0,1 segundo após a aceleração!!!!




Anterior:.NET/C# usa reconhecimento de texto do Tesseract para OCR para imagens
Próximo:.NET/C# usa o HtmlAgilityPack para remover todas as tags HTML
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com