Greetings,
What I want to do is rewriting the Keras code into PyTorch.
The only problem is how to implement Depthwise and Separable 2D convolution in PyTorch.
Here’s the original code from https://github.com/vlawhern/arl-eegmodels/blob/master/EEGModels.py 6
input1   = Input(shape = (1, Chans, Samples))

##################################################################
block1       = Conv2D(F1, (1, kernLength), padding = 'same',
                               input_shape = (1, Chans, Samples),
                               use_bias = False)(input1)
block1       = BatchNormalization(axis = 1)(block1)
block1       = DepthwiseConv2D((Chans, 1), use_bias = False, 
                               depth_multiplier = D,
                               depthwise_constraint = max_norm(1.))(block1)
block1       = BatchNormalization(axis = 1)(block1)
block1       = Activation('elu')(block1)
block1       = AveragePooling2D((1, 4))(block1)
block1       = dropoutType(dropoutRate)(block1)

block2       = SeparableConv2D(F2, (1, 16),
                               use_bias = False, padding = 'same')(block1)
block2       = BatchNormalization(axis = 1)(block2)
block2       = Activation('elu')(block2)
block2       = AveragePooling2D((1, 8))(block2)
block2       = dropoutType(dropoutRate)(block2)
    
flatten      = Flatten(name = 'flatten')(block2)

dense        = Dense(nb_classes, name = 'dense', 
                     kernel_constraint = max_norm(norm_rate))(flatten)
softmax      = Activation('softmax', name = 'softmax')(dense)

return Model(inputs=input1, outputs=softmax)