DPTNet的学习

DPTNet和Sepformer原理是十分相似的,关键在于

1.两者在Decoder有区别,

2.中间的主要的Sepformer中的transformer构造不同。

整体:

由于都是借鉴的是DPRNN的数据处理过程,都是Encoder+Separation+Decoder。

Encoder

先通过一维卷积,再激活一下。

Decoder

基于TasNet,也就是mask方法,所以运用混合声源与mask网络相乘,然后用线性层网络Linear分析出有多少个声源,最后重叠相加,(这是代码的表现)

正常来说,应该是用转置卷积层,处理每一个层,然后用mask相乘,得到单个声源的信号。

分离网络:

先分块,然后LN归一化,放入两个改进过的transformer中:(如下)

然后就是最难解释的地方了:

这里overlap-add后的两个结果再经过一维卷积有什么用呢?得到了两个值,相乘后再激活,就是mask掩码?

看代码的话,感觉知道他怎么做的,但是不知道这样做为什么?

反正看代码,感觉比看论文好一些。

对于分割块部分的操作:

分两个步骤,没有单独的代码,放到卷积层里面,捎带着就给分离出来了

1.先把[N*L]在中间加入一个维度的信息,变成[N,1,L]。

2.然后通过卷积层,定义相应的参数(主要是卷积通道和步长之类的),把1——>2P,把L——>S。

下面是我对于代码里面的解释:

mixture_w=F.relu(self.conv1d_U(mixture))#[B,N,L]

DPTNet也是经过分割的,然后得出是[B,N,L]

代码里面的      图解里面的

B                       N

N                      2P

L                               S

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值