j-marple-dev / model_compression

PyTorch Model Compression
MIT License
230 stars 25 forks source link

Pruning 한 모델을 가지고 테스트를 하고 싶은데 어떻게 하면 될까요? #18

Closed godhj93 closed 3 years ago

godhj93 commented 3 years ago

Pruning한 모델의 성능을 검증하고자 src/trainer.py 에 있는 run_one_epoch 메서드를 아래와 같이 수정하였습니다.

    def run_one_epoch(
        self,
        epoch: int,
        extra_log_info: List[Tuple[str, float, Callable[[float], str]]] = None,
    ) -> None:
        """Train one epoch and run testing and logging."""
        self.lr_scheduler(self.optimizer, epoch)

        # train
        #train_loss, train_stat = self.train_one_epoch()

        # test
        test_loss, test_stat = self.test_one_epoch()
        print(test_loss,test_stat)
        # save all params that showed the best acc
        # test_acc = test_stat["model_acc"]
        # if test_acc > self.best_acc:
        #     self.best_acc = test_acc
        #     filename = str(epoch) + "_" + f"{self.best_acc:.2f}".replace(".", "_")
        #     self.save_params(self.model_save_dir, filename, epoch)

        # # log
        # if not extra_log_info:
        #     extra_log_info = []
        # lr = self.optimizer.param_groups[0]["lr"]
        # log_info: List[Tuple[str, float, Callable[[float], str]]] = []
        # log_info.append(("train/lr", lr, default_format))
        # log_info.append(("train/loss", train_loss, default_format))
        # log_info += [("train/" + k, v, percent_format) for k, v in train_stat.items()]
        # log_info.append(("test/loss", test_loss, default_format))
        # log_info += [("test/" + k, v, percent_format) for k, v in test_stat.items()]
        # log_info.append(("test/best_acc", self.best_acc, percent_format))
        # self.log_one_epoch(epoch, log_info + extra_log_info)

그 후 model_compression/ 에 test.py 파일을 만들고 다음과 같이 작성하였습니다.


# -*- coding: utf-8 -*-
"""Training Runner.

- Author: Curt-Park
- Email: jwpark@jmarple.ai
"""

import argparse

from src.runners import curr_time, initialize
from src.runners.trainer import Trainer

# arguments
parser = argparse.ArgumentParser(description="Model trainer.")
parser.add_argument("--multi-gpu", action="store_true", help="Multi-GPU use")
parser.add_argument("--gpu", default=0, type=int, help="GPU id to use")
parser.add_argument(
    "--finetune", type=str, default="", help="Model path to finetune (pth.tar)"
)
parser.add_argument(
    "--resume",
    type=str,
    default="",
    help="Input log directory name to resume in save/checkpoint",
)
parser.add_argument(
    "--half", dest="half", action="store_true", help="Use half precision"
)
parser.add_argument(
    "--wlog", dest="wlog", action="store_true", help="Turns on wandb logging"
)
parser.add_argument(
    "--config",
    type=str,
    default="config/train/simplenet.py",
    help="Configuration path (.py)",
)
parser.set_defaults(half=False)
parser.set_defaults(multi_gpu=False)
parser.set_defaults(wlog=False)
args = parser.parse_args()

# initialize
config, dir_prefix, device = initialize(
    "train", args.config, args.resume, args.multi_gpu, args.gpu
)
if args.resume:
    wandb_name = args.resume
    finetune = ""
else:
    wandb_name = curr_time
    finetune = args.finetune
wandb_init_params = dict(config=config, name=wandb_name, group=args.config)

# run training
trainer = Trainer(
    config=config,
    dir_prefix=dir_prefix,
    checkpt_dir="train",
    finetune=finetune,
    wandb_log=args.wlog,
    wandb_init_params=wandb_init_params,
    device=device,
    half=args.half,
)
trainer.run(args.resume)

그 후 다음과 같이 명령어를 입력했는데 아래와 같은 에러가 나옵니다.

hj@lab:~/hdd/hdd2000/add/model_compression$ python test.py --config config/train/cifar100/densenet_small.py --finetune my_work/models/LTH/171_62_87.pth.tar 

2021-03-19 01:41:03,446 - config_validator.py:44 - INFO - [Config]  SEED: 777   AUG_TRAIN: randaugment_train_cifar100   AUG_TRAIN_PARAMS: {'n_select': 2, 'level': None}    AUG_TEST: simple_augment_test_cifar100  CUTMIX: {'beta': 1, 'prob': 0.5}    DATASET: CIFAR100   MODEL_NAME: densenet    MODEL_PARAMS: {'num_classes': 100, 'inplanes': 24, 'growthRate': 12, 'compressionRate': 2, 'block_configs': (16, 16, 16)}   CRITERION: CrossEntropy CRITERION_PARAMS: {'num_classes': 100, 'label_smoothing': 0.1}  LR_SCHEDULER: WarmupCosineLR    LR_SCHEDULER_PARAMS: {'warmup_epochs': 10, 'start_lr': 0.001, 'min_lr': 1e-05, 'n_rewinding': 1}    BATCH_SIZE: 64  LR: 0.1 MOMENTUM: 0.9   WEIGHT_DECAY: 0.0001    EPOCHS: 300 N_WORKERS: 20
Traceback (most recent call last):
  File "test.py", line 65, in <module>
    half=args.half,
  File "/hdd_ext/hdd2000/add/model_compression/src/runners/trainer.py", line 62, in __init__
    self.load_model(finetune)
  File "/hdd_ext/hdd2000/add/model_compression/src/runners/trainer.py", line 316, in load_model
    self.model, checkpt["state_dict"], with_mask=with_mask
  File "/hdd_ext/hdd2000/add/model_compression/src/models/utils.py", line 42, in initialize_params
    model.load_state_dict(model_dict)
  File "/home/hj/anaconda3/envs/ML/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1224, in load_state_dict
    self.__class__.__name__, "\n\t".join(error_msgs)))
RuntimeError: Error(s) in loading state_dict for DenseNet:
    size mismatch for stem.bn.weight: copying a param with shape torch.Size([24, 3, 3, 3]) from checkpoint, the shape in current model is torch.Size([24]).
    size mismatch for dense_blocks.0.layers.0.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 24, 1, 1]).
    size mismatch for dense_blocks.0.layers.0.conv1.bn.weight: copying a param with shape torch.Size([24]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.0.conv1.bn.bias: copying a param with shape torch.Size([24]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.0.conv1.bn.running_mean: copying a param with shape torch.Size([48, 24, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.0.conv1.bn.running_var: copying a param with shape torch.Size([48, 24, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.0.conv2.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.0.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.0.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.0.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.0.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.1.conv1.conv.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48, 36, 1, 1]).
    size mismatch for dense_blocks.0.layers.1.conv1.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.1.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.1.conv1.bn.running_mean: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.1.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.1.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.1.conv2.bn.running_mean: copying a param with shape torch.Size([48, 36, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.1.conv2.bn.running_var: copying a param with shape torch.Size([48, 36, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.2.conv1.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([48, 48, 1, 1]).
    size mismatch for dense_blocks.0.layers.2.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.2.conv2.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.3.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 60, 1, 1]).
    size mismatch for dense_blocks.0.layers.3.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.3.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.3.conv1.bn.running_mean: copying a param with shape torch.Size([48, 48, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.3.conv1.bn.running_var: copying a param with shape torch.Size([48, 48, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.3.conv2.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.3.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.3.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.3.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.3.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.4.conv1.conv.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48, 72, 1, 1]).
    size mismatch for dense_blocks.0.layers.4.conv1.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.4.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.4.conv1.bn.running_mean: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.4.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.4.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.4.conv2.bn.running_mean: copying a param with shape torch.Size([48, 60, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.4.conv2.bn.running_var: copying a param with shape torch.Size([48, 60, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.5.conv1.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([48, 84, 1, 1]).
    size mismatch for dense_blocks.0.layers.5.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.5.conv2.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.6.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 96, 1, 1]).
    size mismatch for dense_blocks.0.layers.6.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.6.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.6.conv1.bn.running_mean: copying a param with shape torch.Size([48, 72, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.6.conv1.bn.running_var: copying a param with shape torch.Size([48, 72, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.6.conv2.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.6.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.6.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.6.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.6.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.7.conv1.conv.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48, 108, 1, 1]).
    size mismatch for dense_blocks.0.layers.7.conv1.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.7.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.7.conv1.bn.running_mean: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.7.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.7.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.7.conv2.bn.running_mean: copying a param with shape torch.Size([48, 84, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.7.conv2.bn.running_var: copying a param with shape torch.Size([48, 84, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.8.conv1.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([48, 120, 1, 1]).
    size mismatch for dense_blocks.0.layers.8.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.8.conv2.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.9.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 132, 1, 1]).
    size mismatch for dense_blocks.0.layers.9.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.9.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.9.conv1.bn.running_mean: copying a param with shape torch.Size([48, 96, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.9.conv1.bn.running_var: copying a param with shape torch.Size([48, 96, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.9.conv2.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.9.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.9.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.9.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.9.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.10.conv1.conv.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48, 144, 1, 1]).
    size mismatch for dense_blocks.0.layers.10.conv1.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.10.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.10.conv1.bn.running_mean: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.10.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.10.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.10.conv2.bn.running_mean: copying a param with shape torch.Size([48, 108, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.10.conv2.bn.running_var: copying a param with shape torch.Size([48, 108, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.11.conv1.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([48, 156, 1, 1]).
    size mismatch for dense_blocks.0.layers.11.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.11.conv2.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.12.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 168, 1, 1]).
    size mismatch for dense_blocks.0.layers.12.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.12.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.12.conv1.bn.running_mean: copying a param with shape torch.Size([48, 120, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.12.conv1.bn.running_var: copying a param with shape torch.Size([48, 120, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.12.conv2.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.12.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.12.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.12.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.12.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.13.conv1.conv.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48, 180, 1, 1]).
    size mismatch for dense_blocks.0.layers.13.conv1.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.13.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.13.conv1.bn.running_mean: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.13.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.13.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.13.conv2.bn.running_mean: copying a param with shape torch.Size([48, 132, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.13.conv2.bn.running_var: copying a param with shape torch.Size([48, 132, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.14.conv1.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([48, 192, 1, 1]).
    size mismatch for dense_blocks.0.layers.14.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.14.conv2.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.15.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 204, 1, 1]).
    size mismatch for dense_blocks.0.layers.15.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.15.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.15.conv1.bn.running_mean: copying a param with shape torch.Size([48, 144, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.15.conv1.bn.running_var: copying a param with shape torch.Size([48, 144, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.0.layers.15.conv2.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.0.layers.15.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.15.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.15.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.0.layers.15.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.1.conv.conv.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([108, 216, 1, 1]).
    size mismatch for dense_blocks.1.conv.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([108]).
    size mismatch for dense_blocks.1.conv.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([108]).
    size mismatch for dense_blocks.1.conv.bn.running_mean: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([108]).
    size mismatch for dense_blocks.1.conv.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([108]).
    size mismatch for dense_blocks.2.layers.0.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 108, 1, 1]).
    size mismatch for dense_blocks.2.layers.0.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.0.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.0.conv1.bn.running_mean: copying a param with shape torch.Size([48, 156, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.0.conv1.bn.running_var: copying a param with shape torch.Size([48, 156, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.0.conv2.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.0.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.0.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.0.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.0.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.1.conv1.conv.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48, 120, 1, 1]).
    size mismatch for dense_blocks.2.layers.1.conv1.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.1.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.1.conv1.bn.running_mean: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.1.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.1.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.1.conv2.bn.running_mean: copying a param with shape torch.Size([48, 168, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.1.conv2.bn.running_var: copying a param with shape torch.Size([48, 168, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.2.conv1.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([48, 132, 1, 1]).
    size mismatch for dense_blocks.2.layers.2.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.2.conv2.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.3.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 144, 1, 1]).
    size mismatch for dense_blocks.2.layers.3.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.3.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.3.conv1.bn.running_mean: copying a param with shape torch.Size([48, 180, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.3.conv1.bn.running_var: copying a param with shape torch.Size([48, 180, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.3.conv2.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.3.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.3.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.3.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.3.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.4.conv1.conv.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48, 156, 1, 1]).
    size mismatch for dense_blocks.2.layers.4.conv1.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.4.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.4.conv1.bn.running_mean: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.4.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.4.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.4.conv2.bn.running_mean: copying a param with shape torch.Size([48, 192, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.4.conv2.bn.running_var: copying a param with shape torch.Size([48, 192, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.5.conv1.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([48, 168, 1, 1]).
    size mismatch for dense_blocks.2.layers.5.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.5.conv2.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.6.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 180, 1, 1]).
    size mismatch for dense_blocks.2.layers.6.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.6.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.6.conv1.bn.running_mean: copying a param with shape torch.Size([48, 204, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.6.conv1.bn.running_var: copying a param with shape torch.Size([48, 204, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.6.conv2.conv.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.6.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.6.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.6.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.6.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.7.conv1.conv.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48, 192, 1, 1]).
    size mismatch for dense_blocks.2.layers.7.conv1.bn.weight: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.7.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.7.conv1.bn.running_mean: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.7.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.7.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.7.conv2.bn.running_mean: copying a param with shape torch.Size([108, 216, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.7.conv2.bn.running_var: copying a param with shape torch.Size([108, 216, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.8.conv1.conv.weight: copying a param with shape torch.Size([108]) from checkpoint, the shape in current model is torch.Size([48, 204, 1, 1]).
    size mismatch for dense_blocks.2.layers.8.conv1.bn.weight: copying a param with shape torch.Size([108]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.8.conv1.bn.bias: copying a param with shape torch.Size([108]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.8.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.8.conv1.bn.running_var: copying a param with shape torch.Size([108]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.8.conv2.conv.weight: copying a param with shape torch.Size([48, 108, 1, 1]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.8.conv2.bn.weight: copying a param with shape torch.Size([48, 108, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.8.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.8.conv2.bn.running_mean: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.8.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.9.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 216, 1, 1]).
    size mismatch for dense_blocks.2.layers.9.conv1.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.9.conv1.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.9.conv2.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.9.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.10.conv1.conv.weight: copying a param with shape torch.Size([48, 120, 1, 1]) from checkpoint, the shape in current model is torch.Size([48, 228, 1, 1]).
    size mismatch for dense_blocks.2.layers.10.conv1.bn.weight: copying a param with shape torch.Size([48, 120, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.10.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.10.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.10.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.10.conv2.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.10.conv2.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.11.conv1.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48, 240, 1, 1]).
    size mismatch for dense_blocks.2.layers.11.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.11.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.11.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.11.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.11.conv2.conv.weight: copying a param with shape torch.Size([48, 132, 1, 1]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.11.conv2.bn.weight: copying a param with shape torch.Size([48, 132, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.11.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.11.conv2.bn.running_mean: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.11.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.12.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 252, 1, 1]).
    size mismatch for dense_blocks.2.layers.12.conv1.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.12.conv1.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.12.conv2.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.12.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.13.conv1.conv.weight: copying a param with shape torch.Size([48, 144, 1, 1]) from checkpoint, the shape in current model is torch.Size([48, 264, 1, 1]).
    size mismatch for dense_blocks.2.layers.13.conv1.bn.weight: copying a param with shape torch.Size([48, 144, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.13.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.13.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.13.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.13.conv2.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.13.conv2.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.14.conv1.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48, 276, 1, 1]).
    size mismatch for dense_blocks.2.layers.14.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.14.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.14.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.14.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.14.conv2.conv.weight: copying a param with shape torch.Size([48, 156, 1, 1]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.14.conv2.bn.weight: copying a param with shape torch.Size([48, 156, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.14.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.14.conv2.bn.running_mean: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.14.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.2.layers.15.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 288, 1, 1]).
    size mismatch for dense_blocks.2.layers.15.conv1.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.15.conv1.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.2.layers.15.conv2.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.2.layers.15.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.3.conv.conv.weight: copying a param with shape torch.Size([48, 168, 1, 1]) from checkpoint, the shape in current model is torch.Size([150, 300, 1, 1]).
    size mismatch for dense_blocks.3.conv.bn.weight: copying a param with shape torch.Size([48, 168, 1, 1]) from checkpoint, the shape in current model is torch.Size([150]).
    size mismatch for dense_blocks.3.conv.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([150]).
    size mismatch for dense_blocks.3.conv.bn.running_mean: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([150]).
    size mismatch for dense_blocks.3.conv.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([150]).
    size mismatch for dense_blocks.4.layers.0.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 150, 1, 1]).
    size mismatch for dense_blocks.4.layers.0.conv1.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.0.conv1.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.0.conv2.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.0.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.1.conv1.conv.weight: copying a param with shape torch.Size([48, 180, 1, 1]) from checkpoint, the shape in current model is torch.Size([48, 162, 1, 1]).
    size mismatch for dense_blocks.4.layers.1.conv1.bn.weight: copying a param with shape torch.Size([48, 180, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.1.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.1.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.1.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.1.conv2.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.1.conv2.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.2.conv1.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48, 174, 1, 1]).
    size mismatch for dense_blocks.4.layers.2.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.2.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.2.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.2.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.2.conv2.conv.weight: copying a param with shape torch.Size([48, 192, 1, 1]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.2.conv2.bn.weight: copying a param with shape torch.Size([48, 192, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.2.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.2.conv2.bn.running_mean: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.2.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.3.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 186, 1, 1]).
    size mismatch for dense_blocks.4.layers.3.conv1.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.3.conv1.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.3.conv2.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.3.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.4.conv1.conv.weight: copying a param with shape torch.Size([48, 204, 1, 1]) from checkpoint, the shape in current model is torch.Size([48, 198, 1, 1]).
    size mismatch for dense_blocks.4.layers.4.conv1.bn.weight: copying a param with shape torch.Size([48, 204, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.4.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.4.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.4.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.4.conv2.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.4.conv2.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.5.conv1.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48, 210, 1, 1]).
    size mismatch for dense_blocks.4.layers.5.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.5.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.5.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.5.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.5.conv2.conv.weight: copying a param with shape torch.Size([48, 216, 1, 1]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.5.conv2.bn.weight: copying a param with shape torch.Size([48, 216, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.5.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.5.conv2.bn.running_mean: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.5.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.6.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 222, 1, 1]).
    size mismatch for dense_blocks.4.layers.6.conv1.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.6.conv1.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.6.conv2.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.6.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.7.conv1.conv.weight: copying a param with shape torch.Size([48, 228, 1, 1]) from checkpoint, the shape in current model is torch.Size([48, 234, 1, 1]).
    size mismatch for dense_blocks.4.layers.7.conv1.bn.weight: copying a param with shape torch.Size([48, 228, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.7.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.7.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.7.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.7.conv2.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.7.conv2.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.8.conv1.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48, 246, 1, 1]).
    size mismatch for dense_blocks.4.layers.8.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.8.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.8.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.8.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.8.conv2.conv.weight: copying a param with shape torch.Size([48, 240, 1, 1]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.8.conv2.bn.weight: copying a param with shape torch.Size([48, 240, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.8.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.8.conv2.bn.running_mean: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.8.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.9.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 258, 1, 1]).
    size mismatch for dense_blocks.4.layers.9.conv1.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.9.conv1.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.9.conv2.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.9.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.10.conv1.conv.weight: copying a param with shape torch.Size([48, 252, 1, 1]) from checkpoint, the shape in current model is torch.Size([48, 270, 1, 1]).
    size mismatch for dense_blocks.4.layers.10.conv1.bn.weight: copying a param with shape torch.Size([48, 252, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.10.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.10.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.10.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.10.conv2.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.10.conv2.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.11.conv1.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48, 282, 1, 1]).
    size mismatch for dense_blocks.4.layers.11.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.11.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.11.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.11.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.11.conv2.conv.weight: copying a param with shape torch.Size([48, 264, 1, 1]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.11.conv2.bn.weight: copying a param with shape torch.Size([48, 264, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.11.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.11.conv2.bn.running_mean: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.11.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.12.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 294, 1, 1]).
    size mismatch for dense_blocks.4.layers.12.conv1.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.12.conv1.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.12.conv2.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.12.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.13.conv1.conv.weight: copying a param with shape torch.Size([48, 276, 1, 1]) from checkpoint, the shape in current model is torch.Size([48, 306, 1, 1]).
    size mismatch for dense_blocks.4.layers.13.conv1.bn.weight: copying a param with shape torch.Size([48, 276, 1, 1]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.13.conv2.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.13.conv2.bn.weight: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.13.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.13.conv2.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.13.conv2.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.14.conv1.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48, 318, 1, 1]).
    size mismatch for dense_blocks.4.layers.14.conv1.bn.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.14.conv1.bn.bias: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.14.conv1.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.14.conv1.bn.running_var: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.14.conv2.conv.weight: copying a param with shape torch.Size([48, 288, 1, 1]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.14.conv2.bn.weight: copying a param with shape torch.Size([48, 288, 1, 1]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.14.conv2.bn.bias: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.14.conv2.bn.running_mean: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.14.conv2.bn.running_var: copying a param with shape torch.Size([48]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for dense_blocks.4.layers.15.conv1.conv.weight: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([48, 330, 1, 1]).
    size mismatch for dense_blocks.4.layers.15.conv1.bn.running_mean: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.15.conv1.bn.running_var: copying a param with shape torch.Size([12, 48, 3, 3]) from checkpoint, the shape in current model is torch.Size([48]).
    size mismatch for dense_blocks.4.layers.15.conv2.conv.weight: copying a param with shape torch.Size([12]) from checkpoint, the shape in current model is torch.Size([12, 48, 3, 3]).
    size mismatch for dense_blocks.4.layers.15.conv2.bn.running_mean: copying a param with shape torch.Size([]) from checkpoint, the shape in current model is torch.Size([12]).
    size mismatch for fc.weight: copying a param with shape torch.Size([150, 300, 1, 1]) from checkpoint, the shape in current model is torch.Size([100, 342]).
    size mismatch for fc.bias: copying a param with shape torch.Size([150, 300, 1, 1]) from checkpoint, the shape in current model is torch.Size([100]).

모델을 추론시간과 정확도를 테스트 할 수 있는 다른 방법이 존재하나요? 존재한다면 알려주시기 부탁드립니다.

HSShin0 commented 3 years ago

prune.py 에 test를 위한 옵션을 추가했습니다. (#19)