In your custom ResidualBlock implementation you are passing in_channels as well as out_channels as arguments, but are never using them and are hard-coding the channels instead as 1 input channel and 10 output channels.
Based on this, I would guess that self.block2 will raise the shape mismatch as it would expect to get an input with 1 input channel while the incoming activation (coming from self.block1) would have 10 channels.
Also, you are trying to set the in_/out_channels in block2 to 64, 64, which will also not work (as I previously described these values are not used currently but if they were they would also raise a shape mismatch).