-
Notifications
You must be signed in to change notification settings - Fork 275
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
why 2dgs model has 3 scales and the third element of scales has grad?? #468
Comments
In section 4.1 of the original 2DGS, it is explained as follows: '... the scaling factors into a 3 ×3 diagonal matrix S whose last entry is zero.'. |
in cuda kernel gsplat/gsplat/cuda/csrc/fully_fused_projection_2dgs_fwd.cu Lines 19 to 44 in ec3e715
only scales[0] and scales[1] is used, noted that the shape of scales is [N,3] gsplat/gsplat/cuda/csrc/fully_fused_projection_2dgs_fwd.cu Lines 130 to 134 in ec3e715
however, i found that in backward gsplat/gsplat/cuda/csrc/fully_fused_projection_2dgs_bwd.cu Lines 150 to 169 in ec3e715
scales is in [N, 2] so v_scales is [N, 2] too, because zeroslike
however, in kernel function gsplat/gsplat/cuda/csrc/fully_fused_projection_2dgs_bwd.cu Lines 18 to 43 in ec3e715
scales is marked as [N, 3] and v_scales is [N, 3] too! in kernel, pointer offset calculation is
gsplat/gsplat/cuda/csrc/fully_fused_projection_2dgs_bwd.cu Lines 138 to 147 in ec3e715
there v_scales offset is 3, but in fact, v_scale and scales is glm::vec2! I am confused by these chaotic symbols can we just modify 2dgs's api, to just pass scales in [N, 2] and align behavior with original 2dgs? |
i noticed that in
examples/simple_trainer_2dgs.py
, 2dgs model has 3 scales.however, in original 2dgs repo, there only exists 2 scales.
furthermore, i found that in gsplat cuda implementation, only
scales[0]
andscales[1]
are used.but when i print
self.splats["scales"].grad
, the third element has grad!The text was updated successfully, but these errors were encountered: