MCPcopy Create free account
hub / github.com/MotrixLab/FineMoGen / betas_for_alpha_bar

Function betas_for_alpha_bar

mogen/models/utils/gaussian_diffusion.py:263–280  ·  view source on GitHub ↗

Create a beta schedule that discretizes the given alpha_t_bar function, which defines the cumulative product of (1-beta) over time from t = [0,1]. :param num_diffusion_timesteps: the number of betas to produce. :param alpha_bar: a lambda that takes an argument t from 0 to 1 and

(num_diffusion_timesteps, alpha_bar, max_beta=0.999)

Source from the content-addressed store, hash-verified

261
262
263def betas_for_alpha_bar(num_diffusion_timesteps, alpha_bar, max_beta=0.999):
264 """
265 Create a beta schedule that discretizes the given alpha_t_bar function,
266 which defines the cumulative product of (1-beta) over time from t = [0,1].
267
268 :param num_diffusion_timesteps: the number of betas to produce.
269 :param alpha_bar: a lambda that takes an argument t from 0 to 1 and
270 produces the cumulative product of (1-beta) up to that
271 part of the diffusion process.
272 :param max_beta: the maximum beta to use; use values lower than 1 to
273 prevent singularities.
274 """
275 betas = []
276 for i in range(num_diffusion_timesteps):
277 t1 = i / num_diffusion_timesteps
278 t2 = (i + 1) / num_diffusion_timesteps
279 betas.append(min(1 - alpha_bar(t2) / alpha_bar(t1), max_beta))
280 return np.array(betas)
281
282
283class ModelMeanType(enum.Enum):

Callers 1

get_named_beta_scheduleFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected