Question about partition along the radial(r) dimension
hi-zhengcheng opened this issue · 1 comments
Thanks for your nice paper and code, it helps me a lot.
Question 1
I’m trying to figure out how to partition along radial dimension. In the paper, section “3.1 Spherical Convolutions” has one sentence said:
We allow the partitions along the radial (r) dimension to be non-uniform because the cubic volume growth for large radius values can be undesirable
In the source code, it looks like that the partitions along the radial dimension are uniform:
https://github.com/hlei-ziyan/SPH3D-GCN/blob/27a0629b908e736d28b69723f333af29f63bea5c/tf_ops/buildkernel/tf_buildkernel_gpu.cu#L68
Could you share some experience or detailed method, about non-uniform partitions along the radial dimension?
Question 2
In source code, the 3D distance info (variable dist) is used for partitions along the radial dimension, and it is computed in:
https://github.com/hlei-ziyan/SPH3D-GCN/blob/27a0629b908e736d28b69723f333af29f63bea5c/tf_ops/nnquery/tf_nnquery_gpu.cu#L47
…
dist3D = sqrtf(dist3D); //sqrt
if (dist3D<radius && fabs(dist3D-radius)>1e-6) // find a neighbor in range
{
if (s<nnSample)
{
nnIndex[i*M*nnSample+j*nnSample+s] = k;
nnDist[i*M*nnSample+j*nnSample+s] = sqrt(dist3D);
}
…
}
dist3D is the result of sqrtf first. When it is saved to nnDist, another sqrt is called. Why use sqrt two times, Is there any trick about this?
Actually, we tried only uniform radial division up till now. As to the two sqrt function, it is a bug. I do find it as well, but occupied by other things, I haven’t correct it yet. It doesn’t influence the experiment at all. You can remove the second sqrt in your code.