|
class LinearSchedule: |
|
def __init__(self, schedule_timesteps, final_p, initial_p=1.0): |
|
"""Linear interpolation between initial_p and final_p over |
|
schedule_timesteps. After this many timesteps pass final_p is |
|
returned. |
|
Parameters |
|
---------- |
|
schedule_timesteps: int |
|
Number of timesteps for which to linearly anneal initial_p |
|
to final_p |
|
initial_p: float |
|
initial output value |
|
final_p: float |
|
final output value |
|
""" |
|
self.schedule_timesteps = schedule_timesteps |
|
self.final_p = final_p |
|
self.initial_p = initial_p |
|
|
|
def value(self, t): |
|
"""See Schedule.value""" |
|
fraction = min(float(t) / self.schedule_timesteps, 1.0) |
|
return self.initial_p + fraction * (self.final_p - self.initial_p) |
|
|
|
|