From e507c97e3eb935d02e1035a25672cefa027afebf Mon Sep 17 00:00:00 2001 From: Ethan Weber Date: Tue, 5 Jul 2022 14:36:35 -0700 Subject: [PATCH] instant ngp fix (#80) --- pyrad/engine/trainer.py | 4 ++-- pyrad/graphs/instant_ngp.py | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pyrad/engine/trainer.py b/pyrad/engine/trainer.py index ee0901e0a..8853c6b15 100644 --- a/pyrad/engine/trainer.py +++ b/pyrad/engine/trainer.py @@ -177,8 +177,8 @@ class Trainer: self.optimizers.optimizer_step_all() self.optimizers.scheduler_step_all(step) if self.graph.callbacks: - for _func in self.graph.callbacks: - _func.after_step(step) + for func_ in self.graph.callbacks: + func_.after_step(step) return loss_dict @profiler.time_function diff --git a/pyrad/graphs/instant_ngp.py b/pyrad/graphs/instant_ngp.py index b094521b1..5b26b61cc 100644 --- a/pyrad/graphs/instant_ngp.py +++ b/pyrad/graphs/instant_ngp.py @@ -105,7 +105,10 @@ class NGPGraph(Graph): ts_uniform = (ray_samples_uniform.bin_starts + ray_samples_uniform.bin_ends) / 2.0 ts_pdf = (ray_samples_pdf.bin_starts + ray_samples_pdf.bin_ends) / 2.0 ts, indices = torch.sort(torch.cat([ts_uniform, ts_pdf], -1), -1) - ray_samples = ray_bundle.get_ray_samples(bin_starts=ts, bin_ends=ts) + bin_starts = ts + bin_ends = torch.cat([ts[..., 1:], ts[..., -1:]], dim=-1) + ray_samples = ray_bundle.get_ray_samples(bin_starts=bin_starts, bin_ends=bin_ends) + field_outputs = {} for fo_name, _ in field_outputs_pdf.items(): fo_uniform = field_outputs_uniform[fo_name]