This commit is contained in:
Ivey Song
2026-06-09 19:30:27 +08:00
parent 7b5f4f6eb9
commit a9dbe7261b
5 changed files with 363 additions and 30 deletions

View File

@@ -231,7 +231,7 @@ class Decoder_main(threading.Thread):
if self.zmqServer.open_Impedance: # 阻抗检测状态不解码
return
data = self.zmqServer.paradigmBuffer.getDataViaSSVEP(50)
algo_log(f"SSVEP取出的{data.shape}, data = {data[:20]}", level="DEBUG")
# algo_log(f"SSVEP取出的{data.shape}, data = {data[:20]}", level="DEBUG")
data = data[:self.n_chan, :]
if self.decodingSteps == 1 and hasattr(self,'dw'): # 开始预热
self.dw.onlineInit() # 刺激闪烁的第1s重置 --在线数据采集时
@@ -254,7 +254,7 @@ class Decoder_main(threading.Thread):
def decoder_SSMVEP(self):
'''模型训练'''
if self.load_model == False and all(
self.trainLabel.count(i) >= self.single_train for i in range(len(self.list_freqs))): # 模型尚未训练完成
self.trainLabel.count(i) >= self.single_train for i in [1, 2]): # 模型尚未训练完成
self.trainData = np.array(self.trainData)
self.trainLabel = np.array(self.trainLabel)
algo_log(f"开始SSMVEP模型训练数据形状{np.shape(self.trainData)},标签形状:{self.trainLabel.shape}", level="DEBUG")
@@ -301,6 +301,7 @@ class Decoder_main(threading.Thread):
if self.zmqServer.epoch_finished == False or self.zmqServer.paradigmBuffer.GetDataLenCount() < \
self.interval_epoch[1] \
+ self.zmqServer.event_inner_idx:
# algo_log(f"SSMVEP模型启动预测 {self.zmqServer.epoch_finished}", level="DEBUG")
time.sleep(0.0001)
return
data = self.zmqServer.paradigmBuffer.get_SSMVEPData() # 读取全部数据
@@ -327,7 +328,7 @@ class Decoder_main(threading.Thread):
def decoder_MI(self):
'''模型训练'''
if self.train_started == False and all(
self.trainLabel.count(i) >= self.single_train for i in range(self.num_target)): # 模型尚未训练
self.trainLabel.count(i) >= self.single_train for i in [1, 2]): # 模型尚未训练
self.zmqServer.broadcast_message('paradigm', 2) # 模型训练前,训练集采集完毕,通知上位机
self.train_started = True
self.trainData = np.array(self.trainData)
@@ -370,6 +371,7 @@ class Decoder_main(threading.Thread):
if self.zmqServer.state_mode == 'train' and self.train_started == False: # 训练状态
if self.zmqServer.epoch_finished and self.zmqServer.paradigmBuffer.GetDataLenCount() >= \
self.interval_epoch[1] + self.zmqServer.event_inner_idx:
self.currentLabel = self.zmqServer.currentLabel # 同步当前标签
algo_log(f"训练队列数据:{self.zmqServer.paradigmBuffer.GetDataLenCount()}", level="DEBUG")
originalTrial = self.zmqServer.paradigmBuffer.get_MIData() # 取出MI导联数据
algo_log(f"取出的:{originalTrial.shape},event: {originalTrial[-2, self.zmqServer.event_inner_idx]}", level="DEBUG")