jy0205 / STCAT

[NeurIPS 2022] Embracing Consistency: A One-Stage Approach for Spatio-Temporal Video Grounding
Apache License 2.0
45 stars 1 forks source link

IndexError: index 0 is out of bounds for axis 0 with size 0 #1

Closed LIUQI-creat closed 1 year ago

LIUQI-creat commented 1 year ago

Hi, @jy0205 Thanks for your excellent work! I'd like to reproduce your model on vidstg dataset. But when I run the code, I encountered the following problems:(I just changed the TRAIN_SAMPLE_NUM: 40 in config file)

start_idx, end_idx = action_idx[0], action_idx[-1]
IndexError: index 0 is out of bounds for axis 0 with size 0

It is located in vidstg.py : def getitem Could you help me solve this problem? Thanks!

LIUQI-creat commented 1 year ago

Because in vidstg.py file , action_idx = np.where(data_item['actioness'])[0] the action_idx.shape is (0, ) How can I solve this problem?

jy0205 commented 1 year ago

I guess the reason is the input preprocess. You can try to use our provided input data cache in https://disk.pku.edu.cn:443/link/0154DA82CF05E4E5F7F28C4B04535336?

jy0205 commented 1 year ago

You can download it and put it into data/vidstg/data_cache

LIUQI-creat commented 1 year ago

You can download it and put it into data/vidstg/data_cache

Thank you very much for your timely reply. Unfortunately, it didn't work. I changed the TRAIN_SAMPLE_NUM: 40 in config file , it maybe led to some conflicts. If I keep the original configuration TRAIN_SAMPLE_NUM = 64, it will out of memory( 4*P40 GPUs 24GB ). What should I do to run the code with less GPU memory or on TRAIN_SAMPLE_NUM = 40 ? Thank you very much!

jy0205 commented 1 year ago

You can try lower input resolution, e.g., RESOLUTION = 352, TRAIN_SAMPLE_NUM = 48

LIUQI-creat commented 1 year ago

You can try lower input resolution, e.g., RESOLUTION = 352, TRAIN_SAMPLENUM = 48 Thank you very much! It works very well. You are very enthusiastic and your work is excellent too. ^^

LIUQI-creat commented 1 year ago

You can try lower input resolution, e.g., RESOLUTION = 352, TRAIN_SAMPLE_NUM = 48

And how to set to reduce memory usage?Memory usage value is 187GB, maybe go beyond the maximum value of my server. image

jy0205 commented 1 year ago

You can set a smaller NUM_WORKERS in the dataloader.

LIUQI-creat commented 1 year ago

You can set a smaller NUM_WORKERS in the dataloader.

You are so warmhearted that reply me every time, thank you very much. I think the reproducing work is easy. But I'm an inexperienced novice in this field, so I encountered many problems.

According to your suggestion, I fixed the config:

RESOLUTION: 352
TRAIN_SAMPLE_NUM: 48
NUM_WORKERS: 4

and I use the data_cache which you provided. I didn't change the other config. The vidstg videos are downloaded from the link you provided, I unzip the train and test videos to one folder. But I still encounter that (when the iteration between 200 and 250): IndexError: index 0 is out of bounds for axis 0 with size 0

I have been troubled by this problem for a long time, and I don't know how to solve it. (T ^ T)

jy0205 commented 1 year ago

Have you solved the problem? I cannot directly recognize the bug from the given error. Maybe you can try to use the embed() function in IPython to track the bug.