Python 现代开发学习笔记

(三十六)练习与下一轮修改

完成两条主流程后,每次增加一项需求,并为它补一份输入、预期状态和失败时的检查。

练习 先推导什么 完成时核对什么
书目修改记录 新旧字段在哪里保存,哪个批次触发变化 修改一次后能比较前后值,再采集不增加假修改
原始快照重清洗 同一原始输入、清洗规则版本和旧报告怎样关联 新规则可复查,旧报告仍有明确解释
大目录批量导入 页面数量、内存占用、批次完整与中断恢复怎样协调 中断后能继续,失败不留下不完整业务批次
新模型特征 CSV、FEATURES、预处理、网络输入和元数据分别要改哪处 旧版仍可预测,新版特征有明确解释
增加固定评估记录 固定哪一组数据,怎样保存逐条误差 两个候选在相同划分与指标上比较
发布失败恢复 在文件保存、指向切换、进程启动哪步制造失败 旧版完整可读,恢复后请求能核对版本

训练与推理可以继续运行 逐步预测演示:

# 项目文件:demos/prediction_walk.py
from pathlib import Path

import numpy as np
import torch

from modeldelivery.predict import Predictor

# 从 model_project 运行,读取同一套权重和四个缩放数组。
predictor = Predictor(Path("models"), "v1")
x = np.asarray([[35, 3]], dtype=np.float32)
s = predictor.scaler
z = ((x - s["x_mean"]) / s["x_scale"]).astype(np.float32)
with torch.inference_mode():
    standard_y = predictor.model(torch.from_numpy(z)).numpy()
pages = standard_y * s["y_scale"] + s["y_mean"]
print("x:", x, "z:", z, "标准化目标:", standard_y, "页数:", pages)
assert float(pages.item()) == predictor.pages(35, 3)
# 在 model_project 中,已经发布 v1 后运行,观察四个中间数组。
uv run python ../demos/prediction_walk.py
把本次 v1 的均值、标准差、权重和偏置代入 35 分钟与三次,逐步算到约 84.005 页

阅读过程中,先从图中手算标准化输入,再与演示输出比较。接着改成另一条输入,确认变化发生在哪列、模型怎样组合两个特征、目标最后怎样还原单位。前面的每个库都在这里承担一个具体动作;下一轮扩展时,就可以沿着输入、状态和输出找到该修改的位置。

本章习题解答与推导 按题号整理实现、过程说明与运行检查,可在完成练习后逐项对照。

笔记正文与全部题解 · Ctrl / ⌘ K