orybkin / video-gcp

Repository for the paper "Long-Horizon Visual Planning with Goal-Conditioned Hierarchical Predictors"
44 stars 7 forks source link

Dimension mismatch #24

Open KyleHuo opened 1 year ago

KyleHuo commented 1 year ago

Thank you for sharing the nice work. I try to reproduce the results according to the provided code. I met a error about dimension mismatch. I am new to this field and the dataset so I can not deal with it in this time. Hope someone can help me.

starting epoch 0 Traceback (most recent call last): File "prediction/train.py", line 241, in trainer.run() File "prediction/train.py", line 52, in run self.train(start_epoch) File "prediction/train.py", line 107, in train self.train_epoch(epoch) File "prediction/train.py", line 160, in train_epoch losses = self.model.loss(inputs, output) File "/home/hsz/Documents/jupyter/planning/video-gcp/gcp/prediction/models/tree/tree.py", line 73, in loss losses = super().loss(inputs, outputs, log_error_arr) File "/home/hsz/Documents/jupyter/planning/video-gcp/gcp/prediction/models/base_gcp.py", line 286, in loss weights=inputs.pad_mask[:, :reg_len][:, :, None]) File "/home/hsz/Documents/jupyter/planning/video-gcp/blox/torch/losses.py", line 28, in call error = self.compute(*args, kwargs) weights File "/home/hsz/Documents/jupyter/planning/video-gcp/blox/torch/losses.py", line 57, in compute l2_loss = torch.nn.MSELoss(reduction='none')(estimates, targets) File "/home/hsz/anaconda3/envs/gcp/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(input, kwargs) File "/home/hsz/anaconda3/envs/gcp/lib/python3.7/site-packages/torch/nn/modules/loss.py", line 530, in forward return F.mse_loss(input, target, reduction=self.reduction) File "/home/hsz/anaconda3/envs/gcp/lib/python3.7/site-packages/torch/nn/functional.py", line 3279, in mse_loss expanded_input, expanded_target = torch.broadcast_tensors(input, target) File "/home/hsz/anaconda3/envs/gcp/lib/python3.7/site-packages/torch/functional.py", line 73, in broadcast_tensors return _VF.broadcast_tensors(tensors) # type: ignore[attr-defined] RuntimeError: The size of tensor a (255) must match the size of tensor b (200) at non-singleton dimension 1

And also, I use torch 1.12.1+113 since the provided version is too old. I don't know if it is relevant. Thanks.

orybkin commented 1 year ago

Hi Kyle, it looks like the target selection for the tree prediction is failing for some reason. I am guessing 200 is the number of images in the ground truth sequence, and 255 is the number of images produced by the tree model. There is some logic that selects the 200 predicted images to apply the loss to but it is somehow failing. It might have to do with the different torch version. Unfortunately I don't have anything else I can add now, but you could try running the sequential (non-tree) model and seeing if that works.