Closed CharlesSL closed 3 years ago
感谢指出,能看出这里有重复计算都是高手,给你点个赞!
这个地方这么写是为了配合 TF C 2.3.0版本的模型加载,因为不这样写C版本的推理会有问题,详见问题issue:
https://github.com/tensorflow/tensorflow/issues/44428 至于issue中回复的方法有没有work我没有尝试过,好像是有的work有的不work
transducer_wrap_python.py中有正确的推理方法 XD
感谢解惑,这个问题我暂时还没遇到,不过用tensorflow处理控制流变量的处理上倒是踩过很多坑,我采样了一些transducer的帧级别输出,以及辅助训练的ctc_dense网络的帧级输出,发现它们对齐后的误差并不大,我在考虑工程化方案中,分离encoder和decoder,将输出结果根据精度要求,采用transducer或ctc_dense+ctc_decode做infer,后者速度会提高很多。同时encoder在分离后可以并行处理,与不能并行的transducer分开处理,更适合生产环境
感谢分享嗷
今日更新的streaming结构是encoder和decoder分开了,其infer的速度还是非常可观的。
好的,后面再去研究一下,从项目里学到很多,感谢
在Transducer类中的perform_greedy方法里,循环中的pred_net用到了lstm进行解码,每次都会对所有decoded的完整序列走一遍lstm,实际只需要解码最后一步来判断是否输出0或者blank即可,在长序列预测下能节省大量时间