uber-research / LaneGCN

[ECCV2020 Oral] Learning Lane Graph Representations for Motion Forecasting
https://arxiv.org/abs/2007.13732
Other
496 stars 131 forks source link

Preprocessed data is very slow #7

Closed walterchenchn closed 3 years ago

walterchenchn commented 3 years ago

Dear authors, thank you for sharing your code. I download the dataset from argoverse, then I want to preprocess the data. When I use 'python preprocess_data.py -m lanegcn', it take 5 hours but nothing output, the cpu occupancy rate is high but gpu is low. Thank you very much!

zhaone commented 3 years ago

Dear authors, thank you for sharing your code. I download the dataset from argoverse, then I want to preprocess the data. When I use 'python preprocess_data.py -m lanegcn', it take 5 hours but nothing output, the cpu occupancy rate is high but gpu is low. Thank you very much!

It is a problem but not an error.

The first thing you misunderstand is that the processing part should not consume GPU resource because it does not running on GPU (it has no much matrix computation) but on CPU. Therefore your CPU occupancy rate is high.

In my opinion, the data preprocessing strategy the author provided is not so elegant. I had preprocessed data using author's script, it did work but as you said, it toke a long time (merely evaluation set) and consumed much memory. The original strategy author use is saving all the preprocessed samples in memory and dumping a very very big output file at once, this causes 3 problems:

  1. As you said, you cannot see any output result until you finishing preprocessing all samples
  2. It consumes much memory (Author is working in Uber and he can use Uber's powerful server but these servers are not available for me: my server will report memory overflow when I preprocessed the train set)
  3. You can only use the whole dataset (hard to use partial dataset to debug)

Later I improve the data preprocess script my self. If you really want to preprocess the data by your self, I can give you some advice:

Hope authors can update preprocessing part.

walterchenchn commented 3 years ago

@zhaone Thank you for your reply! I will try your method