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.py:SimpleDense 自定义层,桥接“手写参数”与 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
自定义控制
逐行可插入
通过回调/自定义训练步骤
适用阶段
理解梯度 & 参数更新
正式实验
可以成功运行: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 书中概念与项目内抽象的直接映射,便于回溯学习路径。