Минималистичный фреймворк для глубокого обучения с API тензоров в стиле PyTorch, autograd, компилятором и поддержкой множества ускорителей.
- Звёзды
- 1,415
- Форки
- 102
- Открытые issues
- 166
- Последний коммит
- 19 дней назад
Что это?
Arraymancer — библиотека ndarray (тензоров) на Nim, созданная под влиянием NumPy и PyTorch. Она предоставляет N-мерные массивы с поддержкой срезов, broadcasting, изменения формы и базовых операций линейной алгебры, таких как умножение матриц, метод наименьших квадратов, разложение на собственные значения, PCA и k-means.
Помимо базовых операций с массивами, библиотека включает DSL для нейросетей на основе autograd, позволяющий задавать, обучать и запускать модели со слоями Linear, Conv2D, MaxPool2D и GRU. Тензоры можно обрабатывать на CPU с помощью распараллеленных через OpenMP процедур на основе BLAS/LAPACK, а также на устройствах CUDA (при необходимости — с cuDNN) и OpenCL, хотя GPU-тензоры поддерживают меньше операций, чем CPU-тензоры.
Библиотека быстро компилируется и создает автономные бинарные файлы, зависящие главным образом от библиотеки BLAS; в README отмечается, что это делает ее подходящей для встраиваемых устройств и Raspberry Pi. Проект помечен как экспериментальный, а интерфейс для глубокого обучения все еще дорабатывается.
Ключевые возможности
- 01N-мерные тензоры размерностью до 6 со срезами в стиле NumPy и явным broadcasting с помощью +.
- 02Операции изменения формы и объединения: concat, reshape, split, permute и transpose.
- 03Чтение и запись файлов CSV, NumPy (.npy) и HDF5.
- 04Операции линейной алгебры, включая метод наименьших квадратов, разложение на собственные значения и матрицы ковариации.
- 05DSL для нейросетей на основе autograd со слоями Linear, Conv2D, pooling и GRU.
- 06Бэкенды тензоров для CPU, CUDA и OpenCL; CUDA и OpenCL поддерживают меньше операций.
Сценарии использования
- Проекты численных вычислений на Nim, которым нужны быстрые многомерные массивы.
- Прототипирование небольших нейросетей на Nim с autograd и лаконичным синтаксисом описания моделей.
- Развертывание моделей на устройствах с ограниченными ресурсами, где крупный стек Python не подходит.
- Задачи классического машинного обучения, например PCA, k-means и подгонка методом наименьших квадратов в коде на Nim.
Быстрый старт
- 1
Установить Nim с помощью choosenim
- 2
Установить Arraymancer с помощью nimble
nimble install arraymancer
Что важно знать
- Проект помечен как экспериментальный, а его интерфейс глубокого обучения считается нестабильным и продолжает меняться.
- Для работы Arraymancer необходимо установить в системе библиотеки BLAS и LAPACK.
- В бэкендах CUDA и OpenCL реализовано меньше функций, чем в CPU-тензорах.
Темы
Частые вопросы
- Что такое Arraymancer?
- Быстрая и удобная библиотека N-мерных тензоров на Nim с бэкендами для CPU, CUDA и OpenCL, предназначенная для численных вычислений и глубокого обучения. Arraymancer — библиотека ndarray (тензоров) на Nim, созданная под влиянием NumPy и PyTorch. Она предоставляет N-мерные массивы с поддержкой срезов, broadcasting, изменения формы и базовых операций линейной алгебры, таких как умножение матриц, метод наименьших квадратов, разложение на собственные значения, PCA и k-means.
- Arraymancer можно использовать бесплатно? Какая у него лицензия?
- Arraymancer распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- Arraymancer всё ещё поддерживается?
- Активно поддерживается. Последний коммит в Arraymancer — 6 окт. 2026 г..
- Для чего можно использовать Arraymancer?
- Проекты численных вычислений на Nim, которым нужны быстрые многомерные массивы. Прототипирование небольших нейросетей на Nim с autograd и лаконичным синтаксисом описания моделей. Развертывание моделей на устройствах с ограниченными ресурсами, где крупный стек Python не подходит. Задачи классического машинного обучения, например PCA, k-means и подгонка методом наименьших квадратов в коде на Nim.
- Как установить Arraymancer?
- Установить Nim с помощью choosenim Установить Arraymancer с помощью nimble: nimble install arraymancer
- Где скачать Arraymancer?
- Исходный код и инструкции по установке — на GitHub: https://github.com/mratsim/Arraymancer
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Открытый фреймворк для компиляции моделей машинного обучения: он позволяет настраивать конвейеры компилятора на Python и развёртывать модели на разных аппаратных платформах.
Фреймворк глубокого обучения на Python с ускоренными на GPU вычислениями над тензорами и динамическими нейросетями на основе autograd.
Курс по ML через практику: deep learning-фреймворк на чистом NumPy с нуля (модули CLI) и более 350 задач по программированию в браузере с проверкой в Pyodide.
Библиотека тензоров и фреймворк для глубокого обучения на Rust с обучением и инференсом на CUDA, ROCm, Metal, Vulkan, WebGPU и CPU.
Библиотека шаблонов CUDA C++ и DSL для Python для написания высокопроизводительных GEMM-ядер и других ядер линейной алгебры на GPU NVIDIA.