Beta Scheduler
VAE.utils.beta_schedulers
Collection of beta schedulers.
Beta schedulers are used to schedule the beta value of the KL divergence during training. Beta schedulers are
used in the :class:generators
.
VAE.utils.beta_schedulers.BetaScheduler
BetaScheduler(dtype='float')
Bases: ABC
Abstract class for beta schedulers.
This is the abstract base class for all beta schedulers.
Beta schedulers should implement the method :func:__call__
and can optionally overwrite the method
:func:get_config
Parameters:
-
dtype
(str
, default:'float'
) –Data type of the returned beta values.
Source code in VAE/utils/beta_schedulers.py
28 29 |
|
VAE.utils.beta_schedulers.BetaScheduler.__call__
abstractmethod
__call__(epoch, shape=(1))
Return beta value.
Abstract method that has to be implemented by all beta schedulers. This method is called during training to
obtain the beta values for the current epoch
. The shape
parameter defines the shape of the returned array
of constant beta values.
Parameters:
-
epoch
(int
) –Training epoch for with the beta values will be return.
-
shape
(tuple[int, ...]
, default:(1)
) –Output shape for the beta values that will be returned.
Returns:
-
ndarray
–Array of shape
shape
filled with beta values.
Source code in VAE/utils/beta_schedulers.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
VAE.utils.beta_schedulers.BetaScheduler.get_config
get_config()
Get configuration.
Returns:
-
dict
–Dictionary with the configuration of the beta scheduler.
Source code in VAE/utils/beta_schedulers.py
50 51 52 53 54 55 56 57 |
|
VAE.utils.beta_schedulers.BetaScheduler.summary
summary()
Print a summary of the beta scheduler.
Source code in VAE/utils/beta_schedulers.py
59 60 61 62 63 64 65 |
|
VAE.utils.beta_schedulers.Constant
Constant(value=1.0, **kwargs)
Bases: BetaScheduler
Return constant beta value.
This beta scheduler returns a constant beta value for all epochs.
Parameters:
-
value
(float
, default:1.0
) –Value of beta.
-
**kwargs
–Additional arguments for :class:
BetaScheduler
.
Source code in VAE/utils/beta_schedulers.py
79 80 81 |
|
VAE.utils.beta_schedulers.Linear
Linear(lower=0.0, upper=1.0, epochs=10, **kwargs)
Bases: BetaScheduler
Linearly increase beta value.
This beta scheduler returns a linearly increasing beta value.
Parameters:
-
lower
(float
, default:0.0
) –Lower (left) bound of beta.
-
upper
(float
, default:1.0
) –Upper (right) bound of beta.
-
epochs
(float
, default:10
) –Number of epochs for which beta will be increased. If the number of epochs is reached, beta will be constant at the upper bound.
-
**kwargs
–Additional arguments for :class:
BetaScheduler
.
Source code in VAE/utils/beta_schedulers.py
109 110 111 112 113 114 |
|
VAE.utils.beta_schedulers.LogisticGrowth
LogisticGrowth(lower=0.0, upper=1.0, midpoint=5.0, rate=1.0, **kwargs)
Bases: BetaScheduler
Increase beta to maximum value at given rate.
This beta scheduler returns a beta value that increases to a maximum value at a given rate. The beta value follows a logistic growth function.
Parameters:
-
lower
(float
, default:0.0
) –Lower (left) asymptote of beta.
-
upper
(float
, default:1.0
) –Upper (right) asymptote of beta.
-
midpoint
(float
, default:5.0
) –Epoch at which beta equals the mean of the upper and lower asymptote.
-
rate
(float
, default:1.0
) –Growth rate at which beta increases.
-
**kwargs
–Additional arguments for :class:
BetaScheduler
.
Source code in VAE/utils/beta_schedulers.py
148 149 150 151 152 153 |
|
VAE.utils.beta_schedulers.LogUniform
LogUniform(lower=0.01, upper=1.0, **kwargs)
Bases: BetaScheduler
Draw beta values from log-uniform distribution.
This beta scheduler draws beta values from a log-uniform distribution. The log-uniform distribution is a uniform distribution in log-space.
Parameters:
-
lower
(float
, default:0.01
) –Lower (minimum) value of the distribution.
-
upper
(float
, default:1.0
) –Upper (maximum) value of the distribution.
-
**kwargs
–Additional arguments for :class:
BetaScheduler
.
Source code in VAE/utils/beta_schedulers.py
185 186 187 188 189 |
|