src/HOL/Tools/Sledgehammer/MaSh/src/tester.py
author blanchet
Tue, 20 Aug 2013 14:36:22 +0200
changeset 53100 1133b9e83f09
parent 50951 e1cbaa7d5536
permissions -rw-r--r--
new version of MaSh tool -- experimental server
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
     1
'''
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
     2
Created on Jan 11, 2013
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
     3
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
     4
Searches for the best parameters.
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
     5
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
     6
@author: Daniel Kuehlwein
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
     7
'''
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
     8
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
     9
import logging,sys,os
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    10
from multiprocessing import Process,Queue,current_process,cpu_count
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    11
from mash import mash
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    12
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    13
def worker(inQueue, outQueue):
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    14
    for func, args in iter(inQueue.get, 'STOP'):        
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    15
        result = func(*args)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    16
        #print '%s says that %s%s = %s' % (current_process().name, func.__name__, args, result)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    17
        outQueue.put(result)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    18
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    19
def run_mash(runId,inputDir,logFile,predictionFile,predef,\
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    20
             learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    21
             NBDefaultPriorWeight,NBDefVal,NBPosWeight,\
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    22
             sineFeatures,sineWeight,quiet=True):
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    23
    # Init
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    24
    runId = str(runId)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    25
    predictionFile = predictionFile + runId
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    26
    args = ['--statistics','--init','--inputDir',inputDir,'--log',logFile,'--theoryFile','../tmp/t'+runId,'--modelFile','../tmp/m'+runId,'--dictsFile','../tmp/d'+runId,
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    27
            '--theoryDefValPos',str(theoryDefValPos),'--theoryDefValNeg',str(theoryDefValNeg),'--theoryPosWeight',str(theoryPosWeight),\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    28
            '--NBDefaultPriorWeight',str(NBDefaultPriorWeight),'--NBDefVal',str(NBDefVal),'--NBPosWeight',str(NBPosWeight)]    
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    29
    if learnTheories:
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    30
        args += ['--learnTheories']    
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    31
    if sineFeatures:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    32
        args += ['--sineFeatures','--sineWeight',str(sineWeight)]
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    33
    if not predef == '':
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    34
        args += ['--predef',predef]
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    35
    if quit:
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    36
        args += ['-q']
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    37
    #print args
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    38
    mash(args)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    39
    # Run
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    40
    args = ['-i',inputFile,'-p',predictionFile,'--statistics','--cutOff','1024','--log',logFile,'--theoryFile','../tmp/t'+runId,'--modelFile','../tmp/m'+runId,'--dictsFile','../tmp/d'+runId,\
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    41
            '--theoryDefValPos',str(theoryDefValPos),'--theoryDefValNeg',str(theoryDefValNeg),'--theoryPosWeight',str(theoryPosWeight),\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    42
            '--NBDefaultPriorWeight',str(NBDefaultPriorWeight),'--NBDefVal',str(NBDefVal),'--NBPosWeight',str(NBPosWeight)]
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    43
    if learnTheories:
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    44
        args += ['--learnTheories']    
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    45
    if sineFeatures:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    46
        args += ['--sineFeatures','--sineWeight',str(sineWeight)]
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    47
    if not predef == '':
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    48
        args += ['--predef',predef]
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    49
    if quit:
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    50
        args += ['-q']
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    51
    #print args
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    52
    mash(args)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    53
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    54
    # Get Results
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    55
    IS = open(logFile,'r')
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    56
    lines =  IS.readlines()
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    57
    tmpRes = lines[-1].split()
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    58
    avgAuc = tmpRes[5]
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    59
    medianAuc = tmpRes[7]
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    60
    avgRecall100 = tmpRes[11]
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    61
    medianRecall100 = tmpRes[13]
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    62
    tmpTheoryRes = lines[-3].split()
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    63
    if learnTheories:
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    64
        avgTheoryPrecision = tmpTheoryRes[5] 
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    65
        avgTheoryRecall100 = tmpTheoryRes[7]
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    66
        avgTheoryRecall = tmpTheoryRes[9]
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    67
        avgTheoryPredictedPercent = tmpTheoryRes[11]
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    68
    else:
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    69
        avgTheoryPrecision = 'NA' 
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    70
        avgTheoryRecall100 = 'NA'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    71
        avgTheoryRecall = 'NA'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    72
        avgTheoryPredictedPercent = 'NA'    
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    73
    IS.close()
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    74
    
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    75
    # Delete old models
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    76
    os.remove(logFile)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    77
    os.remove(predictionFile)
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    78
    if learnTheories:
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    79
        os.remove('../tmp/t'+runId)
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    80
    os.remove('../tmp/m'+runId)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    81
    os.remove('../tmp/d'+runId)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    82
    
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    83
    outFile = open('tester','a')
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    84
    #print 'avgAuc %s avgRecall100 %s avgTheoryPrecision %s avgTheoryRecall100 %s avgTheoryRecall %s avgTheoryPredictedPercent %s'
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    85
    outFile.write('\t'.join([str(learnTheories),str(theoryDefValPos),str(theoryDefValNeg),str(theoryPosWeight),\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    86
                             str(NBDefaultPriorWeight),str(NBDefVal),str(NBPosWeight),str(sineFeatures),str(sineWeight),\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    87
                             str(avgAuc),str(medianAuc),str(avgRecall100),str(medianRecall100),str(avgTheoryPrecision),\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    88
                             str(avgTheoryRecall100),str(avgTheoryRecall),str(avgTheoryPredictedPercent)])+'\n')
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    89
    outFile.close()
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    90
    print learnTheories,'\t',theoryDefValPos,'\t',theoryDefValNeg,'\t',theoryPosWeight,'\t',\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    91
        NBDefaultPriorWeight,'\t',NBDefVal,'\t',NBPosWeight,'\t',\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    92
        sineFeatures,'\t',sineWeight,'\t',\
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    93
        avgAuc,'\t',medianAuc,'\t',avgRecall100,'\t',medianRecall100,'\t',\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
    94
        avgTheoryPrecision,'\t',avgTheoryRecall100,'\t',avgTheoryRecall,'\t',avgTheoryPredictedPercent    
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    95
    return learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    96
             NBDefaultPriorWeight,NBDefVal,NBPosWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    97
             sineFeatures,sineWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    98
             avgAuc,avgRecall100,avgTheoryPrecision,avgTheoryRecall100,avgTheoryRecall,avgTheoryPredictedPercent 
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
    99
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   100
def update_best_params(avgRecall100,bestAvgRecall100,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   101
                       bestNBDefaultPriorWeight,bestNBDefVal,bestNBPosWeight,bestSineFeatures,bestSineWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   102
                       bestlearnTheories,besttheoryDefValPos,besttheoryDefValNeg,besttheoryPosWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   103
                       NBDefaultPriorWeight,NBDefVal,NBPosWeight,sineFeatures,sineWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   104
                       learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight):
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   105
                        if avgRecall100 > bestAvgRecall100:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   106
                            bestAvgRecall100 = avgRecall100
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   107
                            bestNBDefaultPriorWeight = NBDefaultPriorWeight
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   108
                            bestNBDefVal = NBDefVal
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   109
                            bestNBPosWeight = NBPosWeight
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   110
                            bestSineFeatures = sineFeatures
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   111
                            bestSineWeight = sineWeight  
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   112
                        return bestlearnTheories,besttheoryDefValPos,besttheoryDefValNeg,besttheoryPosWeight,bestNBDefaultPriorWeight,bestNBDefVal,bestNBPosWeight,bestSineFeatures,bestSineWeight
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   113
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   114
if __name__ == '__main__':
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   115
    cores = cpu_count()
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   116
    #cores = 1
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   117
    # Options
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   118
    depFile = 'mash_dependencies'
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   119
    predef = ''
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   120
    outputDir = '../tmp/'
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   121
    numberOfPredictions = 1024
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   122
    
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   123
    learnTheoriesRange = [True,False]
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   124
    theoryDefValPosRange = [-x for x in range(1,20)]
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   125
    theoryDefValNegRange = [-x for x in range(1,20)]
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   126
    theoryPosWeightRange = [x for x in range(1,10)]
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   127
    
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   128
    NBDefaultPriorWeightRange = [10*x for x in range(10)]
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   129
    NBDefValRange = [-x for x in range(1,20)]
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   130
    NBPosWeightRange = [10*x for x in range(1,10)]
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   131
    sineFeaturesRange = [True,False]    
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   132
    sineWeightRange = [0.1,0.25,0.5,0.75,1.0]
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   133
    
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   134
    """
50951
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   135
    # Test 1
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   136
    inputFile = '../data/20121227b/Auth/mash_commands'
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   137
    inputDir = '../data/20121227b/Auth/'
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   138
    predictionFile = '../tmp/auth.pred'
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   139
    logFile = '../tmp/auth.log'
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   140
    learnTheories = True
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   141
    theoryDefValPos = -7.5
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   142
    theoryDefValNeg = -15.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   143
    theoryPosWeight = 10.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   144
    NBDefaultPriorWeight = 20.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   145
    NBDefVal =- 15.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   146
    NBPosWeight = 10.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   147
    sineFeatures = True
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   148
    sineWeight =  0.5
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   149
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   150
    task_queue = Queue()
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   151
    done_queue = Queue()
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   152
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   153
    runs = 0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   154
    for inputDir in ['../data/20121227b/Auth/']:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   155
        problemId = inputDir.split('/')[-2]
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   156
        inputFile = os.path.join(inputDir,'mash_commands')
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   157
        predictionFile = os.path.join('../tmp/',problemId+'.pred')
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   158
        logFile = os.path.join('../tmp/',problemId+'.log')
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   159
        learnTheories = True
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   160
        theoryDefValPos = -7.5
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   161
        theoryDefValNeg = -15.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   162
        theoryPosWeight = 10.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   163
        
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   164
        bestAvgRecall100 = 0.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   165
        bestNBDefaultPriorWeight = 1.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   166
        bestNBDefVal = 1.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   167
        bestNBPosWeight = 1.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   168
        bestSineFeatures = False
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   169
        bestSineWeight = 0.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   170
        bestlearnTheories = True
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   171
        besttheoryDefValPos = 1.0 
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   172
        besttheoryDefValNeg = -15.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   173
        besttheoryPosWeight = 5.0
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   174
        for theoryPosWeight in theoryPosWeightRange:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   175
            for theoryDefValNeg in theoryDefValNegRange:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   176
                for NBDefaultPriorWeight in NBDefaultPriorWeightRange:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   177
                    for NBDefVal in NBDefValRange:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   178
                        for NBPosWeight in NBPosWeightRange:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   179
                            for sineFeatures in sineFeaturesRange:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   180
                                if sineFeatures:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   181
                                    for sineWeight in sineWeightRange:  
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   182
                                        localLogFile = logFile+str(runs)                           
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   183
                                        task_queue.put((run_mash,(runs,inputDir, localLogFile, predictionFile, learnTheories, theoryDefValPos, theoryDefValNeg, theoryPosWeight, NBDefaultPriorWeight, NBDefVal, NBPosWeight, sineFeatures, sineWeight)))
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   184
                                        runs += 1
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   185
                                else:
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   186
                                    localLogFile = logFile+str(runs)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   187
                                    task_queue.put((run_mash,(runs,inputDir, localLogFile, predictionFile, learnTheories, theoryDefValPos, theoryDefValNeg, theoryPosWeight, NBDefaultPriorWeight, NBDefVal, NBPosWeight, sineFeatures, sineWeight)))
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   188
                                    runs += 1
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   189
        # Start worker processes
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   190
        processes = []
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   191
        for _i in range(cores):
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   192
            process = Process(target=worker, args=(task_queue, done_queue))
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   193
            process.start()
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   194
            processes.append(process)
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   195
    
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   196
        for _i in range(runs):      
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   197
            learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   198
             NBDefaultPriorWeight,NBDefVal,NBPosWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   199
             sineFeatures,sineWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   200
             avgAuc,avgRecall100,avgTheoryPrecision,avgTheoryRecall100,avgTheoryRecall,avgTheoryPredictedPercent  = done_queue.get()
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   201
            bestlearnTheories,besttheoryDefValPos,besttheoryDefValNeg,besttheoryPosWeight,bestNBDefaultPriorWeight,bestNBDefVal,bestNBPosWeight,bestSineFeatures,bestSineWeight = update_best_params(avgRecall100,bestAvgRecall100,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   202
                       bestNBDefaultPriorWeight,bestNBDefVal,bestNBPosWeight,bestSineFeatures,bestSineWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   203
                       bestlearnTheories,besttheoryDefValPos,besttheoryDefValNeg,besttheoryPosWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   204
                       NBDefaultPriorWeight,NBDefVal,NBPosWeight,sineFeatures,sineWeight,\
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   205
                       learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight)              
e1cbaa7d5536 updated MaSh
blanchet
parents:
diff changeset
   206
        print 'bestAvgRecall100 %s bestNBDefaultPriorWeight %s bestNBDefVal %s bestNBPosWeight %s bestSineFeatures %s bestSineWeight %s',bestAvgRecall100,bestNBDefaultPriorWeight,bestNBDefVal,bestNBPosWeight,bestSineFeatures,bestSineWeight
53100
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   207
    
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   208
    """
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   209
    # Test 2
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   210
    #inputDir = '../data/20130118/Jinja'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   211
    inputDir = '../data/notheory/Prob'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   212
    inputFile = inputDir+'/mash_commands'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   213
    #inputFile = inputDir+'/mash_prover_commands'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   214
    
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   215
    #depFile = 'mash_prover_dependencies'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   216
    depFile = 'mash_dependencies'    
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   217
    outputDir = '../tmp/'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   218
    numberOfPredictions = 1024
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   219
    predictionFile = '../tmp/auth.pred'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   220
    logFile = '../tmp/auth.log'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   221
    learnTheories = False
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   222
    theoryDefValPos = -7.5
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   223
    theoryDefValNeg = -10.0
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   224
    theoryPosWeight = 2.0
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   225
    NBDefaultPriorWeight = 20.0
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   226
    NBDefVal =- 15.0
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   227
    NBPosWeight = 10.0
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   228
    sineFeatures = False
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   229
    sineWeight =  0.5    
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   230
    quiet = False
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   231
    print inputDir
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   232
    
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   233
    #predef = inputDir+'/mash_prover_suggestions'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   234
    predef = inputDir+'/mash_suggestions'    
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   235
    print 'Mash Isar'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   236
    run_mash(0,inputDir,logFile,predictionFile,predef,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   237
             learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   238
             NBDefaultPriorWeight,NBDefVal,NBPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   239
             sineFeatures,sineWeight,quiet=quiet)
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   240
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   241
    #"""
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   242
    predef = inputDir+'/mesh_suggestions'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   243
    #predef = inputDir+'/mesh_prover_suggestions'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   244
    print 'Mesh Isar'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   245
    run_mash(0,inputDir,logFile,predictionFile,predef,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   246
             learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   247
             NBDefaultPriorWeight,NBDefVal,NBPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   248
             sineFeatures,sineWeight,quiet=quiet)
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   249
    #"""
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   250
    predef = inputDir+'/mepo_suggestions'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   251
    print 'Mepo Isar'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   252
    run_mash(0,inputDir,logFile,predictionFile,predef,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   253
             learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   254
             NBDefaultPriorWeight,NBDefVal,NBPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   255
             sineFeatures,sineWeight,quiet=quiet)    
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   256
    
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   257
    """
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   258
    inputFile = inputDir+'/mash_prover_commands'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   259
    depFile = 'mash_prover_dependencies'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   260
    
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   261
    predef = inputDir+'/mash_prover_suggestions'    
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   262
    print 'Mash Prover Isar'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   263
    run_mash(0,inputDir,logFile,predictionFile,predef,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   264
             learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   265
             NBDefaultPriorWeight,NBDefVal,NBPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   266
             sineFeatures,sineWeight,quiet=quiet)
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   267
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   268
    predef = inputDir+'/mesh_prover_suggestions'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   269
    print 'Mesh Prover Isar'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   270
    run_mash(0,inputDir,logFile,predictionFile,predef,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   271
             learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   272
             NBDefaultPriorWeight,NBDefVal,NBPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   273
             sineFeatures,sineWeight,quiet=quiet)
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   274
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   275
    predef = inputDir+'/mepo_suggestions'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   276
    print 'Mepo Prover Isar'
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   277
    run_mash(0,inputDir,logFile,predictionFile,predef,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   278
             learnTheories,theoryDefValPos,theoryDefValNeg,theoryPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   279
             NBDefaultPriorWeight,NBDefVal,NBPosWeight,\
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   280
             sineFeatures,sineWeight,quiet=quiet)
1133b9e83f09 new version of MaSh tool -- experimental server
blanchet
parents: 50951
diff changeset
   281
    #"""