speechbrain.lobes.models.kmeans 模块

K-means 实现。

作者 * Luca Della Libera 2024

摘要

类:

MiniBatchKMeansSklearn

scikit-learn MiniBatchKMeans 的封装,提供与 PyTorch 张量的集成。

参考

class speechbrain.lobes.models.kmeans.MiniBatchKMeansSklearn(*args, **kwargs)[source]

基础:Module

scikit-learn MiniBatchKMeans 的封装器,提供与 PyTorch 张量的集成。

参见 https://scikit-learn.org/stable/modules/generated/sklearn.cluster.MiniBatchKMeans.html.

Parameters:
  • *args (tuple) – 传递给scikit-learn MiniBatchKMeans的位置参数。

  • **kwargs (dict) – 传递给scikit-learn MiniBatchKMeans的关键字参数。

Example

>>> import torch
>>> device = "cpu"
>>> n_clusters = 20
>>> batch_size = 8
>>> seq_length = 100
>>> hidden_size = 256
>>> model = MiniBatchKMeansSklearn(n_clusters).to(device)
>>> input = torch.randn(batch_size, seq_length, hidden_size, device=device)
>>> model.partial_fit(input)
>>> labels = model(input)
>>> labels.shape
torch.Size([8, 100])
>>> centers = model.cluster_centers
>>> centers.shape
torch.Size([20, 256])
>>> len(list(model.buffers()))
1
>>> model.n_steps
1
>>> inertia = model.inertia(input)
to(device=None, **kwargs)[source]

参见 torch.nn.Module.to 的文档。

save(path)[source]

将模型保存到指定的文件。

Parameters:

path (str) – 保存模型的文件路径。

load(path, end_of_epoch)[source]

从指定的文件加载模型。

Parameters:
  • path (str) – 从中加载模型的文件路径。

  • end_of_epoch (bool) – 指示此加载是否在epoch结束时触发。

fit(input)[source]

将模型拟合到输入数据。

Parameters:

输入 (torch.Tensor) – 输入数据张量,形状为 (…, n_features)。

partial_fit(input)[source]

在输入数据上执行模型的增量拟合。

Parameters:

输入 (torch.Tensor) – 输入数据张量的形状为 (…, n_features)。

forward(input)[source]

预测输入数据的聚类索引。

Parameters:

输入 (torch.Tensor) – 输入数据张量的形状为 (…, n_features)。

Returns:

预测的聚类索引,形状为 (…,)。

Return type:

torch.Tensor

inertia(input)[source]

返回聚类的惯性。

Parameters:

输入 (torch.Tensor) – 输入数据张量的形状为 (…, n_features)。

Returns:

惯性(到聚类中心的距离平方和)。

Return type:

torch.Tensor

property n_steps

返回已处理的minibatches数量。

Returns:

已处理的小批量数量。

Return type:

int

property cluster_centers_

返回聚类中心。

Returns:

聚类中心的形状为 (n_clusters, n_features)。

Return type:

torch.Tensor