heromanba / 3D-R2N2-PyTorch

PyTorch version of 3D-R2N2
MIT License
56 stars 15 forks source link

Its not working well #4

Closed Itamare1982 closed 4 years ago

Itamare1982 commented 4 years ago

why you didnt consider the IOU mentioned in the paper

heromanba commented 4 years ago

Hi, what do you mean IOU mentioned in the paper?

Itamare1982 commented 4 years ago

Sorry , i saw that you implement it as requested , i have another q. Is it critical to run training with num_of_workers = 5 , with my hw i can run training just with num_of_workers = 0 , is it good enought for training , i want to train it just for aeroplane dataset , do you think that it will work fine?

heromanba commented 4 years ago

Hi, it's not critical to have num_of_workers=5, but it is helpful to speed up your training. If you want to train only for aeroplane dataset you may need to modify shapenet_1000.json.

Itamare1982 commented 4 years ago

OK , sure i've changed the json file , i used you implementation of GRU and hope it will works fine, could you explain me why did you use 2 voxels for loss calculation ? as i understood , yougenerate torch with 2 voxels , one of them is the original and thr secound is the positiv values only , could you explain this issue in a few words?

heromanba commented 4 years ago

We can treat the voxel prediction as a classification problem. That is, for each voxel of the final 32x32x32 cube, we need predict whether it is a part of the 3D object or not. This gives us two classes, 0 for not a part of the 3D object, 1 for a part of the 3D object. That's why we give 2 values for one voxel to calculate the loss.

Itamare1982 commented 4 years ago

ok , and why didnt you use Pytorch cross-entropy loss?

heromanba commented 4 years ago

I just followed implementation of the original repo and translate it to pytorch. I think Pytorch cross-entropy loss might also be ok. You can have a try.

Itamare1982 commented 4 years ago

ok ,actually it is binary cross entropy loss , am i right?

heromanba commented 4 years ago

Yes.

Itamare1982 commented 4 years ago

We can treat the voxel prediction as a classification problem. That is, for each voxel of the final 32x32x32 cube, we need predict whether it is a part of the 3D object or not. This gives us two classes, 0 for not a part of the 3D object, 1 for a part of the 3D object. That's why we give 2 values for one voxel to calculate the loss.

i am not sure i understand what you mean , because after the decoder , the output of the network is 2 predicted voxels (without the classification you generated for the target) , i mean there are 2 pure voxels and you try to calculate loss with the reference 2 voxels that include one of them with class (True/False) and the other is the reference voxel , could you explain please?

Itamare1982 commented 4 years ago

Hi , i have a question please. Why did you use 0.01 as negative_slope parameter for Leaky Relu activation ? in the paper they use slope of 0.1