Skip to content

Latest commit

 

History

History
60 lines (50 loc) · 3.52 KB

File metadata and controls

60 lines (50 loc) · 3.52 KB

Chapter 02 Integration: First Look / A First Neural Network / Linear Regression

本章关注“从零到第一个可训练模型”的最小闭环:数据表示 -> 简单模型 -> 前向 & 损失 -> 训练循环。以下列出概念与在项目中的工程抽象映射。

概念 ↔ 代码映射表

概念/知识点 书本示例 项目实现 / 文件 说明
标量 / 向量 / 张量基础 Numpy / Keras 示例 (依赖环境) 使用 TensorFlow 张量 (无需额外封装)
数据归一化 / 展平 MNIST reshape + /255 dlp.cli_prepare_data CLI 训练自动完成 reshape & 归一化
One-hot / Multi-hot 概念 文本/分类例子 dlp.data.vectorization (to_one_hot, multi_hot_encode) 统一向量化函数,可测试复用
最小回归示例 y=3x+2+noise 手写线性回归 dlp.models.linear_regression + CLI 合成数据 指令:--model linear_regression 自动生成数据
第一个分类 MLP MNIST Dense 模型 dlp.models.mnist_mlp 两层 Dense + softmax
前向传播 & 权重 手写 Dense / naive layer dlp.models.simple_layers.SimpleDense 展示自定义层参数定义与调用
初级训练循环 (loss 下降) for batch: forward/backward dlp.training.fit_basic 只跟踪 loss, 教学最小版本
指标初识 (accuracy) model.compile(metrics=[...]) mnist_mlp().compile(..., metrics=["accuracy"]) 在 CLI/示例中演示
模型保存 model.save CLI train 命令 统一输出 final_model_<name>.keras
实验复现 set random seed dlp.utils.set_seed CLI 支持 --seed 参数

关键文件概览

  • dlp/models/linear_regression.py:单 Dense 回归输出;用于演示拟合线性关系。
  • dlp/training/loops.py: fit_basic:最小手写训练循环 (Chapter 02 层级)。
  • dlp/data/vectorization.py:one-hot / multi-hot 编码函数;早期概念归档。
  • dlp/models/simple_layers.pySimpleDense 自定义层,桥接“手写参数”与 Keras 抽象。

典型使用 (线性回归)

from dlp.models import linear_regression
import numpy as np, tensorflow as tf

# 合成数据 y = 3x + 2 + 噪声
x = np.linspace(-1, 1, 200).astype("float32").reshape(-1,1)
y = 3 * x + 2 + 0.1 * np.random.randn(*x.shape).astype("float32")

model = linear_regression()
model.compile(optimizer="sgd", loss="mse", metrics=["mae"])
model.fit(x, y, epochs=5, batch_size=32, validation_split=0.1)

教学对比:fit_basic vs model.fit

维度 fit_basic model.fit
代码长度 极短 较长 (内部封装)
指标/回调 不支持 支持 metrics / callbacks
自定义控制 逐行可插入 通过回调/自定义训练步骤
适用阶段 理解梯度 & 参数更新 正式实验

完成标志 (Chapter 02)

  • 可以成功运行:dlp train --epochs 2 (MNIST) 与 dlp train --model linear_regression (回归)。
  • 了解 fit_basic 的梯度 Tape 使用方式。
  • 掌握 one-hot / multi-hot 的差异与场景。

后续扩展建议

任务 描述 价值
T1 SimpleDense 增加 L2 正则 (已规划) 引入正则化思路
T2 添加更多激活函数对比 理解非线性影响
T3 fit_basic 增加指标统计 平滑过渡到 Chapter 03

本文件定位:巩固 Chapter 02 书中概念与项目内抽象的直接映射,便于回溯学习路径。