Exemplo n.º 1
0
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=",")
Exemplo n.º 2
0
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)