def trainConvNet(self, segs):
trainData = [seg.data for seg in segs]
#convs = ((16,9), (8,9))
#maxIter = 400 # 49
convs = ((8,3), (8,3), (8,3))
maxIter = 1000
nHidden = None
poolSize = 1
poolMethod = 'average'
self.stand = ml.ClassSegStandardizer(trainData)
trainDataStd = self.stand.apply(trainData)
dialog = wx.ProgressDialog('Training Classifier',
'Featurizing', maximum=maxIter+2,
style=wx.PD_ELAPSED_TIME | wx.PD_SMOOTH)
def progressCB(optable, iteration, *args, **kwargs):
dialog.Update(iteration, 'Iteration: %d/%d' % (iteration, maxIter))
self.classifier = ml.CNA(trainDataStd, convs=convs, nHidden=nHidden, maxIter=maxIter,
optimFunc=ml.optim.scg, accuracy=0.0, precision=0.0,
poolSize=poolSize, poolMethod=poolMethod,
verbose=False, callback=progressCB)
trainCA = self.classifier.ca(trainDataStd)
trainConfusion = np.round(100*self.classifier.confusion(trainDataStd))
dialog.Destroy()
resultText = (('Final Training CA: %f\n' % trainCA) +
('Confusion Matrix:\n' + str(trainConfusion) + '\n') +
('Choices: ' + str(self.choices)))
wx.MessageBox(message=resultText,
caption='Training Completed!',
style=wx.OK | wx.ICON_INFORMATION)
self.saveResultText(resultText)
评论列表
文章目录