Repolode
nok

nok/sklearn-porter

Инструмент для транспиляции обученных моделей и трансформеров scikit-learn в код на C, C#, Go, Java, JavaScript, PHP или Ruby.

Звёзды
1,304
Форки
168
Открытые issues
4
Последний коммит
позавчера

Что это?

sklearn-porter принимает обученный estimator, transformer или pipeline из scikit-learn и генерирует исходный код на C, C#, Go, Java, JavaScript, PHP или Ruby. Сгенерированный код может выдавать предсказания без среды выполнения Python — например, на встроенных устройствах, в браузерах или в существующих приложениях на других языках.

Проект поддерживает широкий набор классификаторов, регрессоров, детекторов выбросов и трансформеров для предобработки или отбора признаков, включая ансамбли деревьев, линейные модели, SVM и нейронные сети. Перенесённые estimator должны выдавать те же предсказания, что и исходные модели, а перенесённые трансформеры — преобразовывать признаки тем же образом.

Данные модели можно встроить в код, экспортировать в отдельный JSON-файл или включить в логику в виде вложенных операторов if-else. Пакет предоставляет Python API, инструмент командной строки `porter` и вспомогательную функцию `test`, которая сравнивает результаты перенесённой модели с исходной. Для установки требуются Python 3.11+ и scikit-learn 1.8+.

Ключевые возможности

  • 01Транспилирует классификаторы, регрессоры и детекторы выбросов на семь языков.
  • 02Переносит распространённые трансформеры и pipeline для предобработки и отбора признаков.
  • 03Предлагает шаблоны со встроенными, экспортированными и объединёнными данными модели.
  • 04Предоставляет Python API и интерфейс командной строки `porter`.
  • 05Включает функцию тестирования, которая сравнивает предсказания перенесённой модели с исходной.

Сценарии использования

  • Запуск обученной модели scikit-learn на встроенном устройстве без Python.
  • Добавление предсказаний модели в бэкенд на Java, Go или PHP без отдельного сервиса Python.
  • Запуск классификатора в браузере с помощью JavaScript.

Быстрый старт

  1. 1

    Установите пакет с помощью uv

    uv add sklearn-porter
  2. 2

    Или установите его с помощью pip

    pip install sklearn-porter
  3. 3

    Обучите модель scikit-learn в Python и перенесите её с помощью port(clf, language='js')

Что важно знать

  • Требуются Python 3.11 или новее и scikit-learn 1.8 или новее.
  • Поддерживается только фиксированный список оценивателей и преобразователей scikit-learn.

В подборках

Темы

Частые вопросы

Что такое sklearn-porter?
Инструмент для транспиляции обученных моделей и трансформеров scikit-learn в код на C, C#, Go, Java, JavaScript, PHP или Ruby. sklearn-porter принимает обученный estimator, transformer или pipeline из scikit-learn и генерирует исходный код на C, C#, Go, Java, JavaScript, PHP или Ruby. Сгенерированный код может выдавать предсказания без среды выполнения Python — например, на встроенных устройствах, в браузерах или в существующих приложениях на других языках.
sklearn-porter можно использовать бесплатно? Какая у него лицензия?
sklearn-porter распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
sklearn-porter всё ещё поддерживается?
Активно поддерживается. Последний коммит в sklearn-porter — 5 нояб. 2026 г..
Для чего можно использовать sklearn-porter?
Запуск обученной модели scikit-learn на встроенном устройстве без Python. Добавление предсказаний модели в бэкенд на Java, Go или PHP без отдельного сервиса Python. Запуск классификатора в браузере с помощью JavaScript.
Как установить sklearn-porter?
Установите пакет с помощью uv: uv add sklearn-porter Или установите его с помощью pip: pip install sklearn-porter Обучите модель scikit-learn в Python и перенесите её с помощью port(clf, language='js')
Где скачать sklearn-porter?
Исходный код и инструкции по установке — на GitHub: https://github.com/nok/sklearn-porter

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Orange — инструмент визуального программирования с открытым исходным кодом для интеллектуального анализа данных, аналитики и визуализации на основе рабочих процессов с перетаскиванием элементов.

5,7 тыс.+1 за неделю1,1 тыс.PythonOtherОбновлён 24 часа назад

Опенсорсный LLM-агент, который пишет, запускает, отлаживает и дорабатывает код для машинного обучения с помощью поиска по дереву, пока не оптимизирует заданную пользователем метрику.

1,6 тыс.+16 за неделю237PythonMITОбновлён 22 дня назад