Unexpected key(s) in state_dict Error when calling `load_from_checkpoint`
❓ Questions and Help
What is your question?
Unexpected key(s) in state_dict Error when calling load_from_checkpoint
Code
class smallCNN(pl.LightningModule):
    def __init__(self, out_class) -> None:
        super().__init__()
        self.net_1 = nn.Sequential(nn.Conv2d(3, out_channels=8,kernel_size=3,stride=1,padding=1),
                                    nn.ReLU(inplace=True),
                                    nn.BatchNorm2d(8),
                                    nn.MaxPool2d(2,2),
                                    nn.Conv2d(8, out_channels=16,kernel_size=3,stride=1,padding=1),
                                    nn.ReLU(inplace=True),
                                    nn.BatchNorm2d(16),
                                    nn.MaxPool2d(2,2),
                                    nn.Conv2d(16, out_channels=32,kernel_size=3,stride=1,padding=1),
                                    nn.ReLU(inplace=True),
                                    nn.BatchNorm2d(32),
                                    nn.MaxPool2d(2,2)
                                    )
        self.net_2 = nn.Sequential(nn.Linear(512,out_class))
    def forward(self, x):
        out1 = self.net_1(x)
        x = out1.view(x.shape[0],-1)
        out2 = self.net_2(x)
        return out1, out2

class Model(pl.LightningModule):
    def __init__(self,load_model=True, **kwargs) -> None:
        super().__init__()
        self.save_hyperparameters()
        if load_model:
            self.pre_CNN_here = smallCNN.load_from_checkpoint('./model_file/pretrain/lightning_logs/version_0/checkpoints/epoch=4.ckpt', out_class=256)
        else:
            self.pre_CNN_here = smallCNN(256)
        self.criterion = Loss.SparseCircleLoss(m=0.25, emdsize= 256, class_num= self.hparams.class_num, gamma=128)
    def configure_optimizers(self):
        ....
    def training_step(self, batch, batch_idx):
        ....
        result = TrainResult(minimize=loss, checkpoint_on=loss)
        result.log('Train/Loss', loss, on_step=False, on_epoch=True)
        return result
    def forward(self, batch):
        ....

if __name__=="__main__":
    PreTrain_flag = True
    
    parser = ArgumentParser(add_help=False)
    if PreTrain_flag:
        #! PreTrain Para
        parser.add_argument('--max_epochs', type=int, default=500)
    else:
        #! Train Para
        parser.add_argument('--load_pretrain', type=bool, default=True)
        parser.add_argument('--max_epochs', type=int, default=500)

    parser.add_argument('--check_val_every_n_epoch', type=int, default=5)
    parser.add_argument('--gpus', type=int, default=1)
    parser.add_argument('--fast_dev_run', type=bool, default=False) #快速实验
    args = parser.parse_args()
    
    if PreTrain_flag:
        pre_model = Model(**vars(args), load_model = False)
        trainer = pl.Trainer.from_argparse_args(args, default_root_dir='./model_file/pretrain/')
        trainer.fit(pre_model)
    else:
        model = Model(**vars(args), load_model = True)
        trainer = pl.Trainer.from_argparse_args(args, default_root_dir='./model_file/normal/')
        trainer.fit(model)

First, I pretrain this model and save a checkpoint file. Then when I want to load this checkpoint file by .load_from_checkpoint(), an ERROR was raised:
RuntimeError
Error(s) in loading state_dict for smallCNN:
	Missing key(s) in state_dict: "net_1.0.weight", "net_1.0.bias", "net_1.2.weight", "net_1.2.bias", "net_1.2.running_mean", "net_1.2.running_var", "net_1.4.weight", "net_1.4.bias", "net_1.6.weight", "net_1.6.bias", "net_1.6.running_mean", "net_1.6.running_var", "net_1.8.weight", "net_1.8.bias", "net_1.10.weight", "net_1.10.bias", "net_1.10.running_mean", "net_1.10.running_var", "net_2.0.weight", "net_2.0.bias". 
	Unexpected key(s) in state_dict: "pre_CNN_here.net_1.0.weight", "pre_CNN_here.net_1.0.bias", "pre_CNN_here.net_1.2.weight", "pre_CNN_here.net_1.2.bias", "pre_CNN_here.net_1.2.running_mean", "pre_CNN_here.net_1.2.running_var", "pre_CNN_here.net_1.2.num_batches_tracked", "pre_CNN_here.net_1.4.weight", "pre_CNN_here.net_1.4.bias", "pre_CNN_here.net_1.6.weight", "pre_CNN_here.net_1.6.bias", "pre_CNN_here.net_1.6.running_mean", "pre_CNN_here.net_1.6.running_var", "pre_CNN_here.net_1.6.num_batches_tracked", "pre_CNN_here.net_1.8.weight", "pre_CNN_here.net_1.8.bias", "pre_CNN_here.net_1.10.weight", "pre_CNN_here.net_1.10.bias", "pre_CNN_here.net_1.10.running_mean", "pre_CNN_here.net_1.10.running_var", "pre_CNN_here.net_1.10.num_batches_tracked", "pre_CNN_here.net_2.0.weight", "pre_CNN_here.net_2.0.bias". 
  File "/home/zpy/MyProject/3d-lstm/mainOrg.py", line 40, in __init__
    self.pre_CNN_here = Model.lstmSmall.smallCNN.load_from_checkpoint('./model_file/pretrain/lightning_logs/version_0/checkpoints/epoch=4.ckpt', out_class=256)
  File "/home/zpy/MyProject/3d-lstm/mainOrg.py", line 221, in <module>
    pre_model = PretrainModel(**vars(args))

What have you tried?
I follow the tutorial to write my code.
What's your environment?

OS: Linux
Version: 0.9.0

Additional Info
This is my hyperparameters:
check_val_every_n_epoch: 5
fast_dev_run: false
gpus: 1
max_epochs: 500