It looks like the actual factory to create the model is defiend here 9, i.e. as pretrainedmodels.models.xception(), while you created an instance of xception.Xception manually.
Since self.last_linear is only redefined in the factory (line of code 4), you could try to set the last_linear again to your custom linear layer:
self.xception_model = Xception(num_classes=2)
checkpoint = torch.load(model_path  + self.model_name + '.pt')
self.xception_model.last_linear = nn.Linear(2048, 2)
self.xception_model.load_state_dict(checkpoint)