Module: Gsplat::Backend::RubyAccumulateBackward
- Defined in:
- lib/gsplat/backend/ruby/accumulate_backward.rb
Overview
Brute-force compositor VJP routed through the one-tile reverse kernel.
Class Method Summary collapse
-
.backward(means2d, conics, opacities, colors, backgrounds, width, height, render_alphas, last_ids, grad_render_colors, grad_render_alphas) ⇒ Object
rubocop:disable Metrics/ParameterLists.
Class Method Details
.backward(means2d, conics, opacities, colors, backgrounds, width, height, render_alphas, last_ids, grad_render_colors, grad_render_alphas) ⇒ Object
rubocop:disable Metrics/ParameterLists
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/gsplat/backend/ruby/accumulate_backward.rb', line 10 def backward(means2d, conics, opacities, colors, backgrounds, width, height, render_alphas, last_ids, grad_render_colors, grad_render_alphas) # rubocop:enable Metrics/ParameterLists camera_count, gaussian_count = means2d.shape[0...2] offsets = Numo::Int32.zeros(camera_count, 1, 1) camera_count.times { |camera_index| offsets[camera_index, 0, 0] = camera_index * gaussian_count } flatten_ids = Numo::Int32.new(camera_count * gaussian_count).seq gradients, = RubyRasterizeToPixelsBackward.backward( means2d, conics, colors, opacities, backgrounds, nil, width, height, [width, height].max, offsets, flatten_ids, render_alphas, last_ids, grad_render_colors, grad_render_alphas, absgrad: false ) grad_means, grad_conics, grad_colors, grad_opacities, grad_backgrounds = gradients [grad_means, grad_conics, grad_opacities, grad_colors, grad_backgrounds] end |