class gameboard: mat = [] X = 0 Y = 0 color = colors.colors() blocks = Blocks.Blocks() def __init__(self, x, y, mode=0): self.mat = Matrix.matrix(x, y, mode) self.X = x self.Y = y self.mat.VERBOSE = False def getMatrix(self): # returns the pixel matrix return self.mat def setPixel(self, x, y, color): # sets the pixel at coordinate (x, y) to color r = color[0] g = color[1] b = color[2] if r >= 0 and g >= 0 and b >= 0 and r < 256 and g < 256 and b < 256: self.mat.setPixel(x, y, color) else: raise ValueError("value(s) out of range") def setBlock(self, x, y, block): if x >= 0 and y >= 0 and x < self.mat.Xmax and y < self.mat.Ymax: if self.mat.VERBOSE: print("new " + str(block) + ": (" + str(x) + ", " + str(y) + ")") if block == 'i_block': object = self.blocks.i_block(x, y) for px in range(len(object[0])): self.setPixel(object[0][px][0], object[0][px][1], object[1]) elif block == 'l_block': object = self.blocks.l_block(x, y) for px in range(len(object[0])): self.setPixel(object[0][px][0], object[0][px][1], object[1]) elif block == 'z_block': object = self.blocks.z_block(x, y) for px in range(len(object[0])): self.setPixel(object[0][px][0], object[0][px][1], object[1]) elif block == 'o_block': object = self.blocks.o_block(x, y) for px in range(len(object[0])): self.setPixel(object[0][px][0], object[0][px][1], object[1]) elif block == 't_block': object = self.blocks.t_block(x, y) for px in range(len(object[0])): self.setPixel(object[0][px][0], object[0][px][1], object[1]) else: raise ValueError("'" + str(block) + "' is no block") else: raise ValueError("value(s) out of range")
n_trial, n_channel, n_sample = original_signal.shape[:] # pre-processing data # get std and mean if standard_before: params = io.loadmat(other_path) mean = params['mean'] std = params['std'] original_signal = (original_signal-mean)/std epoch_length = int(Fs * window_time_length / 1000.) perturb_length = math.floor(Fs * perturb_time / 1000.) # ============================ build model ============================== processers = [ Blocks.Xdawn(n_filters=4, with_xdawn_templates=True, apply_filters=True), Blocks.CovarianceFeature(with_mean_templates=False), Blocks.TangentSpaceFeature(mean_metric='riemann', name='TangentSpace({})'.format('riemann')) ] classifier = Blocks.LogisticRegression() model = Pipeline(processers, classifier) model.load(load_path) keras_model = model.get_keras_model(input_shape=(n_channel, epoch_length)) # =========================== target attack ============================== acc_dict = {} clean_acc_dict = {} for target_char in target_char_list: # get stimuli of the target char