Exprgrad:基于可微数组语言的 Nim 深度学习框架
Nim 的实验性深度学习框架,用自研可微 DSL 描述模型并由 JIT 编译器优化执行。
Exprgrad 是 Nim 上的实验性深度学习框架,基于一门可微的数组编程语言。模型用自定义 DSL(通过 `++=` 宏嵌入 Nim 程序)描述,语言没有函数与结构化控制流,每个程序是一系列隐式嵌套循环中的单个表达式,输出张量形状与循环范围自动推断;类型只有 Scalar、Index、Boolean、Array[T] 四种。编译器能对 DSL 中的任意程序求导,无需手写反向传播,模型经 JIT 编译以加快执行;内置层也用同一语言实现,便于定制,也支持 `customGrad` 指定自定义梯度。README 明确警告项目仍处早期开发阶段,虽示例可运行但预期存在 bug,训练大模型所需的多线程与 GPU 支持可能缺失。