Le-Xiaohuai-speech / DPCRN_DNS3

Implementation of paper "DPCRN: Dual-Path Convolution Recurrent Network for Single Channel Speech Enhancement"
188 stars 41 forks source link

模型训练由于分帧问题,会出现loss函数的输入和输出维度不匹配 #25

Open wangohaha opened 2 years ago

wangohaha commented 2 years ago

作者你好,模型报错如下: tensorflow.python.framework.errors_impl.InvalidArgumentError: 2 root error(s) found. (0) Invalid argument: Incompatible shapes: [16,16000] vs. [16,15872] [[{{node loss/enhanced_time_loss/sub}}]] [[loss/mul/_749]] (1) Invalid argument: Incompatible shapes: [16,16000] vs. [16,15872] [[{{node loss/enhanced_time_loss/sub}}]] 0 successful operations. 0 derived errors ignored.

个人理解应该就是模型分帧后丢掉了最后一帧不足的数据,在模型还原后,会出现原始维度不匹配的问题;我想到的笨方法是强行让分帧的数据正好是帧移的倍数,是否还有其他方法?

Le-Xiaohuai-speech commented 2 years ago

这主要是因为stft在边界没有做padding。有几种解决方法:第一种就是你的方法比较简单,音频样本裁剪成最接近的hopsize的倍数。 要么就参考librosa两边padding,但是要考虑到完美重构还是挺麻烦的,没有实现。之后给pytorch的代码,这些小问题就会减少很多。

---原始邮件--- 发件人: @.> 发送时间: 2022年6月29日(周三) 下午5:17 收件人: @.>; 抄送: @.***>; 主题: [Le-Xiaohuai-speech/DPCRN_DNS3] 模型训练由于分帧问题,会出现loss函数的输入和输出维度不匹配 (Issue #25)

作者你好,模型报错如下: tensorflow.python.framework.errors_impl.InvalidArgumentError: 2 root error(s) found. (0) Invalid argument: Incompatible shapes: [16,16000] vs. [16,15872] [[{{node loss/enhanced_time_loss/sub}}]] [[loss/mul/_749]] (1) Invalid argument: Incompatible shapes: [16,16000] vs. [16,15872] [[{{node loss/enhanced_time_loss/sub}}]] 0 successful operations. 0 derived errors ignored.

个人理解应该就是模型分帧后丢掉了最后一帧不足的数据,在模型还原后,会出现原始维度不匹配的问题;我想到的笨方法是强行让分帧的数据正好是帧移的倍数,是否还有其他方法?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

wangohaha commented 2 years ago

谢谢啦,收到了