Un framework minimalista de deep learning con una API de tensores similar a PyTorch, autograd, un compilador y compatibilidad con numerosos aceleradores.
- Estrellas
- 1,415
- Forks
- 102
- Issues abiertos
- 166
- Último commit
- hace 18 días
¿Qué es?
Arraymancer es una biblioteca de ndarrays (tensores) escrita en Nim e inspirada en NumPy y PyTorch. Ofrece arreglos N-dimensionales con operaciones de slicing, broadcasting y reshape, además de primitivas de álgebra lineal como multiplicación de matrices, mínimos cuadrados, descomposición en autovalores, PCA y k-means.
Además del núcleo de arreglos, incluye un DSL de redes neuronales basado en autograd para definir, entrenar y ejecutar modelos, con capas como Linear, Conv2D, MaxPool2D y GRU. Los tensores pueden ejecutarse en la CPU mediante rutinas paralelizadas con OpenMP y respaldadas por BLAS/LAPACK, o en dispositivos CUDA (con cuDNN opcional) y OpenCL, aunque los tensores en GPU admiten menos operaciones que los de CPU.
La biblioteca compila rápido y genera binarios autónomos que dependen principalmente de una biblioteca BLAS; el README indica que esto la hace adecuada para dispositivos embebidos y Raspberry Pi. El proyecto está marcado como experimental y su interfaz de deep learning aún está en proceso de finalización.
Funciones clave
- 01Tensores N-dimensionales de hasta 6 dimensiones, con slicing al estilo de NumPy y broadcasting explícito mediante +.
- 02Operaciones para combinar y cambiar la forma, como concat, reshape, split, permute y transpose.
- 03Lectura y escritura de archivos CSV, NumPy (.npy) y HDF5.
- 04Rutinas de álgebra lineal que incluyen mínimos cuadrados, descomposición en autovalores y matrices de covarianza.
- 05DSL de redes neuronales basado en autograd, con capas Linear, Conv2D, de pooling y GRU.
- 06Backends de tensores para CPU, CUDA y OpenCL; CUDA y OpenCL ofrecen menos operaciones.
Casos de uso
- Proyectos de cálculo numérico en Nim que necesitan arreglos multidimensionales rápidos.
- Prototipado de redes neuronales pequeñas en Nim con autograd y una sintaxis concisa para definir modelos.
- Despliegue de modelos en dispositivos con recursos limitados, donde una pila grande de Python no resulta práctica.
- Tareas de machine learning clásico, como PCA, k-means y ajuste por mínimos cuadrados, en código Nim.
Inicio rápido
- 1
Instalar Nim con choosenim
- 2
Instalar Arraymancer con nimble
nimble install arraymancer
Antes de usarlo
- El proyecto está marcado como experimental y su interfaz de aprendizaje profundo se considera inestable y sigue cambiando.
- Arraymancer requiere que haya una biblioteca BLAS y otra LAPACK instaladas en el sistema.
- Los backends de CUDA y OpenCL tienen menos funciones que los tensores de CPU.
Temas
Preguntas frecuentes
- ¿Qué es Arraymancer?
- Una biblioteca rápida y ergonómica de tensores N-dimensionales en Nim, con backends para CPU, CUDA y OpenCL, orientada al cálculo numérico y al deep learning. Arraymancer es una biblioteca de ndarrays (tensores) escrita en Nim e inspirada en NumPy y PyTorch. Ofrece arreglos N-dimensionales con operaciones de slicing, broadcasting y reshape, además de primitivas de álgebra lineal como multiplicación de matrices, mínimos cuadrados, descomposición en autovalores, PCA y k-means.
- ¿Arraymancer es gratuito? ¿Qué licencia tiene?
- Arraymancer es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿Arraymancer sigue mantenido?
- Mantenimiento activo. El último commit de Arraymancer fue el 6 oct 2026.
- ¿Para qué puedo usar Arraymancer?
- Proyectos de cálculo numérico en Nim que necesitan arreglos multidimensionales rápidos. Prototipado de redes neuronales pequeñas en Nim con autograd y una sintaxis concisa para definir modelos. Despliegue de modelos en dispositivos con recursos limitados, donde una pila grande de Python no resulta práctica. Tareas de machine learning clásico, como PCA, k-means y ajuste por mínimos cuadrados, en código Nim.
- ¿Cómo se instala Arraymancer?
- Instalar Nim con choosenim Instalar Arraymancer con nimble: nimble install arraymancer
- ¿Dónde consigo Arraymancer?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/mratsim/Arraymancer
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un framework abierto de compilación de machine learning que permite personalizar pipelines de compilación en Python y desplegar modelos en distintos tipos de hardware.
Framework de deep learning para Python que ofrece operaciones con tensores aceleradas por GPU y redes neuronales dinámicas basadas en autograd.
Curso de ML basado en la práctica: crea desde cero un framework de deep learning con NumPy y resuelve más de 350 ejercicios de código en el navegador, evaluados con Pyodide.
Biblioteca de tensores y framework de deep learning en Rust para entrenamiento e inferencia con backends CUDA, ROCm, Metal, Vulkan, WebGPU y CPU.
Biblioteca de plantillas de CUDA C++ y DSL de Python para escribir kernels GEMM y de álgebra lineal de alto rendimiento en GPU NVIDIA.