小众AI

miniMNIST-c
miniMNIST-c - 一个最小的神经网络
在 C 语言中实现了一个最小的神经网络,用于对 MNIST 数据集中的手写数字进行分类。整个实现是 ~200 行代码,并且只使用标准 C 库。
  代码仓

该项目在 C 语言中实现了一个最小的神经网络,用于对 MNIST 数据集中的手写数字进行分类。整个实现是 ~200 行代码,并且只使用标准 C 库。

hminiMNIST

主要功能

  • 两层神经网络(输入 → 隐藏→输出)
  • 隐藏层的 ReLU 激活函数
  • 输出层的 Softmax 激活函数
  • 交叉熵损失函数
  • 随机梯度下降 (SGD) 优化器

性能

Epoch 1, Accuracy: 95.61%, Avg Loss: 0.2717, Time: 2.61 seconds
Epoch 2, Accuracy: 96.80%, Avg Loss: 0.1167, Time: 2.62 seconds
Epoch 3, Accuracy: 97.21%, Avg Loss: 0.0766, Time: 2.66 seconds
Epoch 4, Accuracy: 97.38%, Avg Loss: 0.0550, Time: 2.64 seconds
Epoch 5, Accuracy: 97.49%, Avg Loss: 0.0397, Time: 2.64 seconds
Epoch 6, Accuracy: 97.47%, Avg Loss: 0.0285, Time: 2.65 seconds
Epoch 7, Accuracy: 97.47%, Avg Loss: 0.0205, Time: 2.66 seconds
Epoch 8, Accuracy: 97.72%, Avg Loss: 0.0151, Time: 2.66 seconds
Epoch 9, Accuracy: 97.88%, Avg Loss: 0.0112, Time: 2.67 seconds
Epoch 10, Accuracy: 97.82%, Avg Loss: 0.0084, Time: 2.67 seconds
Epoch 11, Accuracy: 97.88%, Avg Loss: 0.0063, Time: 2.68 seconds
Epoch 12, Accuracy: 97.92%, Avg Loss: 0.0049, Time: 2.68 seconds
Epoch 13, Accuracy: 97.92%, Avg Loss: 0.0039, Time: 2.69 seconds
Epoch 14, Accuracy: 98.02%, Avg Loss: 0.0032, Time: 2.69 seconds
Epoch 15, Accuracy: 98.06%, Avg Loss: 0.0027, Time: 2.70 seconds
Epoch 16, Accuracy: 98.09%, Avg Loss: 0.0024, Time: 2.70 seconds
Epoch 17, Accuracy: 98.11%, Avg Loss: 0.0021, Time: 2.69 seconds
Epoch 18, Accuracy: 98.12%, Avg Loss: 0.0019, Time: 2.70 seconds
Epoch 19, Accuracy: 98.16%, Avg Loss: 0.0017, Time: 2.70 seconds
Epoch 20, Accuracy: 98.17%, Avg Loss: 0.0015, Time: 2.71 seconds

安装和使用

  • GCC 编译器

  • MNIST 数据集文件:

    • train-images.idx3-ubyte
    • train-labels.idx1-ubyte

编译

gcc -O3 -march=native -ffast-math -o nn nn.c -lm

使用

  1. 将 MNIST 数据集文件放在目录中。data/

  2. 编译程序。

  3. 运行可执行文件:

    ./nn
    

该程序将在 MNIST 数据集上训练神经网络,并输出每个 epoch 的准确率和平均损失。

配置

您可以在 中调整以下参数:nn.c

  • HIDDEN_SIZE:隐藏层中的神经元数
  • LEARNING_RATE:SGD 的学习率
  • EPOCHS:训练 epoch 的数量
  • BATCH_SIZE:用于训练的小批量大小
  • TRAIN_SPLIT:用于训练的数据比例(其余用于测试)

更多...


mcp-agent
一个基于 Model Context Protocol (MCP) 的简单、可组合的框架,用于构建智能代理。它旨在通过 MCP 服务器来管理代理的生命周期,并提供构建生产就绪的 AI 代理的简单模式。
nndeploy
nndeploy是一个简单易用、高性能、支持多端的AI推理部署框架。主要解决以下模型部署中的痛点。
one-api
通过标准的 OpenAI API 格式访问所有的大模型,统一 API 适配,可用于 key 管理与二次分发。