import sys sys.path.insert(0, '/xdisk/rlysecky/manojgopale/extra/keyPrediction_chip/scr/moreDataTrials/scr/') import classify_3HL_28000TrainSize from keras.models import load_model from error_analysis import errorAnalysis import numpy as np import pandas as pd def ensemble_models(modelList, savePrefix, resultDir, logDir) dataDir = "/xdisk/rlysecky/manojgopale/extra/chipWhisperer_data/trace_key_1500/" moreDataDir = "/xdisk/rlysecky/manojgopale/extra/chipWhisperer_data/trace_key_1500_1/" (_,_), devData, (_,_) = classify_3HL_28000TrainSize.getData(dataDir, moreDataDir, 28000, 1, 1, 1) predict = np.zeros((len(devData[0]), 256)) for index, modelPath in enumerate(modelList): model = load_model(modelPath) predict = predict + model.predict(devData[0]) ## Finally average out the predictions from all the models ## Dividng will not change the argmax #predict = predict / (index+1) ## Get the predicted key y_pred = np.argmax(predict, axis=1) output_predict = np.vstack((np.argmax(devData[1], axis=1), y_pred)).T ## Save to csv for further analysis outputFile = resultDir + "/" + savePrefix + "_predOutput.csv" np.savetxt(outputFile, output_predict, fmt="%5.0f", delimiter=",")
import pandas as pd import numpy as np from keras.models import load_model import sys sys.path.insert(0, '/xdisk/rlysecky/manojgopale/extra/keyPrediction_chip/scr/moreDataTrials/scr/') import classify_3HL_28000TrainSize import keyAccuracy ## load test data dataPath = "/xdisk/bethard/mig2020/extra/manojgopale/AES_data/chipwhispererData/trace_key_1500/" moreData = "/xdisk/rlysecky/manojgopale/extra/chipWhisperer_data/trace_key_1500_1/" (_, _), (x_dev, y_dev), (_, _) = classify_3HL_28000TrainSize.getData(dataPath, moreData, 28000, 1, 1, 1) modelDir = "/xdisk/rlysecky/manojgopale/extra/keyPrediction_chip/scr/moreDataTrials/result/" resultDir = "/xdisk/rlysecky/manojgopale/extra/keyPrediction_chip/scr/moreDataTrials/keyPredFiles/" logDir = "/xdisk/rlysecky/manojgopale/extra/keyPrediction_chip/scr/moreDataTrials/log/" modelList = [ "chipWhisper_3HL_28000TS_20480BS_newNorm_train_metrics_3HLw_1000_700_500_73epochs_Dropout_0p2_0p2_0p2_41p42.h5" ] prefixList=[ "3hl_41p42_newNorm_train_metric", ] for modelName, savePrefix in zip(modelList, prefixList): print("Started model= %s" %(savePrefix)) keyAccuracy.keyAccuracy(x_dev, y_dev, modelDir, modelName, savePrefix, resultDir, logDir)
######## trainSize = options.trainSize resultDir = options.resultDir batchSize = options.batchSize modelName = options.modelName trainFlag = options.trainFlag devFlag = options.devFlag testFlag = options.testFlag drop1 = options.drop1 drop2 = options.drop2 drop3 = options.drop3 dataDir = "/xdisk/rlysecky/manojgopale/extra/chipWhisperer_data/trace_key_1500/" moreDataDir = "/xdisk/rlysecky/manojgopale/extra/chipWhisperer_data/trace_key_1500_1/" trainData, devData, testData = classify_3HL_28000TrainSize.getData( dataDir, moreDataDir, trainSize, trainFlag, devFlag, testFlag) x_train, y_train_oh = trainData x_dev, y_dev_oh = devData x_test, y_test_oh = testData ## Instantiate the model and test, dev and training sets ##resultDir = "/extra/manojgopale/AES_data/config3p1_15ktraining/result_new" ##modelName = "m_newscript" t0_time = time.time() classifier = classify_3HL_28000TrainSize.Classifier(resultDir, modelName, x_train, y_train_oh, x_dev, y_dev_oh, x_test, y_test_oh, drop1, drop2, drop3)