Closed rikyaa closed 1 week ago
作者您好,代码为仔细研究好几个月,我在进行代码调试的时候,想问一下*alpha = 1.0 - torch.exp(-density[..., 0] dists) 这一行显示的alpha(4096,193) 当我打断点调试if的时候: if i_level == 0: accum_prod_dark = torch.cat([torch.ones_like(alpha[..., :1] coarse_dark[0]), torch.cumprod(1.0 - alpha[..., :-1] + eps, dim=-1) coarse_dark[1:]], dim=-1,) 然后这里的alpha是(4096,65),alpha[..., :-1] 是(4096,64) 当我打断点调试else的时候: else: accum_prod_dark = torch.cat([torch.ones_like(alpha[..., :1]) fine_dark[0], torch.cumprod(1.0 - alpha[..., :-1] + eps, dim=-1) fine_dark[1:]], dim=-1,) 这里的alpha是(4096,193),alpha[..., :-1] 是(4096,192)** 为什么if和else里的alpha会变化呢,想了很久没找到原因,应该是我对代码不深入把,期待您的回复
Hello, 这里是通过i_level来控制NeRF的两组MLP, i_level == 0的时候是coarse MLP,对应维度64,else的时候是fine MLP,对应维度192.
作者您好,代码为仔细研究好几个月,我在进行代码调试的时候,想问一下*alpha = 1.0 - torch.exp(-density[..., 0] dists) 这一行显示的alpha(4096,193) 当我打断点调试if的时候:
if i_level == 0: accum_prod_dark = torch.cat([torch.ones_like(alpha[..., :1] coarse_dark[0]), torch.cumprod(1.0 - alpha[..., :-1] + eps, dim=-1) coarse_dark[1:]], dim=-1,) 然后这里的alpha是(4096,65),alpha[..., :-1] 是(4096,64) 当我打断点调试else的时候: else: accum_prod_dark = torch.cat([torch.ones_like(alpha[..., :1]) fine_dark[0], torch.cumprod(1.0 - alpha[..., :-1] + eps, dim=-1) fine_dark[1:]], dim=-1,) 这里的alpha是(4096,193),alpha[..., :-1] 是(4096,192)** 为什么if和else里的alpha会变化呢,想了很久没找到原因,应该是我对代码不深入把,期待您的回复