gmm#
- diffsptk.GMM#
alias of
GaussianMixtureModeling
- class diffsptk.GaussianMixtureModeling(order, n_mixture, n_iter=100, eps=1e-05, weight_floor=1e-05, var_floor=1e-06, var_type='diag', block_size=None, ubm=None, alpha=0, verbose=False)[source]#
See this page for details. This module is not differentiable.
- orderint >= 0 [scalar]
Order of vector.
- n_mixtureint >= 1 [scalar]
Number of mixture components.
- n_iterint >= 1 [scalar]
Number of iterations.
- epsfloat >= 0 [scalar]
Convergence threshold.
- weight_floorfloat >= 0 [scalar]
Floor value for mixture weights.
- var_floorfloat >= 0 [scalar]
Floor value for variance.
- var_type[‘diag’, ‘full’]
Type of covariance.
- block_sizelist[int]
Block size of covariance matrix.
- ubmtuple of Tensors [shape=((K,), (K, M+1), (K, M+1, M+1))]
Parameters of universal background model.
- alphafloat [ 0 <= alpha <= 1 ]
Smoothing parameter.
- verbosebool [scalar]
If True, print progress.
- forward(x)[source]#
Train Gaussian mixture models.
- Parameters:
- xTensor [shape=(…, M+1)]
Input vectors.
- Returns:
- paramstuple of Tensors [shape=((K,), (K, M+1), (K, M+1, M+1))]
GMM parameters.
- log_likelihoodTensor [scalar]
Total log-likelihood.
Examples
>>> x = diffsptk.nrand(10, 1) >>> gmm = diffsptk.GMM(1, 2) >>> params, log_likelihood = gmm(x) >>> w, mu, sigma = params >>> w tensor([0.1917, 0.8083]) >>> mu tensor([[ 1.2321, 0.2058], [-0.1326, -0.7006]]) >>> sigma tensor([[[3.4010e-01, 0.0000e+00], [0.0000e+00, 6.2351e-04]], [[3.0944e-01, 0.0000e+00], [0.0000e+00, 8.6096e-01]]]) >>> log_likelihood tensor(-19.5235)
See also