freesom.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:cebl 作者: idfah 项目源码 文件源码
def updatePlot(self, event=None):
        """Draw the BMU plot.
        """

        # get EEG data from current source
        cap = self.src.getEEGSecs(self.width, copy=False)

        data = cap.timeEmbed(lags=self.lags)

        if (time.time() - self.lastTrainTime) > self.retrainDelay:
            progressDialog = wx.ProgressDialog('Training Classifier',
                                    'Training', maximum=self.maxIter // 50 + 1,
                                    style=wx.PD_ELAPSED_TIME | wx.PD_SMOOTH)

            def updateProgressDialog(iteration, weights, learningRate, radius):
                if not (iteration % 50):
                    progressDialog.Update(updateProgressDialog.i, 'Training')
                    updateProgressDialog.i += 1
            updateProgressDialog.i = 0

            if self.som is None:
                self.som = ml.SOM(data, latticeSize=self.latticeSize,
                                  maxIter=self.maxIter, distMetric=self.distMetric,
                                  learningRate=self.learningRate,
                                  learningRateFinal=self.learningRateFinal,
                                  radius=self.radius, radiusFinal=self.radiusFinal,
                                  callback=updateProgressDialog, verbose=False)
            else:
                self.som.callback = updateProgressDialog
                self.som.train(data)

            progressDialog.Destroy()

            self.lastTrainTime = time.time()

        if self.som is not None:
            points = self.som.getBMUIndices(data[-self.nPoints:,:])

        else:
            pointsX = np.round(np.random.uniform(0, self.latticeSize[0]-1, size=self.nPoints))
            pointsY = np.round(np.random.uniform(0, self.latticeSize[1]-1, size=self.nPoints))
            points = np.vstack((pointsX,pointsY)).T

        self.plot.draw(points, latticeSize=self.latticeSize)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号