Framework minimalista de deep learning com API de tensores no estilo PyTorch, autograd, compilador e suporte a vários backends de aceleradores.
- Estrelas
- 1,415
- Forks
- 102
- Issues abertas
- 166
- Último commit
- há 19 dias
O que é?
Arraymancer é uma biblioteca de ndarrays (tensores) escrita em Nim, inspirada no NumPy e no PyTorch. Ela oferece arrays N-dimensionais com operações de fatiamento, broadcasting, remodelagem e álgebra linear, como multiplicação de matrizes, mínimos quadrados, decomposição em autovalores, PCA e k-means.
Além do núcleo de arrays, a biblioteca inclui uma DSL de redes neurais baseada em autograd para definir, treinar e executar modelos, com camadas como Linear, Conv2D, MaxPool2D e GRU. Os tensores podem ser executados na CPU, com rotinas paralelizadas por OpenMP e implementadas sobre BLAS/LAPACK, ou em dispositivos CUDA (com cuDNN opcional) e OpenCL, embora os tensores na GPU ofereçam menos operações que os tensores na CPU.
A biblioteca compila rapidamente e gera binários autocontidos que dependem principalmente de uma biblioteca BLAS; segundo o README, isso a torna adequada para dispositivos embarcados e Raspberry Pi. O projeto está marcado como experimental, e sua interface de deep learning ainda está sendo finalizada.
Recursos principais
- 01Tensores N-dimensionais de até 6 dimensões, com fatiamento no estilo NumPy e broadcasting explícito usando +.
- 02Operações de remodelagem e junção, como concat, reshape, split, permute e transpose.
- 03Leitura e gravação de arquivos CSV, NumPy (.npy) e HDF5.
- 04Rotinas de álgebra linear, incluindo mínimos quadrados, decomposição em autovalores e matrizes de covariância.
- 05DSL de redes neurais baseada em autograd, com camadas Linear, Conv2D, de pooling e GRU.
- 06Backends de tensores para CPU, CUDA e OpenCL; CUDA e OpenCL oferecem menos operações.
Casos de uso
- Projetos de computação numérica em Nim que precisam de arrays multidimensionais rápidos.
- Prototipagem de redes neurais pequenas em Nim, usando autograd e uma sintaxe concisa para definir modelos.
- Implantação de modelos em dispositivos com recursos limitados, nos quais uma stack Python grande não é prática.
- Tarefas clássicas de machine learning, como PCA, k-means e ajuste por mínimos quadrados em código Nim.
Início rápido
- 1
Instalar Nim com choosenim
- 2
Instalar Arraymancer com nimble
nimble install arraymancer
Antes de usar
- O projeto está marcado como experimental, e sua interface de aprendizado profundo é considerada instável e continua mudando.
- O Arraymancer requer que uma biblioteca BLAS e uma LAPACK estejam instaladas no sistema.
- Os backends de CUDA e OpenCL têm menos recursos do que os tensores de CPU.
Tópicos
Perguntas frequentes
- O que é Arraymancer?
- Uma biblioteca rápida e ergonômica de tensores N-dimensional em Nim, com backends para CPU, CUDA e OpenCL, voltada à computação numérica e ao deep learning. Arraymancer é uma biblioteca de ndarrays (tensores) escrita em Nim, inspirada no NumPy e no PyTorch. Ela oferece arrays N-dimensionais com operações de fatiamento, broadcasting, remodelagem e álgebra linear, como multiplicação de matrizes, mínimos quadrados, decomposição em autovalores, PCA e k-means.
- Arraymancer é gratuito? Qual é a licença?
- Arraymancer é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- Arraymancer ainda é mantido?
- Manutenção ativa. O último commit de Arraymancer foi em 6 de out. de 2026.
- Para que posso usar Arraymancer?
- Projetos de computação numérica em Nim que precisam de arrays multidimensionais rápidos. Prototipagem de redes neurais pequenas em Nim, usando autograd e uma sintaxe concisa para definir modelos. Implantação de modelos em dispositivos com recursos limitados, nos quais uma stack Python grande não é prática. Tarefas clássicas de machine learning, como PCA, k-means e ajuste por mínimos quadrados em código Nim.
- Como instalar Arraymancer?
- Instalar Nim com choosenim Instalar Arraymancer com nimble: nimble install arraymancer
- Onde consigo Arraymancer?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/mratsim/Arraymancer
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Framework aberto de compilação de machine learning que permite personalizar pipelines de compilação em Python e implantar modelos em diversos alvos de hardware.
Framework de deep learning para Python que oferece computação de tensores acelerada por GPU e redes neurais dinâmicas com base em autograd.
Curso de ML na prática: framework de deep learning feito do zero com NumPy (módulos de CLI) e mais de 350 questões de programação no navegador, corrigidas pelo Pyodide.
Biblioteca de tensores e framework de deep learning em Rust para treinamento e inferência em backends CUDA, ROCm, Metal, Vulkan, WebGPU e CPU.
Biblioteca de templates CUDA C++ e DSL em Python para criar kernels GEMM e de álgebra linear relacionados, de alto desempenho, em GPUs NVIDIA.