Ok. I found a way to do this.

Get state dict of the original resnet18 that was used in training.
Get state dict of the collectively trained model.
Create a new state dict from collectively trained model where keys == keys in step 1.

from torchvision import models
from torch.hub import load_state_dict_from_url
from collections import OrderedDict


# get best model state dict
file = 'best.ckpt'
best_model = torch.load(file, map_location=torch.device('cpu'))
best_state_dict = best_model['model_state']

# get original resnet18
cnn_model = "resnet18"
cnn = models.resnet18(num_classes=num_classes)
cnn_state_dict = load_state_dict_from_url(model_urls[cnn_model])

# create new tuned resnet using best_state_dict
tuned_cnn_state_dict = OrderedDict({k:v for k, v in \
                       best_state_dict.items() if k in cnn_state_dict})

# finally load the weights and biases
cnn.load_state_dict(tuned_cnn_state_dict, strict=False)