深度学习

文件执行先后顺序及具体用法归纳

  1. 执行顺序
segment_chinese.py → generate_vocab.py 
→ data.py → data_utils.py (被调用) → 
validation.py
  1. 各文件具体用法
    ① segment_chinese.py
  • 功能 :中文文本分词预处理

  • 执行时机 :数据准备阶段第一步

  • 用法 :

    python segment_chinese.py
    
  • 关键流程 :

    • 使用 jieba 对 data/cn.txt 进行分词
    • 生成 data/cn_segmented.txt
    • 自动备份原始文件为 .backup 格式
    • 输出分词样例和后续操作指引(重命名文件→生成词汇表→训练模型)
  • 依赖 :需安装 jieba 库(脚本内置自动安装逻辑)
    ② generate_vocab.py

  • 功能 :生成中英文词汇表

  • 执行时机 :分词完成后,模型训练前

  • 用法 :

    python generate_vocab.py
    
  • 关键流程 :

    • 处理中文:使用 jieba 分词并保留单字,确保覆盖度
    • 处理英文:使用正则提取单词和标点
    • 生成格式为 word\tcount 的词汇表文件( cn.txt.vocab.tsv 和 en.txt.vocab.tsv )
    • 自动添加特殊标记( , , ,
  • 输出 :词汇量统计和文件保存路径
    ③ data.py

  • 功能 :数据加载与预处理核心模块

  • 执行时机 :模型训练/预测时被调用

  • 用法 :通过 data_read 函数被 train.py 或 predict.py 导入使用

  • 关键流程 :

    # 示例调用
    input_max, target_max, en_dict, 
    cn_dict, data, target_idx2word = 
    data_read('data/', 'train')
    
  • 核心功能 :

    • 读取中英文文本文件和词汇表
    • 为解码器输入/输出添加 标记
    • 返回词汇表大小、字典映射和格式化训练数据
      ④ utils/data_utils.py
  • 功能 :数据处理工具函数库

  • 执行时机 :被 data.py 等模块实时调用

  • 核心函数 :

    • load_vocab() :加载词汇表并创建 word_to_index 映射
    • convert_words_to_indices() :将文本序列转换为模型输入张量
    • fill_with_pad() :在结束标记后填充
  • 特点 :模块加载时自动执行 load_vocab() ,确保全局词汇表可用
    ⑤ utils/validation.py

  • 功能 :模型验证与评估工具

  • 执行时机 :模型训练完成后

  • 用法 :

    python -m utils.validation --model 
    model/train/last.pth --output 
    validation_report.json
    
  • 核心验证内容 :

    • 模型结构(编码器/解码器层数、参数数量)
    • 权重检查(NaN/无穷值检测、统计信息)
    • 输入输出验证(前向传播测试、形状检查)
    • 注意力权重归一化验证
    • 梯度流检查(反向传播测试)
  • 输出 :JSON格式验证报告和控制台摘要

  1. 关键依赖关系
graph LR
    A[segment_chinese.py] -->|生成分词文
    件| B[generate_vocab.py]
    B -->|生成词汇表| C[data.py]
    C -->|调用工具函数| D[utils/
    data_utils.py]
    E[train.py] -->|训练模型| F[utils/
    validation.py]
posted @ 2025-06-18 07:16  joiny-  阅读(16)  评论(0)    收藏  举报