-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question about the shape of data in model #22
Comments
Hi, You are right, the point cloud comes from the dataloader with the shape BxNxC, with B=2, N=180000 and C=3. However, MinkowskiEngine does a hashing over the data and stores the batch dimension as one more coordinate. So, the data gets the form of NxC with N being the total number of points over all the batched point clouds and C=4 (b,x,y,z with b as the batch id). The reason why you've got Lastly, regarding the GPU usage. Yes, the point cloud processing takes a lot of memory. You can try to "fix" by doing the following over the 'config.yaml' file: reduce the |
Thank you very much for your quick reply and advises! i have another question about the code in the pipeline: def completion_loop(self, x_init, x_t, x_cond, x_uncond):
self.scheduler_to_cuda()
for t in tqdm.tqdm(range(len(self.dpm_scheduler.timesteps))):
t = self.dpm_scheduler.timesteps[t].cuda()[None]
noise_t = self.classfree_forward(x_t, x_cond, x_uncond, t)
input_noise = x_t.F.reshape(t.shape[0],-1,3) - x_init # the noise added in the x_feats = scan + torch.randn(scan.shape, device=self.device)
x_t = x_init + self.dpm_scheduler.step(noise_t, t, input_noise)['prev_sample']
x_t = self.points_to_tensor(x_t)
x_cond, x_uncond = self.reset_partial_pcd(x_cond, x_uncond)
torch.cuda.empty_cache()
return x_t.F.cpu().detach().numpy() in this function |
The |
Hi,
This is my first project on point cloud deep learning, so there are many aspects I don't quite understand, especially about minkowski engine.
From the dataloader we get a x_full with shape (B, N=180000, C=3) and x_part with shape (B , N=18000, C=3) , and they will be turned to ME.TensorField with shape (B x N, C). x_part should be input into the condition encoder and produce a TensorField with shape like (BxN, C=256), the dim features C will be expended to 256 but the first dim should be as same as the input x_part? but after i tested on code ( with init weight and B=2), i got this shape
torch.Size([9598, 256])
, i not sure am I understanding correct or not, or its because.sparse()
changes tensor's shape?and for the noise predictor, it should return a TensorField with shape ( BxN, C=3) right? Because this forward calculation seems to require a lot of memory, my computer's GPU cannot handle it, and running it on CPU also fails, so I can't see the output. I'm not sure how much RAM is needed for the process?
thanks very much
yifan
The text was updated successfully, but these errors were encountered: