我有一个用于训练神经网络的工作代码。现在我想创建一个 TkInter gui,以便能够即时更改参数。我想它就像一个遥控器。但我正在努力获得响应式界面。一个 epoch 的训练将需要几分钟,而我无法拦截。
我见过很多使用 .after() 方法来更新 gui 上的时钟的例子,这很好,因为更新不需要几分钟。当回调需要几分钟时,我无法让它工作。
我用最少的代码重新创建了我的问题:
from time import sleep
import tkinter as tk
def trainEpoch(i):
print ("Training", i)
sleep(1) #in reality more like sleep(300)
def clickBtn():
print ("Button pressed")
root = tk.Tk()
btn = tk.Button(root, text="Click Me", command=clickBtn)
btn.grid(column=0, row=0)
for i in range (5):
trainEpoch(i)
print ("finished" )
root.mainloop()
此代码首先“训练”网络,然后创建一个响应式 TkInter 窗口(我完全理解)。为了清楚起见,我希望有以下行为:我希望 gui 在培训开始之前打开,并且在培训进行时可以点击。我不在乎它后来是否被破坏。
我需要线程来解决这种问题吗?
最好的问候,狮子座