Repolode
nok

nok/sklearn-porter

Ferramenta Python que transpila modelos e transformers treinados do scikit-learn para código em C, C#, Go, Java, JavaScript, PHP ou Ruby.

Estrelas
1,304
Forks
168
Issues abertas
4
Último commit
anteontem

O que é?

sklearn-porter recebe um estimator, transformer ou pipeline treinado do scikit-learn e gera código-fonte em C, C#, Go, Java, JavaScript, PHP ou Ruby. O código gerado permite fazer previsões sem um runtime Python, o que é útil em dispositivos embarcados, no navegador ou em aplicações existentes escritas em outra linguagem.

O projeto oferece suporte a uma ampla variedade de classificadores, regressores, detectores de outliers e transformers de pré-processamento ou seleção de features, incluindo ensembles de árvores, modelos lineares, SVMs e redes neurais. A expectativa é que os estimators convertidos produzam as mesmas previsões que os originais, e que os transformers convertidos transformem as features da mesma maneira.

Os dados do modelo podem ser incluídos no código, exportados para um arquivo JSON separado ou incorporados à lógica como instruções if-else aninhadas. O pacote oferece uma API Python, uma ferramenta de linha de comando chamada `porter` e um helper `test` que compara a saída convertida com a do modelo original. A instalação requer Python 3.11+ e scikit-learn 1.8+.

Recursos principais

  • 01Transpila classificadores, regressores e detectores de outliers para sete linguagens.
  • 02Converte transformers e pipelines comuns de pré-processamento e seleção de features.
  • 03Oferece templates com dados do modelo incluídos, exportados ou combinados.
  • 04Disponibiliza uma API Python e uma interface de linha de comando `porter`.
  • 05Inclui uma função `test` que compara as previsões convertidas com as do modelo original.

Casos de uso

  • Executar um modelo treinado do scikit-learn em um dispositivo embarcado sem Python.
  • Adicionar as previsões de um modelo a um backend Java, Go ou PHP sem um serviço Python.
  • Executar um classificador no navegador com JavaScript.

Início rápido

  1. 1

    Instale o pacote com uv

    uv add sklearn-porter
  2. 2

    Ou instale-o com pip

    pip install sklearn-porter
  3. 3

    Treine um modelo do scikit-learn em Python e porte-o com port(clf, language='js')

Antes de usar

  • Requer Python 3.11 ou superior e scikit-learn 1.8 ou superior.
  • Oferece suporte apenas a uma lista fixa de estimadores e transformadores do scikit-learn.

Em coleções

Tópicos

Perguntas frequentes

O que é sklearn-porter?
Ferramenta Python que transpila modelos e transformers treinados do scikit-learn para código em C, C#, Go, Java, JavaScript, PHP ou Ruby. sklearn-porter recebe um estimator, transformer ou pipeline treinado do scikit-learn e gera código-fonte em C, C#, Go, Java, JavaScript, PHP ou Ruby. O código gerado permite fazer previsões sem um runtime Python, o que é útil em dispositivos embarcados, no navegador ou em aplicações existentes escritas em outra linguagem.
sklearn-porter é gratuito? Qual é a licença?
sklearn-porter é open source sob a licença BSD-3-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
sklearn-porter ainda é mantido?
Manutenção ativa. O último commit de sklearn-porter foi em 5 de nov. de 2026.
Para que posso usar sklearn-porter?
Executar um modelo treinado do scikit-learn em um dispositivo embarcado sem Python. Adicionar as previsões de um modelo a um backend Java, Go ou PHP sem um serviço Python. Executar um classificador no navegador com JavaScript.
Como instalar sklearn-porter?
Instale o pacote com uv: uv add sklearn-porter Ou instale-o com pip: pip install sklearn-porter Treine um modelo do scikit-learn em Python e porte-o com port(clf, language='js')
Onde consigo sklearn-porter?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/nok/sklearn-porter

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados