Hi, Im running a MobileNet Version with GDC(global depthwise convolution)  in the last layer
My GDC layer look like this:
class GDC(Module):
    def __init__(self, embedding_size):
        super(GDC, self).__init__()
        self.conv_6_dw = Linear_block(512, 512, groups=512, kernel=(7,7), stride=(1, 1), padding=(0, 0))
        self.conv_6_flatten = Flatten()
        self.linear = Linear(512, embedding_size, bias=False)
        self.bn = BatchNorm1d(embedding_size)

    def forward(self, x):
        x = self.conv_6_dw(x)
        x = self.conv_6_flatten(x)
        x = self.linear(x)
        x = self.bn(x)
        return x

When I run, the code stuck in line x = self.linear(x) with the error:
RuntimeError: Expected self.scalar_type() == ScalarType::Float to be true, but got false.
I think the I do not fuse modules because fuse modules only support [Conv, Relu], [Conv, BatchNorm], [Conv, BatchNorm, Relu], [Linear, Relu] ( not [Linear, BatchNorm1D] ), so that self.linear(x) is using FloatType instead of IntType
How can I custom my network so that the model can be trainable ?
Sorry for any misunderstanding and inconveniences.