pclucas14 / lidar_generation

Code for "Deep Generative Models for LiDAR Data"
79 stars 20 forks source link

When args '--autoencoder', is set to 1 iaf argument missing error #4

Closed prashkmr closed 5 years ago

prashkmr commented 5 years ago

Hi Lucas,

For the file vae_2d.py When I am trying to use the KL divergence loss with the autoencoder by setting the args '--autoencoder', to 0 it gives the following error. Seems some argument is missing in the command line parameters. Can you help out here?

File "vae_2d.py", line 50, in model = VAE(args).cuda() File "/home/prashant/P/ATM/Code/lidar_generation/lidar_generation/models.py", line 104, in init if not args.autoencoder and args.iaf: AttributeError: 'Namespace' object has no attribute 'iaf'

Thanks, Prashant

pclucas14 commented 5 years ago

Can you give me the command you are running?

prashkmr commented 5 years ago

I ran this command for using the KL loss python vae_2d.py --no_polar=1 --autoencoder=0 python vae_2d.py --autoencoder=0

-Prashant

pclucas14 commented 5 years ago

Ok pull the new code and try now. (I used to have setup for IAF, but I removed it because it was not giving significant gains. It seemed I had forgot it at one place. Should be ok now

prashkmr commented 5 years ago

It seems to be giving some output now. Let me check. By the way, one thing that has been puzzling me from a long time is the preprocess function in utils.py I have not been able to decode it fully. It is doing some filtering along the 3 coordinates based on some max and min across axes and that is ok.

When I give it a tensor of the shape of (154, 60, 512, 4) it spits out a preprocessed output of (152, 2, 40, 256). I am puzzled at this transformation. Could you please shed some light here?

-Prashant

pclucas14 commented 5 years ago

The input is first normalized per channel (which is why you have the min / maxes). Then, we make sure the whole H x W grid has valid values. What sometimes happen is that when cutting the 360 deg. space into slices, some slices have no points that fall into them. So I use neighbouring slices to estimate what would be a good value for the missing data.

As for the (154, 60, 512, 4) to (152, 2, 40, 256), I am simply 1) transposing the axes from BHWC to BCHW and then 2) converting to cylindrical representation. You can find more info here in this issue