What exactly is happening in this ResNet? Why multiply?

nn.Sequential(
block(in_channels , out_channels, *args, **kwargs, downsampling=downsampling),
*[block(out_channels * block.expansion,
out_channels, downsampling=1, *args, **kwargs) for _ in range(n - 1)]
)

I think the implementation of ResNet in PyTorch is complicated. They used this block expansions as factors, and if I recall they used dilation extensively although it was constant 1 all the time.

You may assume they wrote it this way to help their researches experiment.

If you need simpler implementation check it from resnet from scratch.

I understand it, but why exactly it’s shown block(—)*[block() for _ …]?