eriklindernoren / Action-Recognition

Exploration of different solutions to action recognition in video, using neural networks implemented in PyTorch.
185 stars 74 forks source link

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

Open wangwill opened 5 years ago

wangwill commented 5 years ago

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'

WangZhaoxue commented 5 years ago

the same problem

wangwill commented 5 years ago

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

WangZhaoxue commented 5 years ago

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".

rebotnix commented 4 years ago

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

wangwill commented 4 years ago

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.

rebotnix commented 4 years ago

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"....

nicholasguimaraes commented 4 years ago

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.

sathees07 commented 4 years ago

@nicholasguimaraes could you tell the solution for this problem

nicholasguimaraes commented 4 years ago

@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

sathees07 commented 4 years ago

Thank you @nicholasguimaraes i will check this

js-kang commented 4 years ago

Did you solve this problem?

sathees07 commented 4 years ago

No @js-kang