waxnkw / IETrans-SGG.pytorch

This is the code of ECCV 2022 (Oral) paper "Fine-Grained Scene Graph Generation with Data Transfer".
Other
89 stars 6 forks source link

may you help about some puzzlement for external relabel? #4

Closed Yuqifan1117 closed 2 years ago

Yuqifan1117 commented 2 years ago

dear sir, i want to reproduce your results with IETrans methods. However, in external stage, i first met a problem with different length of 'img_info' and 'specified_data', then i filter the 'img_info', only keeping the same image in 'specified_data_file'. But in training stage, there is a bug about 'RuntimeError: CUDA error: device-side assert triggered' '/pytorch/aten/src/ATen/native/cuda/IndexKernel.cu:142: operator(): block: [0,0,0], thread: [124,0,0] Assertion index >= -sizes[i] && index < sizes[i] && "index out of bounds" failed.' I think it may be caused by wrong split for train/val/test set, therefore, may i know how you split the dataset for train/val/test and how you get the specified_data_file?

waxnkw commented 2 years ago

Can you show me the script you used for the external transfer? The split of VG-50 is to use the popular split same with Scene-Graph-Benchmark.pytorch. But I pre-set the flag of 5000 images from the train set to validation set. So, be sure to use the file (VG-SGG-with-attri.h5) I provide in the 50.zip. Otherwise, it might cause problems like a different length of 'img_info' and 'specified_data'. The way of getting specified data file is a little complex, which is adapted from my previous Visual Distant Supervision work. I think I can first try to go through the command you use and try to find the problem.

Yuqifan1117 commented 2 years ago

ok, i will try this as you say. By the way, I used the script cmds/50/transformer/predcls/lt/external/relabel.sh for the external transfer.

waxnkw commented 2 years ago

I update cmds/50/transformer/predcls/lt/external/relabel.sh last week and fix a bug today. If you clone the repo previously, you can also update the repo.

Yuqifan1117 commented 2 years ago

thanks a lot! If I used the original split according to what you provided, there may be no problem. By the way, may I know your pre-setting of validation set is just split the first 5000 images or has another precessing?

waxnkw commented 2 years ago

Actually, I forget how I set the 5000 images. I guess I just run Scene-Graph-Benchmark.pytorch's dataset code and choose images that they split as validation. There is no special processing.