It seems your implementation of complex convolution combining 'grouped convolution' differs from others. I don't quite understand your implementation about the 'forward' in 'class ComplexConv1d', especially 'weight_B = torch.cat([self.B[:spl].data * (-1), self.B[spl:].data]); idea_part = F.conv1d(x, weight_B, None, stride=self.stride, padding=0, dilation=self.dilation, groups=2)'. What is your mean of 'idea channels', 'idea_part'? It would be appreciated if you can give me some detailed explanation about them.
It seems your implementation of complex convolution combining 'grouped convolution' differs from others. I don't quite understand your implementation about the 'forward' in 'class ComplexConv1d', especially 'weight_B = torch.cat([self.B[:spl].data * (-1), self.B[spl:].data]); idea_part = F.conv1d(x, weight_B, None, stride=self.stride, padding=0, dilation=self.dilation, groups=2)'. What is your mean of 'idea channels', 'idea_part'? It would be appreciated if you can give me some detailed explanation about them.