taodeng / CDNN-traffic-saliency

14 stars 8 forks source link

Model checkpoint failed #2

Open javiermcebrian opened 4 years ago

javiermcebrian commented 4 years ago

Tao,

When I try to load the checkpoint you provided using your code, it fails:

` import torch import torch.backends.cudnn as cudnn from model import Model

model = Model() model = model.cuda() cudnn.benchmark = True

checkpoint = torch.load(file_name_best) model.load_state_dict(checkpoint['state_dict']) `

The log shows that torch op names differ from the defined at Model() provided in the source code:

Traceback (most recent call last): File "main.py", line 302, in <module> main() File "main.py", line 185, in main model.load_state_dict(checkpoint['state_dict']) File "/home/user/miniconda/envs/py27/lib/python2.7/site-packages/torch/nn/modules/module.py", line 719, in load_state_dict self.__class__.__name__, "\n\t".join(error_msgs))) RuntimeError: Error(s) in loading state_dict for Model: Missing key(s) in state_dict: "convd1.0.bias", "convd1.0.weight", "convd1.1.running_var", "convd1.1.bias", "convd1.1.weight", "convd1.1.running_mean", "convd1.3.bias", "convd 1.3.weight", "convd1.4.running_var", "convd1.4.bias", "convd1.4.weight", "convd1.4.running_mean", "convd2.0.bias", "convd2.0.weight", "convd2.1.running_var", "convd2.1.bias", "convd2 .1.weight", "convd2.1.running_mean", "convd2.3.bias", "convd2.3.weight", "convd2.4.running_var", "convd2.4.bias", "convd2.4.weight", "convd2.4.running_mean", "convd3.0.bias", "convd3 .0.weight", "convd3.1.running_var", "convd3.1.bias", "convd3.1.weight", "convd3.1.running_mean", "convd3.3.bias", "convd3.3.weight", "convd3.4.running_var", "convd3.4.bias", "convd3. 4.weight", "convd3.4.running_mean", "convd4.0.bias", "convd4.0.weight", "convd4.1.running_var", "convd4.1.bias", "convd4.1.weight", "convd4.1.running_mean", "convd4.3.bias", "convd4. 3.weight", "convd4.4.running_var", "convd4.4.bias", "convd4.4.weight", "convd4.4.running_mean", "convu3.0.bias", "convu3.0.weight", "convu3.1.running_var", "convu3.1.bias", "convu3.1 .weight", "convu3.1.running_mean", "convu3.3.bias", "convu3.3.weight", "convu3.4.running_var", "convu3.4.bias", "convu3.4.weight", "convu3.4.running_mean", "convu2.0.bias", "convu2.0 .weight", "convu2.1.running_var", "convu2.1.bias", "convu2.1.weight", "convu2.1.running_mean", "convu2.3.bias", "convu2.3.weight", "convu2.4.running_var", "convu2.4.bias", "convu2.4. weight", "convu2.4.running_mean", "convu1.0.bias", "convu1.0.weight", "convu1.1.running_var", "convu1.1.bias", "convu1.1.weight", "convu1.1.running_mean", "convu1.3.bias", "convu1.3. weight", "convu1.4.running_var", "convu1.4.bias", "convu1.4.weight", "convu1.4.running_mean", "convu0.bias", "convu0.weight". Unexpected key(s) in state_dict: "module.convd1.0.weight", "module.convd1.0.bias", "module.convd1.1.weight", "module.convd1.1.bias", "module.convd1.1.running_mean", "module.c onvd1.1.running_var", "module.convd1.3.weight", "module.convd1.3.bias", "module.convd1.4.weight", "module.convd1.4.bias", "module.convd1.4.running_mean", "module.convd1.4.running_var ", "module.convd2.0.weight", "module.convd2.0.bias", "module.convd2.1.weight", "module.convd2.1.bias", "module.convd2.1.running_mean", "module.convd2.1.running_var", "module.convd2.3 .weight", "module.convd2.3.bias", "module.convd2.4.weight", "module.convd2.4.bias", "module.convd2.4.running_mean", "module.convd2.4.running_var", "module.convd3.0.weight", "module.c onvd3.0.bias", "module.convd3.1.weight", "module.convd3.1.bias", "module.convd3.1.running_mean", "module.convd3.1.running_var", "module.convd3.3.weight", "module.convd3.3.bias", "mod ule.convd3.4.weight", "module.convd3.4.bias", "module.convd3.4.running_mean", "module.convd3.4.running_var", "module.convd4.0.weight", "module.convd4.0.bias", "module.convd4.1.weight ", "module.convd4.1.bias", "module.convd4.1.running_mean", "module.convd4.1.running_var", "module.convd4.3.weight", "module.convd4.3.bias", "module.convd4.4.weight", "module.convd4.4 .bias", "module.convd4.4.running_mean", "module.convd4.4.running_var", "module.convu3.0.weight", "module.convu3.0.bias", "module.convu3.1.weight", "module.convu3.1.bias", "module.con vu3.1.running_mean", "module.convu3.1.running_var", "module.convu3.3.weight", "module.convu3.3.bias", "module.convu3.4.weight", "module.convu3.4.bias", "module.convu3.4.running_mean" , "module.convu3.4.running_var", "module.convu2.0.weight", "module.convu2.0.bias", "module.convu2.1.weight", "module.convu2.1.bias", "module.convu2.1.running_mean", "module.convu2.1. running_var", "module.convu2.3.weight", "module.convu2.3.bias", "module.convu2.4.weight", "module.convu2.4.bias", "module.convu2.4.running_mean", "module.convu2.4.running_var", "modu le.convu1.0.weight", "module.convu1.0.bias", "module.convu1.1.weight", "module.convu1.1.bias", "module.convu1.1.running_mean", "module.convu1.1.running_var", "module.convu1.3.weight" , "module.convu1.3.bias", "module.convu1.4.weight", "module.convu1.4.bias", "module.convu1.4.running_mean", "module.convu1.4.running_var", "module.convu0.weight", "module.convu0.bias ".

Am I missing something? If not, Could you provide the model used in the paper which is able to be loaded by this code?

Kind regards, Javier

xuhanlin1 commented 3 years ago

Hello,I have the same question, did you solve this problem? I want to know what is wrong with the code.

Zhaotianci123 commented 2 years ago

Need to add the model path to args.resume

someone-TJ commented 2 years ago

find “model.load_state_dict(checkpoint['state_dict'])” in main.py you can try to change it to "pre_state_dict = {str.replace(k, 'module.', ''): v for k, v in checkpoint['state_dict'].items()} model.load_state_dict(pre_state_dict)"