Action-Recognition icon indicating copy to clipboard operation
Action-Recognition copied to clipboard

Running test_on_video.py encountered "unexpected keyword argument 'input_shape'" error

Open wangwill opened this issue 5 years ago • 12 comments

python3 test_on_video.py --video_path data/UCF-101/SoccerPenalty/v_SoccerPenalty_g01_c01.avi --checkpoint_model model_checkpoints/ConvLSTM_150.pth

Namespace(channels=3, checkpoint_model='model_checkpoints/ConvLSTM_150.pth', dataset_path='data/UCF-101-frames', image_dim=112, latent_dim=512, video_path='data/UCF-101/SoccerPenalty/v_SoccerPenalty_g01_c01.avi') Traceback (most recent call last): File "test_on_video.py", line 41, in model = ConvLSTM(input_shape=input_shape, num_classes=len(labels), latent_dim=opt.latent_dim) TypeError: init() got an unexpected keyword argument 'input_shape'

wangwill avatar Sep 02 '19 07:09 wangwill

the same problem

WangZhaoxue avatar Sep 06 '19 12:09 WangZhaoxue

the same problem

There were several variable issues with the extract_frames.py. I have opened a pull request for that. https://github.com/eriklindernoren/Action-Recognition/pull/4

wangwill avatar Sep 06 '19 12:09 wangwill

another error after the modification RuntimeError: Error(s) in loading state_dict for ConvLSTM: Missing key(s) in state_dict: "lstm.lstm.weight_ih_l0_reverse", "lstm.lstm.weight_hh_l0_reverse", "lstm.lstm.bias_ih_l0_reverse", "lstm.lstm.bias_hh_l0_reverse", "output_layers.0.weight", "output_layers.0.bias", "output_layers.1.weight", "output_layers.1.bias", "output_layers.1.running_mean", "output_layers.1.running_var", "output_layers.3.weight", "output_layers.3.bias", "attention_layer.weight", "attention_layer.bias". Unexpected key(s) in state_dict: "lstm.final.0.weight", "lstm.final.0.bias", "lstm.final.1.weight", "lstm.final.1.bias", "lstm.final.1.running_mean", "lstm.final.1.running_var", "lstm.final.1.num_batches_tracked", "lstm.final.3.weight", "lstm.final.3.bias".

WangZhaoxue avatar Sep 06 '19 13:09 WangZhaoxue

Had the same issue @WangZhaoxue , did anyone run this project besides the author?

rebotnix avatar Dec 06 '19 23:12 rebotnix

Had the same issue @WangZhaoxue , did anyone run this project besides the author?

I have successfully set up the environment and run the code. (Anaconda3-2019.03 python=3.6 pytorch 1.1.0)

There are some typo errors in this repo. I did some minor fixes here. https://github.com/eriklindernoren/Action-Recognition/pull/4

Also, make sure the extraction process is completed without error.

wangwill avatar Dec 09 '19 08:12 wangwill

Thank you @WangZhaoxue for your help. I made the minor changes and still have the same error, but I must use PyTorch 1.2 or 1.3 and I think that´s the issue why the loaded can´t load. I try to fix it and response if it´s works.

Missing key(s) in state_dict: "lstm.lstm.weight_ih_l0_reverse", "lstm.lstm.weight_hh_l0_reverse", "lstm.lstm.bias_ih_l0_reverse", "lstm.lstm.bias_hh_l0_reverse", "output_layers.0.weight", "output_layers.0.bias", "output_layers.1.weight", "output_layers.1.bias"....

rebotnix avatar Dec 10 '19 19:12 rebotnix

Thank you @WangZhaoxue for your help. I made the minor changes and still have the same error, but I must use PyTorch 1.2 or 1.3 and I think that´s the issue why the loaded can´t load. I try to fix it and response if it´s works.

Missing key(s) in state_dict: "lstm.lstm.weight_ih_l0_reverse", "lstm.lstm.weight_hh_l0_reverse", "lstm.lstm.bias_ih_l0_reverse", "lstm.lstm.bias_hh_l0_reverse", "output_layers.0.weight", "output_layers.0.bias", "output_layers.1.weight", "output_layers.1.bias"....

Check out this issue. They found a solution for this error. It seems that you need to edit the name of the layers and add an attention layer to the pre trained model.

https://github.com/eriklindernoren/Action-Recognition/issues/2#issuecomment-493336337

I'll try it out later today and update here if I was able to advance or not.

nicholasguimaraes avatar Dec 16 '19 18:12 nicholasguimaraes

@nicholasguimaraes could you tell the solution for this problem

sathees07 avatar Dec 19 '19 09:12 sathees07

@nicholasguimaraes could you tell the solution for this problem

Hello @sathees07,

I still didn't try testing the pre trained model but if you want to load the model provided by erik you will need to update the names of the layers in the state_dict.

Also, the pretrained model does not have an attention layer so, it seems that you should add that when fixing the state_dict.

Here is a link where you can check how to access the names of the layers of your model through its state_dict.

https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict

nicholasguimaraes avatar Dec 19 '19 13:12 nicholasguimaraes

Thank you @nicholasguimaraes i will check this

sathees07 avatar Dec 19 '19 14:12 sathees07

Did you solve this problem?

js-kang avatar Aug 07 '20 02:08 js-kang

No @js-kang

sathees07 avatar Aug 07 '20 06:08 sathees07