项目简介
本项目是一个从头开始实现的深度学习框架,主要用于学习和理解深度学习中的基本原理和算法。它为开发者提供了一个基础平台,方便设计和训练自己的神经网络模型。框架涵盖了神经网络的基础组件,如张量操作、网络层、激活函数、权重初始化器、损失函数以及优化器。
项目的主要特性和功能
- 张量操作:基于Tensor类实现,支持自动微分,便于进行反向传播。
- 网络层:实现了全连接层(DenseLayer),且支持扩展其他类型网络层(如卷积层、池化层等)。
- 激活函数:提供Sigmoid、Tanh、ReLU等常用激活函数以及恒等函数Linear。
- 权重初始化器:实现Xavier和He两种权重初始化方法,助力模型更好收敛。
- 损失函数:提供平方损失、对数似然损失和交叉熵损失等常用损失函数。
- 优化器:实现随机梯度下降(SGD)优化器,用于训练过程中更新权重。
- 数据加载器:提供批量数据加载器,方便进行批量训练和预测。
安装使用步骤
环境准备
确保Python 3.7版本已安装,并安装依赖库(如numpy)。
bash
pip install -r requirements.txt
数据准备
根据项目需求,准备相应的训练数据和测试数据。
bash
python data_generator.py --num 5000 --ratio 0.8
python data_generator.py --num 5000 --test
模型定义
使用提供的框架组件定义神经网络模型。 ```python from mini_torch.network import Network from mini_torch.layer import DenseLayer from mini_torch.activation import ReLU from mini_torch.loss import SquareLoss from mini_torch.optimizer import SGD
model = Network() model.add(DenseLayer(input_dim=2, output_dim=200)) model.add(ReLU()) model.add(DenseLayer(input_dim=200, output_dim=100)) model.add(ReLU()) model.add(DenseLayer(input_dim=100, output_dim=1))
optimizer = SGD(learning_rate=3e-4) loss_function = SquareLoss() ```
模型训练
使用提供的优化器和损失函数进行模型训练。
bash
./run.sh
模型评估
使用测试数据评估模型的性能。
python
predictions = model.predict(test_data)
loss = loss_function(predictions, test_labels)
print(f"Test Loss: {loss}")
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】