# StartZero **Repository Path**: tank2140896/start-zero ## Basic Information - **Project Name**: StartZero - **Description**: 自制深度学习框架(Deep Learning Framework)、从零开始、仅依赖numpy、自动微分、start-zero - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/tank2140896/start-zero - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-08-27 - **Last Updated**: 2026-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, 深度学习框架 ## README # 深度学习框架 V0.2.1 ## 一、重要说明 1. **安装**:`pip install start-zero` 2. **项目定位**:`深度学习框架的mini版,麻雀虽小五脏俱全,主要展现的是自动微分的核心处理机制` ## 二、未来规划 1. 持续优化代码并修正BUG 2. 增加函数、层、模型、优化器 ## 三、框架说明 1. **主要特点** - 处理标量和张量——Tensor类(依赖numpy) - 自动微分(Define-by-Run)——运行时动态图 - 高阶求导(反向传播的反向传播) - 提供函数、层、模型、优化器等模块 2. **暂不会去实现** - 静态图(Define-and-Run)——涉及领域特定语言 - 支持GPU(CPU和GPU切换)——需要重构代码结构 3. **目前支持51个函数**,详细列表请参见[函数列表](https://gitee.com/tank2140896/start-zero/tree/master/zero/ops/__init__.py) 4. **模型实现** - 基于谷歌论文《Attention Is All You Need》实现了具有编码器和解码器的Transformer模型 ### 示例:训练一个Transformer模型 ```python def train(): lr = 0.001 # 学习率 epoch = 500 # 迭代次数 batch_size = 5 # 批量处理 # 加载模型TransformerV1 model = TransformerV1(...) # 使用GPU加速(如果支持) # model.to_gpu() # 使用优化器Adam并安装模型 optimizer = Adam(lr).setup(model) for i in range(epoch): # 调用模型的正向传播 x_grad = model(...) # 计算损失值 loss = ... # 清空中间梯度 model.clear_tensors() # 反向传播 loss.backward() # 参数更新 optimizer.update() if i % 10 == 0: accuracy_out = ... print("准确率:" + str(accuracy_out) + "%,损失值:" + str(loss)) # 保存模型 model.save_parameters('transformer_v1_model') ``` ### 示例:高阶导数计算 ```python x = Tensor([3]) y = (x**2 + x*3 + 1) / (x + 2) y.backward() gx = x.grad print('一阶导数:', gx) # 一阶导数: Tensor([1.04]) x.clear_tensor() gx.backward() gx2 = x.grad print('二阶导数:', gx2) # 二阶导数: Tensor([-0.016]) ``` ## 四、发布到PyPI 1. 登录[PyPI官网](https://pypi.org)完成账号注册和安全认证 2. 安装插件(如:`E:\pyhton\python.exe -m pip install --upgrade pip setuptools wheel` 和 `E:\pyhton\python.exe -m pip install twine`) 3. 生成压缩包(`python setup.py sdist`) 4. 上传压缩包(如:`E:\python\python.exe -m twine upload dist/*`) - 注:完成2FA认证后,username是:`__token__`,password是:生成的token 5. 安装和卸载(`pip install start-zero`、`pip uninstall start-zero`) - 注:指定版本如:`pip install start-zero==1.0.0`,也可以使用 `<` 或 `<=` 等符号 ## 五、许可证 本项目遵循Apache License 2.0。有关详细信息,请参阅[LICENSE](https://gitee.com/tank2140896/start-zero/blob/master/LICENSE) 文件。