master
Mardal 5 years ago
parent 419a2d9134
commit ff8986f25d
  1. 89
      code.txt

@ -1,86 +1,3 @@
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
import random
from scipy.io import loadmat
from scipy import signal
from google.colab import drive
import warnings
import string
import os
from keras.layers import *
from keras.models import Model
from keras import backend as K
from keras import Sequential
from keras.callbacks import ModelCheckpoint
from keras.callbacks import EarlyStopping
from sklearn.metrics import confusion_matrix
from sklearn.preprocessing import scale
from sklearn.preprocessing import MinMaxScaler
# Install mne library for topoplot
!pip install mne
import mne
warnings.filterwarnings('ignore')
drive.mount('/content/drive')
####################### SETTINGS ########################
# Set this variable with the desidered model's name #
MODEL_SELECTED = "MCNN1" #
# #
# Set this variable with the desidered subject's letter #
SUBJECT_SELECTED = "B" #
# #
# Set this variable with the desired electrode subset #
ELECTRODE_SELECTED = "O" # CNN2c only #
#########################################################
model_names = ["CNN1", "CNN2a", "CNN2b", "CNN2c", "CNN3", "MCNN1", "MCNN2", "MCNN3"]
subject_names = ["A", "B"]
electrode_names = ["F", "C", "P", "O", "LT", "RT"]
# Check for errors in the settings
if MODEL_SELECTED not in model_names:
raise ValueError("MODEL_SELECTED value {} is invalid.\nPlease enter one of the following parameters {}".format(MODEL_SELECTED, model_names))
elif SUBJECT_SELECTED not in subject_names:
raise ValueError("SUBJECT_SELECTED value {} is invalid.\nPlease enter one of the following parameters {}".format(SUBJECT_SELECTED, subject_names))
elif MODEL_SELECTED == "CNN2c" and ELECTRODE_SELECTED not in electrode_names:
raise ValueError("ELECTRODE_SELECTED value {} is invalid\nPlease enter one of the following parameters {}".format(ELECTRODE_SELECTED, electrodes_names))
# Google drive data paths
MODEL_LOCATIONS_FILE_PATH = 'drive/My Drive/AY1920_DT_P300_SPELLER_03/Trained_models/' + MODEL_SELECTED + '/' + SUBJECT_SELECTED
SUBJECT_TRAIN_FILE_PATH = 'drive/My Drive/AY1920_DT_P300_SPELLER_03/Dataset/Subject_' + SUBJECT_SELECTED + '_Train.mat'
SUBJECT_TEST_FILE_PATH = 'drive/My Drive/AY1920_DT_P300_SPELLER_03/Dataset/Subject_' + SUBJECT_SELECTED + '_Test.mat'
CHANNEL_LOCATIONS_FILE_PATH = 'drive/My Drive/AY1920_DT_P300_SPELLER_03/Dataset/channels.csv'
CHANNEL_COORD = 'drive/My Drive/AY1920_DT_P300_SPELLER_03/Dataset/coordinates.csv'
# Channel selection
if MODEL_SELECTED == "CNN2a":
CHANNELS = [10, 33, 48, 50, 52, 55, 59, 61]
elif MODEL_SELECTED == "CNN2b":
if SUBJECT_SELECTED == "A":
CHANNELS = [10, 14, 17, 50, 55, 57, 59, 60]
elif SUBJECT_SELECTED == "B":
CHANNELS = [17, 50, 55, 56, 57, 58, 59, 60]
elif MODEL_SELECTED == "CNN2c":
if ELECTRODE_SELECTED == "F":
CHANNELS = [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37]
elif ELECTRODE_SELECTED == "C":
CHANNELS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
elif ELECTRODE_SELECTED == "P":
CHANNELS = [15, 16, 17, 18, 19, 48, 49, 50, 51, 52]
elif ELECTRODE_SELECTED == "O":
CHANNELS = [55, 56, 57, 58, 59, 60, 61, 62]
elif ELECTRODE_SELECTED == "LT":
CHANNELS = [14, 38, 40, 44, 46, 47]
elif ELECTRODE_SELECTED == "RT":
CHANNELS = [20, 39, 41, 45, 53, 54]
else:
CHANNELS = [i for i in range(64)]
Проходит мужик через металлодетектор, а тот возьми да пропикай. Ну, мужика попросили заново пройти.
Металлодетектор - снова пикает. И так несколько раз! Мужик и не выдержал, говорит:
- Может хватит, ну вы чего, я ж не железный!
Loading…
Cancel
Save