我正在调度我的Jupyter Lab notebook,它有cluster algorithm.。如果我不做print或log之类的事情,工作就会失败。(它就是这样设计的)。
代码:
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小时。
,我如何在拟合时打印或记录一些东西,从而使内核变得不理想?
发布于 2021-07-28 11:42:45
我不确定我是否正确地理解了这一点,但如果您的意思是,如果某个“主管”在很长一段时间内不打印任何内容,那么您可以启动一个单独的threading.Thread或multiprocessing.Process,它只会打印内容,直到匹配完成为止:
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.Queue或threading.Event来与希望它停止运行的线程通信)。
https://stackoverflow.com/questions/68559389
复制相似问题