我为分类器构建了一个APP。我用wxpython
来构建图形界面。当我尝试使用像13,00,000
这样的大数据训练分类器时会出现问题。
vectorizer = TfidfVectorizer()
XT = vectorizer.fit_transform(self.TrainData) # Not responding
classifier = svm.LinearSVC()
classifier.fit(XT, self.y_train)
vectorizer.fit_transform
这实际上是落后的。但是Window显示没有响应。
有什么问题?我该如何解决这个问题?
答案 0 :(得分:2)
任何长时间运行的进程都可以阻止GUI的主循环。我怀疑你在这里这样做。当主循环被阻止时,您的UI将冻结。要解决这个问题,您应该将fit_transform
代码放入一个线程并在那里运行。完成后,您可以使用wxPython的线程安全方法之一告知UI更新(即wx.CallAfter
或wx.PostEvent
)。
您可以在下面找到使用线程和wxPython的示例: