def ecoglstm(lstmsize, fcsize, dropout, optim): print("Reading data...") data = np.load( "/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/train_data.npy") labels = np.load( "/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/train_labels.npy") train_data, train_labels, val_data, val_labels = DataHandler.split( 0.7, data, labels) lstmcl = LSTMDiscriminative(lstmsize[0], fcsize[0], dropout[0], optim[0], 10, 128) model = lstmcl.train(train_data, train_labels) result = -lstmcl.test(model, val_data, val_labels) print('Result = %f' % result) return result
import numpy as np from LSTM.lstm_classifier import LSTMDiscriminative # parameters lstmsize = 300 fcsize = 100 dropout = 0.0 optim = 'adadelta' nepochs = 30 batchsize = 512 # load the dataset print 'Loading the dataset..' static_train = np.load('/storage/hpc_anna/GMiC/Data/ECoGmixed/fourier/train_data.npy') dynamic_train = np.load('/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/train_data.npy') static_val = np.load('/storage/hpc_anna/GMiC/Data/ECoGmixed/fourier/test_data.npy') dynamic_val = np.load('/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/test_data.npy') labels_train = np.load('/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/train_labels.npy') labels_val = np.load('/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/test_labels.npy') nsamples = dynamic_train.shape[0] # split the data into training and test train_idx = np.random.choice(range(0, nsamples), size=np.round(nsamples * 0.7, 0), replace=False) test_idx = list(set(range(0, nsamples)) - set(train_idx)) # train the model and report performance lstmcl = LSTMDiscriminative(lstmsize, fcsize, dropout, optim, nepochs, batchsize) model = lstmcl.train(dynamic_train[train_idx], labels_train[train_idx]) print 'Generative LSTM classifier on dynamic features: %.4f' % lstmcl.test(model, dynamic_train[test_idx], labels_train[test_idx])
batchsize = 512 # load the dataset print 'Loading the dataset..' static_train = np.load( '/storage/hpc_anna/GMiC/Data/ECoGmixed/fourier/train_data.npy') dynamic_train = np.load( '/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/train_data.npy') static_val = np.load( '/storage/hpc_anna/GMiC/Data/ECoGmixed/fourier/test_data.npy') dynamic_val = np.load( '/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/test_data.npy') labels_train = np.load( '/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/train_labels.npy') labels_val = np.load( '/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/test_labels.npy') nsamples = dynamic_train.shape[0] # split the data into training and test train_idx = np.random.choice(range(0, nsamples), size=np.round(nsamples * 0.7, 0), replace=False) test_idx = list(set(range(0, nsamples)) - set(train_idx)) # train the model and report performance lstmcl = LSTMDiscriminative(lstmsize, fcsize, dropout, optim, nepochs, batchsize) model = lstmcl.train(dynamic_train[train_idx], labels_train[train_idx]) print 'Generative LSTM classifier on dynamic features: %.4f' % lstmcl.test( model, dynamic_train[test_idx], labels_train[test_idx])
static_train = np.load("/storage/hpc_anna/GMiC/Data/ECoGmixed/fourier/train_data.npy") dynamic_train = np.load("/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/train_data.npy") static_test = np.load("/storage/hpc_anna/GMiC/Data/ECoGmixed/fourier/test_data.npy") dynamic_test = np.load("/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/test_data.npy") labels_train = np.load("/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/train_labels.npy") labels_test = np.load("/storage/hpc_anna/GMiC/Data/ECoGmixed/preprocessed/test_labels.npy") nsamples = dynamic_train.shape[0] # split the data into training and test train_idx = np.random.choice(range(0, nsamples), size=np.round(nsamples * 0.7, 0), replace=False) val_idx = list(set(range(0, nsamples)) - set(train_idx)) dynamic_val = dynamic_train[val_idx] labels_val = labels_train[val_idx] dynamic_train = dynamic_train[train_idx] labels_train = labels_train[train_idx] # train the model and report performance # lstmcl = LSTMDiscriminative(lstmsize, fcsize, dropout, optim, nepochs, batchsize, validation_split=0.3) # model = lstmcl.train(dynamic_train, labels_train) # print 'Generative LSTM classifier on dynamic features: %.4f' % lstmcl.test(model, dynamic_val, labels_val) tr_dynamic_val = np.transpose(dynamic_val, (0, 2, 1)) enc = OneHotEncoder(sparse=False) tr_labels_val = enc.fit_transform(np.matrix(labels_val).T) lstmcl = LSTMDiscriminative( lstmsize, fcsize, dropout, optim, nepochs, batchsize, validation_data=(tr_dynamic_val, tr_labels_val) ) model = lstmcl.train(dynamic_train, labels_train) print "Generative LSTM classifier on dynamic features: %.4f" % lstmcl.test(model, dynamic_val, labels_val)