Scheduler
- class srl.rl.schedulers.scheduler.SchedulerConfig
ベースクラス:
object
数値のハイパーパラメータに対してスケジュールによる変更を提供します。 主に学習率に使われることを想定していますが、それ以外でも使用できます。
・配列を使わない場合 setから始まる関数を使ってください。 例えば線形で減少する値を使用する場合は以下です。
>>> sch = SchedulerConfig() >>> sch.set_linear(100, 1, 0) # 100stepで1から0に減少 >>> sch.plot() # 画像で確認
・配列を使う場合 複数のパターンを使うことも可能です。 clear後、addから始まる関数を使ってください。
>>> sch = SchedulerConfig() >>> sch.clear() >>> sch.add_linear(100, 0.5, 1) # 0~100stepで0.5から1に増加 >>> sch.add_linear(100, 1, 0.1) # 100~200stepで1から0.1に減少 >>> sch.plot() # 画像で確認
- clear()
配列を空にします
- set(rate: float)
固定値を使用
y = rate
- パラメータ:
rate (float) -- val
- set_rate(rate: float)
固定値を使用
y = rate
- パラメータ:
rate (float) -- val
- set_constant(rate: float)
固定値を使用
y = rate
- パラメータ:
rate (float) -- val
- add_constant(phase_steps: int, rate: float)
固定値を追加
y = rate
- パラメータ:
phase_steps (int) -- 継続するstep数
rate (float) -- val
- set_linear(phase_steps: int, start_rate: float, end_rate: float)
線形に変化
y = start_rate + (end_rate - start_rate) * step
- パラメータ:
phase_steps (int) -- 継続するstep数
start_rate (float) -- 開始時のrate
end_rate (float) -- 終了時のrate
- add_linear(phase_steps: int, start_rate: float, end_rate: float)
線形に変化を追加
y = start_rate + (end_rate - start_rate) * step
- パラメータ:
phase_steps (int) -- 継続するstep数
start_rate (float) -- 開始時のrate
end_rate (float) -- 終了時のrate
- set_cosine(phase_steps: int, start_rate: float)
cosに従って0へ変動
- パラメータ:
phase_steps (int) -- 継続するstep数
start_rate (float) -- 開始時のrate
- add_cosine(phase_steps: int, start_rate: float)
cosに従って0へ変動
- パラメータ:
phase_steps (int) -- 継続するstep数
start_rate (float) -- 開始時のrate
- set_cosine_with_hard_restarts(phase_steps: int, start_rate: float, num_cycles: int)
cosに従って0へ変動、ただしnum_cycles数繰り返す
- パラメータ:
phase_steps (int) -- 継続するstep数
start_rate (float) -- 開始時のrate
num_cycles (int) -- 繰り返す回数
- add_cosine_with_hard_restarts(phase_steps: int, start_rate: float, num_cycles: int)
cosに従って0へ変動、ただしnum_cycles数繰り返す
- パラメータ:
phase_steps (int) -- 継続するstep数
start_rate (float) -- 開始時のrate
num_cycles (int) -- 繰り返す回数
- set_polynomial(phase_steps: int, start_rate: float, power: float = 2)
多項式に従って0へ減少
y = start_rate * (1 - step/phase_steps)^power
- パラメータ:
phase_steps (int) -- 継続するstep数
start_rate (float) -- 開始時のrate
power (float, optional) -- 強さ、1で線形と同じ. Defaults to 2.
- add_polynomial(phase_steps: int, start_rate: float, power: float = 2)
多項式に従って0へ減少
y = start_rate * (1 - step/phase_steps)^power
- パラメータ:
phase_steps (int) -- 継続するstep数
start_rate (float) -- 開始時のrate
power (float, optional) -- 強さ、1で線形と同じ. Defaults to 2.