Class: Gsplat::Training::Config
- Inherits:
-
Object
- Object
- Gsplat::Training::Config
- Defined in:
- lib/gsplat/training/config.rb
Overview
Trainer hyperparameters matching the upstream simple trainer defaults.
Constant Summary collapse
- DEFAULTS =
Default training, optimizer, evaluation, and output options.
{ max_steps: 30_000, batch_size: 1, sh_degree: 3, sh_degree_interval: 1_000, ssim_lambda: 0.2, init_opacity: 0.1, init_scale: 1.0, means_lr: 1.6e-4, means_lr_final: 1.6e-6, scales_lr: 5e-3, quats_lr: 1e-3, opacities_lr: 5e-2, sh0_lr: 2.5e-3, shN_lr: 1.25e-4, opacity_reg: 0.0, scale_reg: 0.0, eval_steps: [7_000, 30_000], save_steps: [7_000, 30_000], log_every: 100, random_background: false, near_plane: 0.01, far_plane: 1e10, tile_size: 16, rasterize_mode: "classic", model_type: :three_d, output_dir: "results", seed: 42 }.freeze
Instance Attribute Summary collapse
-
#batch_size ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#eval_steps ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#far_plane ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#init_opacity ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#init_scale ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#log_every ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#max_steps ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#means_lr ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#means_lr_final ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#model_type ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#near_plane ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#opacities_lr ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#opacity_reg ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#output_dir ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#quats_lr ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#random_background ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#rasterize_mode ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#save_steps ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#scale_reg ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#scales_lr ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#seed ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#sh0_lr ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#sh_degree ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#sh_degree_interval ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#shN_lr ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#ssim_lambda ⇒ Object
readonly
rubocop:disable Naming/MethodName.
-
#tile_size ⇒ Object
readonly
rubocop:disable Naming/MethodName.
Instance Method Summary collapse
-
#initialize(**options) ⇒ Config
constructor
rubocop:enable Naming/MethodName.
-
#to_h ⇒ Hash{Symbol=>Object}
Returns an independent hash suitable for checkpoint metadata.
Constructor Details
#initialize(**options) ⇒ Config
rubocop:enable Naming/MethodName
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/gsplat/training/config.rb', line 48 def initialize(**) unknown = .keys - DEFAULTS.keys raise ArgumentError, "unknown trainer options: #{unknown.join(', ')}" unless unknown.empty? DEFAULTS.merge().each do |name, value| value = value.dup if value.is_a?(Array) instance_variable_set(:"@#{name}", value) end validate! end |
Instance Attribute Details
#batch_size ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def batch_size @batch_size end |
#eval_steps ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def eval_steps @eval_steps end |
#far_plane ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def far_plane @far_plane end |
#init_opacity ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def init_opacity @init_opacity end |
#init_scale ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def init_scale @init_scale end |
#log_every ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def log_every @log_every end |
#max_steps ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def max_steps @max_steps end |
#means_lr ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def means_lr @means_lr end |
#means_lr_final ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def means_lr_final @means_lr_final end |
#model_type ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def model_type @model_type end |
#near_plane ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def near_plane @near_plane end |
#opacities_lr ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def opacities_lr @opacities_lr end |
#opacity_reg ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def opacity_reg @opacity_reg end |
#output_dir ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def output_dir @output_dir end |
#quats_lr ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def quats_lr @quats_lr end |
#random_background ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def random_background @random_background end |
#rasterize_mode ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def rasterize_mode @rasterize_mode end |
#save_steps ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def save_steps @save_steps end |
#scale_reg ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def scale_reg @scale_reg end |
#scales_lr ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def scales_lr @scales_lr end |
#seed ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def seed @seed end |
#sh0_lr ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def sh0_lr @sh0_lr end |
#sh_degree ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def sh_degree @sh_degree end |
#sh_degree_interval ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def sh_degree_interval @sh_degree_interval end |
#shN_lr ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def shN_lr @shN_lr end |
#ssim_lambda ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def ssim_lambda @ssim_lambda end |
#tile_size ⇒ Object (readonly)
rubocop:disable Naming/MethodName
39 40 41 |
# File 'lib/gsplat/training/config.rb', line 39 def tile_size @tile_size end |
Instance Method Details
#to_h ⇒ Hash{Symbol=>Object}
Returns an independent hash suitable for checkpoint metadata.
62 63 64 |
# File 'lib/gsplat/training/config.rb', line 62 def to_h DEFAULTS.keys.to_h { |name| [name, public_send(name)] } end |