Class: Torch::Optim::LRScheduler::LRScheduler

Inherits:
Object
  • Object
show all
Defined in:
lib/torch/optim/lr_scheduler/lr_scheduler.rb

Instance Method Summary collapse

Constructor Details

#initialize(optimizer, last_epoch) ⇒ LRScheduler

Returns a new instance of LRScheduler.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/torch/optim/lr_scheduler/lr_scheduler.rb', line 5

def initialize(optimizer, last_epoch)
  @optimizer = optimizer
  if last_epoch == -1
    optimizer.param_groups.each do |group|
      group[:initial_lr] ||= group[:lr]
    end
    last_epoch = 0
  else
    raise NotImplementedYet
  end
  @base_lrs = optimizer.param_groups.map { |group| group[:initial_lr] }
  @last_epoch = last_epoch

  @step_count = 0
  step(last_epoch)
end

Instance Method Details

#step(epoch = nil) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/torch/optim/lr_scheduler/lr_scheduler.rb', line 22

def step(epoch = nil)
  @step_count += 1
  epoch ||= @last_epoch + 1
  @last_epoch = epoch
  @optimizer.param_groups.zip(get_lr).each do |param_group, lr|
    param_group[:lr] = lr
  end
end