pytorch-superpoint icon indicating copy to clipboard operation
pytorch-superpoint copied to clipboard

Index error when I train superpoint

Open JuntingLee opened this issue 3 years ago • 5 comments

Hello, eric. When I train superpoint for the third step I get a error after 1188ite, Traceback (most recent call last): File "train4.py", line 141, in <module> args.func(config, output_dir, args) File "train4.py", line 93, in train_joint train_agent.train() File "/home/lijt/PycharmProjects/pytorch-superpoint-master/Train_model_frontend.py", line 275, in train for i, sample_train in tqdm(enumerate(self.train_loader)): File "/home/lijt/anaconda3/envs/python36/lib/python3.6/site-packages/tqdm/std.py", line 1178, in __iter__ for obj in iterable: File "/home/lijt/anaconda3/envs/python36/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 517, in __next__ data = self._next_data() File "/home/lijt/anaconda3/envs/python36/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 1179, in _next_data return self._process_data(data) File "/home/lijt/anaconda3/envs/python36/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 1225, in _process_data data.reraise() File "/home/lijt/anaconda3/envs/python36/lib/python3.6/site-packages/torch/_utils.py", line 429, in reraise raise self.exc_type(msg) IndexError: Caught IndexError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/lijt/anaconda3/envs/python36/lib/python3.6/site-packages/torch/utils/data/_utils/worker.py", line 202, in _worker_loop data = fetcher.fetch(index) File "/home/lijt/anaconda3/envs/python36/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/lijt/anaconda3/envs/python36/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp> data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/lijt/PycharmProjects/pytorch-superpoint-master/datasets/Coco.py", line 294, in __getitem__ labels = points_to_2D(pnts, H, W) File "/home/lijt/PycharmProjects/pytorch-superpoint-master/datasets/Coco.py", line 234, in points_to_2D labels[pnts[:, 1], pnts[:, 0]] = 1 IndexError: index -9223372036854775808 is out of bounds for axis 0 with size 240 I train many times from scratch and it happen again!
I don't know how to slove the problem.

JuntingLee avatar May 31 '21 06:05 JuntingLee

hi, have you solve this problem? i meet the same problem

1962975362 avatar Aug 19 '21 07:08 1962975362

I have meet the same problem too…… and I found some some checks on whether a point is really in the image were ignored.

DreamWaterFound avatar Sep 28 '21 13:09 DreamWaterFound

Hi @JuntingLee,

Thank you for your question. I'm not sure why this happened. Can you check if the points are loaded correctly? https://github.com/eric-yyjau/pytorch-superpoint/blob/4ff74df8fa3c10ce9eb9fdc561f787d9e8bc9691/datasets/Coco.py#L290

There may be some weird thing happening while converting the variable type (to Int).

eric-yyjau avatar Oct 02 '21 21:10 eric-yyjau

@DreamWaterFound hi, have you solved this problem? same problem here.

XinnWang avatar Oct 25 '21 02:10 XinnWang

@DreamWaterFound hi, have you solved this problem? same problem here.

@XinnWang Yes. Notice the function Coco.__getitem__.points_to_2D in file datasets/Coco.py (here), especially for COCO datasets with different image sizes, converted points has the possibility of falling outside the range of the image.

You can verify the corners' ​coordinates as following code:

def points_to_2D(pnts, H, W):
    labels = np.zeros((H, W))
    pnts = pnts.astype(int)

    # HACK
    mask = pnts[:,0] >= 0
    pnts = pnts[mask, :]

    mask = pnts[:,0] <= W
    pnts = pnts[mask, :]

    mask = pnts[:,1] >= 0
    pnts = pnts[mask, :]

    mask = pnts[:,0] <= H
    pnts = pnts[mask, :]
    # end hack

    labels[pnts[:, 1], pnts[:, 0]] = 1
    return labels

I am sorry for not indicating the location in the comments above.

DreamWaterFound avatar Oct 25 '21 04:10 DreamWaterFound