You can manipulate the tensors in the state_dict directly before loading it.
Here is a simple example:
conv1 = nn.Conv2d(3, 6, 3)
conv2 = nn.Conv2d(3, 6, 2)

sd = conv1.state_dict()

# won't work
conv2.load_state_dict(sd)
# > RuntimeError...

# manipulate
sd['weight'] = sd['weight'][:, :, :2, :2]

# works
conv2.load_state_dict(sd)
# > <All keys matched successfully>