codeplea/genann

simple neural network library in C99

解决的问题

Genann 提供了一种在 C 语言中实现前馈人工神经网络(ANN)的最小且轻量级的方法。它消除了重型机器学习框架的复杂性,为需要基本神经网络功能但无外部依赖的开发者提供了一个简单、快速且可靠的库。

工作原理

该库仅包含一个源文件和一个头文件。用户可以初始化具有特定输入数、隐藏层和输出数的网络。它支持通过标准反向传播或遗传算法、爬山法等替代方法进行训练,因为所有网络权重都存储在一个连续的内存块中,便于优化。它还包含多种内置激活函数,如 sigmoid、ReLU 和 tanh。

适用人群

希望使用可修改、无依赖的神经网络库完成简单任务(如 XOR 函数或基本数据集分类,例如 IRIS 数据集)的 C 开发者。

主要亮点

  • 零依赖:使用 C99 编写,无需任何外部库。
  • 高度集中:整个项目仅由两个文件组成(genann.cgenann.h)。
  • 灵活训练:支持反向传播以及直接搜索型数值优化。
  • 线程安全:专为多线程环境中的快速和安全使用而设计。
  • 持久化支持:内置函数可将训练好的网络保存到文件并从文件加载。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目