def loadRepeatedExperiments(expDir, killCellPercentRange, seedRange, killCellAt): meanAccuracy = [] stdAccuracy = [] for killCellPercent in killCellPercentRange: accuracyList = [] for seed in range(10): if killCellPercent == 0: experiment = os.path.join( expDir, "kill_cell_percent{:1.1f}seed{:1.1f}/0.log".format( killCellPercent, seed)) else: experiment = os.path.join( expDir, "kill_cell_percent{:1.2f}seed{:1.1f}/0.log".format( killCellPercent, seed)) expResults = readExperiment(experiment) print "Load Experiment: ", experiment (accuracy, x) = computeAccuracy(expResults['predictions'], expResults['truths'], expResults['iterations'], resets=expResults['resets'], randoms=expResults['randoms']) idx = numpy.array([i for i in range(len(x)) if x[i] > killCellAt]) accuracy = numpy.array(accuracy) accuracyList.append( float(numpy.sum(accuracy[idx])) / len(accuracy[idx])) meanAccuracy.append(numpy.mean(accuracyList)) stdAccuracy.append(numpy.std(accuracyList)) return meanAccuracy, stdAccuracy
def loadRepeatedExperiments(expDir, killCellPercentRange, seedRange, killCellAt): meanAccuracy = [] stdAccuracy = [] for killCellPercent in killCellPercentRange: accuracyList = [] for seed in range(10): if killCellPercent == 0: experiment = os.path.join( expDir,"kill_cell_percent{:1.1f}seed{:1.1f}/0.log".format( killCellPercent, seed)) else: experiment = os.path.join( expDir,"kill_cell_percent{:1.2f}seed{:1.1f}/0.log".format( killCellPercent, seed)) expResults = readExperiment(experiment) print "Load Experiment: ", experiment (accuracy, x) = computeAccuracy(expResults['predictions'], expResults['truths'], expResults['iterations'], resets=expResults['resets'], randoms=expResults['randoms']) idx = numpy.array([i for i in range(len(x)) if x[i] > killCellAt]) accuracy = numpy.array(accuracy) accuracyList.append(float(numpy.sum(accuracy[idx])) / len(accuracy[idx])) meanAccuracy.append(numpy.mean(accuracyList)) stdAccuracy.append(numpy.std(accuracyList)) return meanAccuracy, stdAccuracy
def loadExperiment(experiment): print "Loading experiment ", experiment data = readExperiment(experiment) (accuracy, x) = computeAccuracy(data['predictions'], data['truths'], data['iterations'], resets=data['resets'], randoms=data['randoms']) return (accuracy, x)
from plot import readExperiment mpl.rcParams['pdf.fonttype'] = 42 pyplot.ion() pyplot.close('all') if __name__ == '__main__': experiments = [ os.path.join("lstm/results", "high-order-noise", "inject_noise_after0.0", "0.log"), os.path.join("tm/results", "high-order-noise", "inject_noise_after0.0", "0.log") ] for experiment in experiments: data = readExperiment(experiment) (accuracy, x) = computeAccuracy(data['predictions'], data['truths'], data['iterations'], resets=data['resets'], randoms=data['randoms']) plotAccuracy((accuracy, x), data['trains'], window=100, type=type, label='NoiseExperiment', hideTraining=True, lineSize=1.0) pyplot.xlim([10500, 14500]) pyplot.xlabel('Number of elements seen')
plt.ion() plt.close('all') if __name__ == '__main__': outdir = 'tm/result/' KILLCELL_PERCENT = list(numpy.arange(7) / 10.0) accuracyListTM = [] accuracyListLSTM = [] accuracyListELM = [] for killCellPercent in KILLCELL_PERCENT: # HTM experiments experiment = os.path.join(outdir, "kill_cell_percent{:1.1f}".format( killCellPercent)) + '/0.log' expResults = readExperiment(experiment) killCellAt = 10000 (accuracy, x) = computeAccuracy(expResults['predictions'][killCellAt:], expResults['truths'][killCellAt:], expResults['iterations'][killCellAt:], resets=expResults['resets'][killCellAt:], randoms=expResults['randoms'][killCellAt:]) accuracyListTM.append(float(numpy.sum(accuracy)) / len(accuracy)) # LSTM experiments experiment = 'lstm/results/high-order-distributed-random-kill-cell/' \ 'kill_cell_percent' + "{:1.2f}".format(killCellPercent) + '/0.log' expResults = readExperiment(experiment)
mpl.rcParams['pdf.fonttype'] = 42 pyplot.ion() if __name__ == '__main__': outdir = 'tm/result/' KILLCELL_PERCENT = list(numpy.arange(7) / 10.0) accuracyListTM = [] accuracyListLSTM = [] for killCellPercent in KILLCELL_PERCENT: experiment = os.path.join( outdir, "kill_cell_percent{:1.1f}".format(killCellPercent)) + '/0.log' (predictions, truths, iterations, resets, randoms, trains, killCell) = readExperiment(experiment) killCellAt = 10000 (accuracy, x) = computeAccuracy(predictions[killCellAt:], truths[killCellAt:], iterations[killCellAt:], resets=resets[killCellAt:], randoms=randoms[killCellAt:]) accuracyListTM.append(float(numpy.sum(accuracy)) / len(accuracy)) experiment = 'lstm/results/high-order-distributed-random-kill-cell/' \ 'kill_cell_percent' + "{:1.2f}".format(killCellPercent) + '/0.log' (predictions, truths, iterations, resets, randoms, killCell) = readExperiment(experiment)
lengths = [10, 20, 40, 60, 80, 100] tmResults = os.path.join("tm/results", "high-order-variable-length") try: # Load raw experiment results # You have to run the experiments in ./tm # python tm_suite.py --experiment="high-order-variable-length" -d expResults = {} for length in lengths: experiment = os.path.join(tmResults, "sequence_length"+"{:.1f}".format(length), "0.log") print "Load Experiment", experiment data = readExperiment(experiment) (accuracy, numIteration, numSequences) = computeAccuracyEnding( data['predictions'], data['truths'], data['iterations'], resets=data['resets'], randoms=data['randoms'], sequenceCounter=data['sequenceCounter']) (accuracyAll, numIterationAll, numSequencesAll) = computeAccuracy( data['predictions'], data['truths'], data['iterations'], resets=data['resets'],