Comments (3)
i had a similar problem that 'nerfacc.rendering' can't bp gradients, why
here is my code:
def _rgb_alpha_fn(t_starts, t_ends, ray_indices):
ray_indices = ray_indices.long()
t_origins = rays_o[ray_indices]
t_dirs = rays_d[ray_indices]
midpoints = t_starts + (t_ends - t_starts) * torch.rand_like(t_starts)
positions = t_origins + t_dirs * midpoints[..., None]
dists = t_ends - t_starts
sdf_nn_output = self.sdf_network(positions)
sdf = sdf_nn_output[:, :1]
feature_vector = sdf_nn_output[:, 1:]
sdf_grad = self.sdf_network.gradient(positions).squeeze()
rgbs = self.color_network(positions, sdf_grad, t_dirs, feature_vector).reshape(-1, 3)
normal = F.normalize(sdf_grad, p=2, dim=-1)
alphas = self.get_alpha(sdf, normal, t_dirs, dists, cos_anneal_ratio)
return rgbs, alphas
comp_rgb, opacity, depth, extras = nerfacc.rendering(t_starts, t_ends, ray_indices, n_rays=n_rays, rgb_alpha_fn=_rgb_alpha_fn)
fake_loss = comp_rgb.sum()
fake_loss.backward()
print(self.sdf_network.lin0.weight.grad) # no grad here, why???
from nerfacc.
do u use the estimater.sample? I set the alpha_thre and got zero ray_indeces, I delete the alpha_thre in estimater.sample and gradient present.
from nerfacc.
yes, i used estimator.sample api.
right now, i solved my problem, it's because another mistake made by myself. the api is ok.
from nerfacc.
Related Issues (20)
- Filtering strategy (instead of iterating ray samples) for traverse_grids? HOT 1
- Support for metal backend?
- Coordinate system used in nerfacc HOT 4
- About Compilation HOT 4
- about fixed length render_step_size
- floating things wheen training nerf-synthetic datasets
- ModuleNotFoundError: No module named 'torch' HOT 1
- Inconsistent Results Despite Setting Random Seed HOT 1
- K-planes DyNeRF dataset nerfacc configuration HOT 1
- render_transmittance_from_density crash since nerfacc.cuda.is_cub_available() is False HOT 1
- Thank for your contribution! HOT 13
- Sum instead of Product in scan_cub.cu HOT 2
- Python library
- estimator.binaries.sum() update very slow
- PropNetEstimator causes PyTorch "UserWarning: Detected call of `lr_scheduler.step()` before `optimizer.step()`"
- How to specify the number of sampling points on each ray?
- Error in OccGridEstimator sampling with t_max
- .data_ptr<long>() in scan_cub.cu need to be replaced with .data_ptr<int64_t>() for correct operation on Windows
- ray_indices, t_ends, t_starts are null(empty)
- AttributeError: module 'nerfacc' has no attribute 'OccGridEstimator'
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nerfacc.