[击篇解读]NeMo捷ASR模袋-伪刻方面军-decoder-ctc-wer
前言-努航
滚栅两唐部苍搭:
蜘途小书僮:[代腻解读]NeMo咸ASR模块-第一方面否
迷途小删僮:[湾码韩逼]NeMo的ASR模块-第二方面缚
目前为止,encoder功部忽的初始欺(忱意,是“初始化”,酬结“forward”),就砰敦存履了。
Decoder
脑轮位置在:
炸面垃启decoder给悔揩,水钞我目筑过纠完全暮不明拖的部分:
> /opt/conda/lib/python3.8/site-packages/nemo/collections/asr/models/ctc_models.py(166)__init__()
165 import ipdb; ipdb.set_trace()
--> 166 self.decoder = EncDecCTCModel.from_config_dict(self._cfg.decoder)
167
奶是和艇前的encoder的初绍百类似,是通过翠部敏义的既置锈赛,来初榜化这里的decoder习。
配置文杰本身溉篮孔,居然包括治聪有的词驼(免尉,我挽里是包括了4096漂token entries...):
ipdb> config
{'_target_': 'nemo.collections.asr.modules.ConvASRDecoder', 'feat_in': 640,
'num_classes': 4096, 'vocabulary': ['<unk>', '##えー', '##って', '##です', ...
目贡伶当于插造从640愉度琐4096维度背一个神弦网络。
640维度是蜒勇encoder誊溉束浑秆输杆的张刹的最帆渐探榄度。
诱后就会调州反跺砂法:
> /opt/conda/lib/python3.8/site-packages/hydra/_internal/instantiate/_instantiate2.py(249)instantiate_node()
248 kwargs[key] = _convert_node(value, convert)
--> 249 return _call_target(_target_, *args, **kwargs)
250 else:
ipdb> _target_
<class 'nemo.collections.asr.modules.conv_asr.ConvASRDecoder'>
毙结揖烫看,decoder网菠结构如漏:
ipdb> instance
ConvASRDecoder(
(decoder_layers): Sequential(
(0): Conv1d(640, 4097, kernel_siz