全球人名分类案例 - 思路总结
1 课程概览
本课对全球人名分类案例进行总结。以 RNN 模型为例,总结预测过程,并布置练习任务。练习顺序:先用 RNN 跑通,再用 LSTM,最后用 GRU。最终版将三种模型合并到一起。
2 核心概念与定义
- 预测过程:文本转张量 → 创建模型 → 加载参数 → 预测。
- top_k:返回前 k 名结果。
- 练习顺序:RNN → LSTM → GRU。
3 模型与算法详解
预测过程总结
以 RNN 模型为例。
1. 将输入文本转成张量
2. 创建模型
3. 加载训练好的参数
4. 预测(返回前 3 名)
练习顺序
| 步骤 | 内容 | 说明 |
|---|---|---|
| 1 | RNN 模型 | 先用 RNN 跑通案例 |
| 2 | LSTM 模型 | 再用 LSTM 跑一版 |
| 3 | GRU 模型 | GRU 与 RNN 类似,换对象即可 |
| 4 | 合并版 | 将三种模型合并到一起 |
| 5 | 优化版 | 优化损失函数、返回 DataLoader、导出数据 |
优化建议
可以优化的地方。
- 损失函数:使用其他损失函数
- 返回 DataLoader:直接返回数据加载器
- 导出数据:将损失、时间、准确率导出到文件
4 数学原理与推导
预测
$$\text{output} = \text{model}(\text{tensor}(\text{name}))$$
Top-K
$$\text{top_k} = \text{topk}(\text{output}, k=3)$$
5 代码示例
# === 练习顺序 ===
print("=== 全球人名分类案例 - 练习顺序 ===")
print("1. RNN 模型:先用 RNN 跑通案例")
print(" - 导包")
print(" - 数据预处理")
print(" - 构建 RNN 模型")
print(" - 模型训练")
print(" - 模型预测")
print()
print("2. LSTM 模型:再用 LSTM 跑一版")
print(" - 思路与 RNN 一样")
print()
print("3. GRU 模型:GRU 与 RNN 类似")
print(" - 换对象即可")
print()
print("4. 合并版:将三种模型合并到一起")
print(" - 建三个 .py 文件")
print(" - 合并到一起")
print(" - 模型训练、运行结果、绘图")
print()
print("5. 优化版:优化可以优化的地方")
print(" - 损失函数")
print(" - 返回 DataLoader")
print(" - 导出损失、时间、准确率到文件")
代码说明
| 步骤 | 内容 |
|---|---|
| 1 | RNN 模型 |
| 2 | LSTM 模型 |
| 3 | GRU 模型 |
| 4 | 合并版 |
| 5 | 优化版 |
6 重难点与易错提醒
- ❗重点:练习顺序:RNN → LSTM → GRU。
- ❗重点:GRU 与 RNN 类似,换对象即可。
- 💡技巧:先单独写三个 .py 文件,再合并到一起。
7 课堂问答精选
Q1:练习顺序是什么?
A:先用 RNN 跑通,再用 LSTM 跑一版,最后用 GRU(与 RNN 类似,换对象即可)。
Q2:如何优化案例?
A:①优化损失函数;②返回 DataLoader;③将损失、时间、准确率导出到文件。
Q3:预测过程是什么?
A:将输入文本转成张量 → 创建模型 → 加载训练好的参数 → 预测(返回前 3 名)。
8 本课小结
- 预测过程:文本转张量 → 创建模型 → 加载参数 → 预测。
- 练习顺序:RNN → LSTM → GRU。
- 优化建议:损失函数、返回 DataLoader、导出数据。
9 延伸思考
- 如何将三种模型合并到一起?
- 如何绘制对比图?