pycave kmeans-gpu 禁止打印模型训练器输出

pycave kmeans-gpu disable model trainer outputs from being printed

这是使用 GPU 运行 KMeans 的代码片段。

文档-link:https://pycave.borchero.com/sites/generated/clustering/kmeans/pycave.clustering.KMeans.html

import torch
from pycave.clustering import KMeans

X = torch.cat([
    torch.randn(1000, 6) - 5,
    torch.randn(1000, 6),
    torch.randn(1000, 6) + 5,
])

estimator = KMeans(num_clusters = 3, trainer_params=dict(gpus=1, 
                                                         enable_progress_bar=0, 
                                                         max_epochs=100,))
labels = estimator.fit_predict(X).numpy()

pd.value_counts(labels)

问题在于如何禁用估算器的控制台输出。

当前输出:

Running initialization...

{'batch_size': 3000, 'collate_fn': <function collate_tensor at 0x000002BE21221700>}

Fitting K-Means...

{'batch_size': 3000, 'collate_fn': <function collate_tensor at 0x000002BE21221700>}
{'batch_size': 1, 'sampler': None, 'batch_sampler': <pytorch_lightning.overrides.distributed.IndexBatchSamplerWrapper object at 0x000002BE593A55B0>, 'collate_fn': <function collate_tensor at 0x000002BE21221700>, 'shuffle': False, 'drop_last': False}

0    1000
2    1000
1    1000
dtype: int64

预期输出:

0    1000
2    1000
1    1000
dtype: int64

关于 trainer_params 参数的信息
(可选[Dict[str, Any]]) -- 初始化 PyTorch Lightning 训练器时使用的初始化参数。默认情况下,除非 PyCave 配置为进行详细日志记录,否则它会禁用各种标准输出日志。无论日志级别如何,检查点和日志记录都被禁用。

打印的词典永远不应该存在,这是依赖项中的错误。已在最新版本中解决。

就 PyCave 日志而言(运行 初始化...和拟合 K-Means...),您可以通过添加以下内容轻松关闭它们:

import logging
from pycave import set_logging_level

set_logging_level(logging.WARNING)

请注意,set_logging_level(logging.WARNING) 还会自动关闭进度条和模型摘要,因此您不必明确设置这些标志。