def postProcess(experiment): if not isinstance(experiment, Experiment): experiment = Experiment(experiment) inferenceDir = experiment.getInferenceDirectory() # Use level1 rather than level1_sp because the latter # is still in learning mode # use "all" rather than level1 because level1_sp is not created by default experiment.loadNetwork("all") net = experiment.network # Analyze the trained network and extract the auxiliary data structures netInfo = _analyzeTrainedNet(net=net, options=dict()) # ------------------------------------------------------------------------ # Get the list of tests, and the list of baselines required testNames = [test['name'] for test in experiment.description['infer']] testOptions = [test.get('ppOptions', dict()) for test in experiment.description['infer']] standaloneTests = list(testNames) options = dict(zip(testNames, testOptions)) baselineTestNames = set() for testName in testNames: (datasetName, testVariant) = testName.split('_') if testVariant == 'baseline': baselineTestNames.add(testName) # ------------------------------------------------------------------------ # For each baseline, train the classifier, and then run each variant that uses # that baseline for baselineTestName in baselineTestNames: (baseDatasetName, baseVariantName) = baselineTestName.split('_') assert(baseVariantName == 'baseline') standaloneTests.remove(baselineTestName) baseline = _analyzeTestRun(experiment, netInfo=netInfo, options=options[baselineTestName], datasetName=baseDatasetName, testVariantName=baseVariantName, baseline=None) # Now, run each variant that uses this baseline for testName in testNames: (datasetName, variantName) = testName.split('_') if datasetName != baseDatasetName or variantName == 'baseline': continue standaloneTests.remove(testName) _analyzeTestRun(experiment, netInfo=netInfo, options=options[testName], datasetName=datasetName, testVariantName=variantName, baseline=baseline) # Run each standalone test for testName in standaloneTests: (datasetName, variantName) = testName.split('_') _analyzeTestRun(experiment, netInfo=netInfo, options=options[testName], datasetName=datasetName, testVariantName=variantName, baseline=None)
def postProcess(experiment): if not isinstance(experiment, Experiment): experiment = Experiment(experiment) inferenceDir = experiment.getInferenceDirectory() # Use level1 rather than level1_sp because the latter # is still in learning mode # use "all" rather than level1 because level1_sp is not created by default experiment.loadNetwork("all") net = experiment.network # Analyze the trained network and extract the auxiliary data structures netInfo = _analyzeTrainedNet(net=net, options=dict()) # ------------------------------------------------------------------------ # Get the list of tests, and the list of baselines required testNames = [test['name'] for test in experiment.description['infer']] testOptions = [ test.get('ppOptions', dict()) for test in experiment.description['infer'] ] standaloneTests = list(testNames) options = dict(zip(testNames, testOptions)) baselineTestNames = set() for testName in testNames: (datasetName, testVariant) = testName.split('_') if testVariant == 'baseline': baselineTestNames.add(testName) # ------------------------------------------------------------------------ # For each baseline, train the classifier, and then run each variant that uses # that baseline for baselineTestName in baselineTestNames: (baseDatasetName, baseVariantName) = baselineTestName.split('_') assert (baseVariantName == 'baseline') standaloneTests.remove(baselineTestName) baseline = _analyzeTestRun(experiment, netInfo=netInfo, options=options[baselineTestName], datasetName=baseDatasetName, testVariantName=baseVariantName, baseline=None) # Now, run each variant that uses this baseline for testName in testNames: (datasetName, variantName) = testName.split('_') if datasetName != baseDatasetName or variantName == 'baseline': continue standaloneTests.remove(testName) _analyzeTestRun(experiment, netInfo=netInfo, options=options[testName], datasetName=datasetName, testVariantName=variantName, baseline=baseline) # Run each standalone test for testName in standaloneTests: (datasetName, variantName) = testName.split('_') _analyzeTestRun(experiment, netInfo=netInfo, options=options[testName], datasetName=datasetName, testVariantName=variantName, baseline=None)