代码之家  ›  专栏  ›  技术社区  ›  Rares Dima

Python如何创建可更新的绘图?

  •  0
  • Rares Dima  · 技术社区  · 7 年前

    我不确定这是正确的问题或措辞,所以请随意建议编辑!

    现在,我的问题是:假设我们有一个算法,一个长期运行的算法,比如训练一个像神经网络一样的机器学习模型,那么代码看起来像这样:

    for training_iteration in range(training_iterations_num):
        model.train()
    

    现在,我想在每次评估后绘制培训结果,因此理论上代码应该是这样的:

    for training_iteration in range(training_iterations_num):
        model.train()
        score = model.evaluate()
        plot.add_point_to_plot(x=training_iteration, y=score)
    

    这是一个长时间运行的算法,将运行更长的时间,过夜,甚至几天,所以我们需要一个可行的方法来观察它的演变。

    我需要一些方法来描绘算法在执行过程中的演变。进程的主线程显然将忙于进行计算,因此它不应该像GUI在占用线程时通常所做的那样给我一个“不响应”,并且它应该支持轻松地向现有图形/线条添加数据,以显示算法的演变。

    1 回复  |  直到 7 年前
        1
  •  0
  •   jdrd    7 年前

    考虑使用 threading module queue . 总之,代码应该是这样的:

    模型线程:

    for training_iteration in range(training_iterations_num):
        model.train()
        score = model.evaluate()
        data_queue.put(score)
    

    打印线程:

    while(true):
         if not data_queue.empty():
             plot_data.append(data_queue.get())
         plot.display(plot_data)
    

    然后,您可以使用绘图线程根据需要更新绘图。