ptrblck:

I think the general idea looks alright, and I assume you are using grouped convolutions, as you are slicing the weight in two dimensions?


No, I didn’t use grouped convolutions yet. What would be the motivation behind this?
Another thing that I find confusing is that they use InvertedResidual Blocks (MobileNetV3) which look like input_channels --> hidden_channels --> hidden_channels --> output_channels. But my implementation from above requires input_channels == output_channels so I can’t actually use it for the MBConv-Block (input_channels != hidden_channels).
Edit: I think we should only use this SampleConv on the middle conv (hidden -> hidden) of the InvertedResidual Block. The in- and out-convolutions are just 1x1 and not that expensive.
From the figure it also seems like that the sampled channels are only concatenated and not “inplace-modified” like in my implementation. Wouldn’t that be very bad for succeeding layers as they see different types of feature-maps (produced with different kernels) at the same position?