# 薄荷的神经网络架构框架 **Repository Path**: Mint-Space/MintsNets ## Basic Information - **Project Name**: 薄荷的神经网络架构框架 - **Description**: 薄荷的神经网络架构框架 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-19 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MintNet 🌿 > **教学型 Java 深度学习框架** — 清晰、模块化、零魔法 MintNet(薄荷网络)是一个从零实现的深度学习框架,专为学习神经网络原理而设计。每一行代码都有详细中文注释,解释**为什么这样做**而不仅是**做什么**。 ## 特性 - ✅ **自动微分** — 基于计算图的反向传播引擎(17 种运算) - ✅ **模块化架构** — 张量/自动微分/网络层/优化器完全解耦 - ✅ **30 种网络层** — 从 Dense 到 Transformer 到 GNN - ✅ **NumPy 风格 API** — 命名贴近 PyTorch,降低学习成本 - ✅ **零魔法** — 不用反射、不用注解处理器、不用字节码增强 - ✅ **125 个测试** — 梯度检验确保正确性 ## 支持的网络 | 类型 | 层 | |------|-----| | **基础** | Dense, ReLU, LeakyReLU, GELU, Swish, Mish, ELU, Softsign, PReLU, Sigmoid, Dropout, Flatten, Embedding | | **卷积** | Conv1D, Conv2D (im2col), ConvTranspose2D, MaxPool2D, AdaptiveAvgPool2D | | **归一化** | BatchNorm, LayerNorm, GroupNorm, InstanceNorm | | **循环** | RNN, LSTM (BPTT), GRU | | **Transformer** | MultiHeadAttention, PositionalEncoding, TransformerEncoderLayer, TransformerDecoderLayer | | **GNN** | GraphConv (GCN), GraphSAGE, GAT | | **生成模型** | ResidualBlock, SinusoidalEmbedding, UpSample2D, DownSample2D | ## 架构 ``` ┌─────────────────────────────────────────────────────┐ │ 用户接口层 MintNet.sequential() / Model.fit() │ ├─────────────────────────────────────────────────────┤ │ 神经网络层 Dense / Conv2D / LSTM / MHA / GCN │ ├─────────────────────────────────────────────────────┤ │ 自动微分 Variable / Function / BackwardEngine │ ├─────────────────────────────────────────────────────┤ │ 张量运算 Tensor + Broadcasting + Stride │ ├─────────────────────────────────────────────────────┤ │ 硬件后端 CPU / CUDA / OpenCL │ └─────────────────────────────────────────────────────┘ ``` ## 快速开始 ```java import ink.mint.*; import ink.mint.nn.modules.*; import ink.mint.optim.Adam; import ink.mint.losses.CrossEntropyLoss; // 构建模型 Model model = MintNet.sequential( new Dense(784, 256), new ReLU(), new Dropout(0.2f), new Dense(256, 10) ); // 训练 CrossEntropyLoss loss = new CrossEntropyLoss(); Adam optimizer = new Adam(model.parameters(), 0.001f); model.fit(trainLoader, loss, optimizer, 10); ``` ## 构建 ```bash # Maven mvn compile mvn test mvn exec:java -Dexec.mainClass="ink.mint.examples.MnistExample" # Gradle (备选) gradle build gradle test ``` ## 项目结构 ``` mintnet/ ├── src/main/java/ink/mint/ │ ├── MintNet.java # 框架入口 │ ├── core/ # Tensor, Device, 异常体系 │ ├── autograd/ # 自动微分引擎 │ │ └── functions/ # 17 种运算 │ ├── nn/ # 神经网络层 (30 种) │ │ ├── modules/ │ │ └── init/ # 参数初始化 │ ├── losses/ # 损失函数 (9 种) │ ├── optim/ # 优化器 (5 种) │ │ └── scheduler/ # 学习率调度 (4 种) │ ├── data/ # 数据加载 │ │ └── transforms/ # 数据变换 (10 种) │ ├── model/ # Model API │ ├── backend/ # 硬件后端 │ ├── utils/ # 工具类 │ └── examples/ # 7 个完整示例 ├── src/test/java/ # 125 个测试 ├── docs/ # 20 篇文档 ├── pom.xml # Maven ├── build.gradle # Gradle └── README.md ``` ## 示例 | 示例 | 网络类型 | 运行命令 | |------|---------|---------| | MNIST | MLP | `mvn exec:java -Dexec.mainClass="ink.mint.examples.MnistExample"` | | CIFAR-10 | CNN | `mvn exec:java -Dexec.mainClass="ink.mint.examples.Cifar10Example"` | | NLP | LSTM | `mvn exec:java -Dexec.mainClass="ink.mint.examples.NlpExample"` | | Transformer | Seq2Seq | `mvn exec:java -Dexec.mainClass="ink.mint.examples.TransformerExample"` | | GAN | 生成对抗 | `mvn exec:java -Dexec.mainClass="ink.mint.examples.GANExample"` | | GNN | 图卷积 | `mvn exec:java -Dexec.mainClass="ink.mint.examples.GNNExample"` | | Diffusion | 去噪扩散 | `mvn exec:java -Dexec.mainClass="ink.mint.examples.DiffusionExample"` | ## 工具 | 工具 | 用途 | |------|------| | `GradientClipper` | 梯度裁剪(防梯度爆炸) | | `GradientAccumulator` | 梯度累积(等效大 batch) | | `EarlyStopping` | 早停(防过拟合) | | `CheckpointSaver` | 检查点保存/恢复 | | `Profiler` | 性能分析 | | `IOUtils` | 模型序列化 | | `Logger` | 日志 | ## 设计原则 1. **教学优先** — 每个类都有详细中文注释 2. **模块解耦** — 可独立替换任何模块 3. **渐进复杂度** — 先 MLP,再 CNN,再 Transformer 4. **零魔法** — 所有代码可直接 trace 5. **梯度检验** — 每个 backward 都经过数值验证 ## 文档 完整文档见 `docs/` 目录: - 01-架构设计 / 02-张量模块 / 03-自动微分 / 04-神经网络层 - 05-优化器 / 06-损失函数 / 07-数据加载 / 08-模型API - 09-CNN / 10-RNN / 11-Transformer / 12-GAN/Diffusion / 13-GNN - 14-GPU加速 / 15-17 教程 - 18-API参考 / 19-调试指南 / 20-最佳实践 ## License MIT