Kaldi Chain model 文件解析

nnet3-info 可以查看训练好的chain model 模型结构,如下:


final.mdl.head

注意点

  • 两个output,是因为有两个目标函数,一个是基于线性的,一个是基于CE的,实际结果是两个结果的加权值。训练中反向传播的时候也是用的加权值。作用是预防训练训偏掉了。 multitask learning?
  • 输入是40维fbank,lda层操作:首先做了一个扩帧到200维,然后做了lda,这里的lda并没有降维,只是起到了解相关的操作。输出仍然是200维。
  • 参数计算:
    tdnn1 2001024 + 1024
    tdnn2 2048
    1024 + 1024
    tdnn3 20481024 + 1024
    tdnn4 2048
    1024 + 1024
    tdnn5 20481024 + 1024
    output.affine component (1024
    1024 + 1024)+ (10246508 + 6508)
    output-xent.affine component (1024
    1024 + 1024)+ (1024*6508 + 6508)
    所有参数加起来正好等于最前面的24039128

Reference

http://kaldi-asr.org/doc/index.html
https://www.danielpovey.com/files/2015_interspeech_multisplice.pdf

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容