【问题标题】:How to generate logs or print something during model fit in python3如何在python3中的模型拟合期间生成日志或打印一些东西
【发布时间】:2021-10-04 03:14:52
【问题描述】:

我正在安排我的Jupyter Lab notebook,其中有cluster algorithm.。如果我不printlog 某事,这项工作就会失败。 (这就是它的设计方式)。

代码:

import hdbscan
from sklearn.datasets import make_blobs

data, _ = make_blobs(1000000)

clusterer = hdbscan.HDBSCAN(min_cluster_size=100)
cluster_model = clusterer.fit(data)

clusterer.fit(data) 行大约需要 7-8 小时用于大数据集。

如何在拟合时打印或记录某些内容,以免 Kernel 变得理想?

【问题讨论】:

    标签: python-3.x logging hierarchical-clustering


    【解决方案1】:

    我不确定我是否理解正确,但如果你的意思是如果工作太长时间不打印任何内容,就会被某个“主管”杀死,你可以单独启动一个 threading.Thread 或 @ 987654322@ 什么都不做,只打印东西,直到适配完成:

    from time import sleep
    from multiprocessing import Process
    
    def print_target():
      while True:
        print("fit still running...")
        sleep(60)
    
    # your code before fit...
    
    proc = Process(target=print_target)
    proc.start()
    
    cluster_model = clusterer.fit(data)
    proc.kill()
    

    该示例使用 Process 而不是 Thread,因为前者更容易杀死(Thread 没有像 Process 这样的 kill() 方法,所以你必须使用threading.Queuethreading.Event 与您希望它停止运行的线程进行通信)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 2019-05-09
      相关资源
      最近更新 更多