pytorch implementation of complex convolutional neural network
When using complex numbers as a domain of a neural network (such as speech enhancement) deep complex networks can be very effective.
Phase-Aware Speech Enhancement with Deep Complex U-Net is a great example. Use this as a building block of complex number targeted architecture.
pip install complexcnn
# Suppose X is a complex vector shape of [batch,channel,axis1,axis2] X = np.stack((X.real,X.imag),axis=1) # shape: [batch,2,channel,axis1,axis2] X = torch.Tensor(X).to(device)
Same as Pytorch Conv2d Parameters
from complexcnn.modules import ComplexConv ## Parameters Below are totally random input_channel = 3 output_channel = 24 kernel_size = (5,5) complex_conv = ComplexConv(input_channel, output_channel, kernel_size) Y = complex_conv(X)