本项目用于你的课程“自主创意环节”实践:从零训练图像描述模型,并加入结构化中间表示(Noun List)来增强可解释性。
- 基线模型:图像 -> caption
- 创新模型:图像 -> noun list -> caption
- 对比实验:BLEU + 名词覆盖率 + 定性样例
project/
configs/
train_flickr8k.yaml
tools/
prepare_flickr8k.py
src/
data/
vocab.py
flickr8k_dataset.py
models/
structured_captioner.py
utils/
seed.py
metrics.py
checkpoint.py
train.py
evaluate.py
infer.py
requirements.txt
docs/experiment_report_template.md
pip install -r requirements.txtpython tools/prepare_flickr8k.py ^
--data_root ./data/flickr8k ^
--captions_file ./data/flickr8k/captions.txt ^
--split_dir ./data/flickr8k/splits ^
--output_dir ./data/processedpython train.py --config configs/train_flickr8k.yamlpython evaluate.py --config configs/train_flickr8k.yaml --ckpt outputs/best.ptpython infer.py --config configs/train_flickr8k.yaml --ckpt outputs/best.pt --image path/to/demo.jpg- 数据处理:caption 清洗、词表构建、名词提取逻辑。
- 训练循环:loss 计算、梯度更新、日志记录。
- 实验设计:基线 vs 结构化模型的公平对比。
- 错误分析:为什么某些样例生成失败,怎么定位问题。
- 第一目标是“全流程跑通”。
- 第二目标是“能解释每个模块在做什么”。
- 第三目标才是“指标优化”。