PyTorch風のテンソルAPI、autograd、コンパイラを備え、多数のアクセラレータバックエンドに対応する最小構成のディープラーニングフレームワーク。
- スター
- 1,415
- フォーク
- 102
- 未解決の Issue
- 166
- 最終コミット
- 19 日前
これは何?
Arraymancerは、NumPyやPyTorchに着想を得た、Nim製のndarray(テンソル)ライブラリです。スライス、ブロードキャスト、形状変更に対応したN次元配列に加え、行列積、最小二乗法、固有値分解、PCA、k-meansなどの線形代数の基本機能を提供します。
配列のコア機能に加えて、autogradベースのニューラルネットワークDSLを備えており、モデルの定義、学習、実行ができます。Linear、Conv2D、MaxPool2D、GRUなどのレイヤーが用意されています。テンソルは、BLAS/LAPACKを利用したOpenMP並列化ルーチンによりCPU上で実行できるほか、CUDA(cuDNNは任意)やOpenCLデバイスでも実行できます。ただし、GPUテンソルで利用できる演算はCPUテンソルより少なくなっています。
ライブラリはコンパイルが速く、主にBLASライブラリに依存する自己完結型のバイナリを生成します。READMEでは、組み込みデバイスやRaspberry Piに適していると説明されています。プロジェクトは実験的と位置づけられており、深層学習インターフェースもまだ最終調整中です。
主な機能
- 01最大6次元のテンソルに対応し、NumPy風のスライスと、+演算子による明示的なブロードキャストを提供。
- 02concat、reshape、split、permute、transposeなどの形状変更・結合操作。
- 03CSV、NumPy(.npy)、HDF5ファイルの読み書き。
- 04最小二乗法、固有値分解、共分散行列などの線形代数ルーチン。
- 05Linear、Conv2D、プーリング、GRUレイヤーを備えたautogradベースのニューラルネットワークDSL。
- 06CPU、CUDA、OpenCLのテンソルバックエンドに対応。ただし、CUDAとOpenCLで利用できる演算は少なめ。
ユースケース
- 高速な多次元配列を必要とする、Nimでの数値計算プロジェクト。
- autogradと簡潔なモデル定義構文を使った、Nimでの小規模なニューラルネットワークのプロトタイピング。
- 大規模なPython環境の導入が現実的でない、リソース制約のあるデバイスへのモデルのデプロイ。
- Nimコードで行う、PCA、k-means、最小二乗フィッティングなどの古典的な機械学習タスク。
クイックスタート
- 1
choosenimでNimをインストールする
- 2
nimbleでArraymancerをインストールする
nimble install arraymancer
使う前に知っておきたいこと
- このプロジェクトは実験的とされており、深層学習インターフェースは不安定で、現在も変更が続いています。
- Arraymancerを使用するには、BLASとLAPACKのライブラリをシステムにインストールする必要があります。
- CUDAおよびOpenCLのバックエンドは、CPUテンソルに比べて機能がまだ十分に揃っていません。
トピック
よくある質問
- Arraymancer とは?
- CPU、CUDA、OpenCLバックエンドを備え、数値計算や深層学習向けに設計された、Nim製の高速で使いやすいN次元テンソルライブラリ。 Arraymancerは、NumPyやPyTorchに着想を得た、Nim製のndarray(テンソル)ライブラリです。スライス、ブロードキャスト、形状変更に対応したN次元配列に加え、行列積、最小二乗法、固有値分解、PCA、k-meansなどの線形代数の基本機能を提供します。
- Arraymancer は無料で使えますか?ライセンスは?
- Arraymancer は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- Arraymancer は今もメンテナンスされていますか?
- 活発にメンテナンス中。Arraymancer の最終コミットは 2026年10月6日 です。
- Arraymancer は何に使えますか?
- 高速な多次元配列を必要とする、Nimでの数値計算プロジェクト。 autogradと簡潔なモデル定義構文を使った、Nimでの小規模なニューラルネットワークのプロトタイピング。 大規模なPython環境の導入が現実的でない、リソース制約のあるデバイスへのモデルのデプロイ。 Nimコードで行う、PCA、k-means、最小二乗フィッティングなどの古典的な機械学習タスク。
- Arraymancer のインストール方法は?
- choosenimでNimをインストールする nimbleでArraymancerをインストールする: nimble install arraymancer
- Arraymancer はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/mratsim/Arraymancer
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Pythonでコンパイラパイプラインをカスタマイズし、多様なハードウェアにモデルをデプロイできるオープンな機械学習コンパイルフレームワーク。
autogradを基盤とする動的ニューラルネットワークと、GPUアクセラレーション対応のテンソル計算を提供するPython深層学習フレームワーク。
作りながら学ぶML講座。NumPyで一から作る深層学習フレームワークと、Pyodideで採点する350問以上のブラウザ演習。
CUDA、ROCm、Metal、Vulkan、WebGPU、CPUバックエンドでの学習と推論に対応した、Rust製テンソルライブラリ兼ディープラーニングフレームワーク。
NVIDIA GPU向けの高性能GEMMや関連する線形代数カーネルを記述するための、CUDA C++テンプレートライブラリとPython DSL。