def __init__(self,gm,accumulator=None,parameter=InfParam()): if accumulator is None: self.accumulator=defaultAccumulator(gm=gm) else: self.accumulator=accumulator kwargs=parameter.kwargs self.gm_=gm self.arg_ = None self.value_ = None self.initType = kwargs.get('initType', 'localOpt')
def __init__(self, gm, accumulator=None, parameter=InfParam()): if accumulator is None: self.accumulator = defaultAccumulator(gm=gm) else: self.accumulator = accumulator kwargs = parameter.kwargs self.gm_ = gm self.arg_ = None self.value_ = None self.initType = kwargs.get('initType', 'localOpt')
def __init__(self,gm,accumulator=None,parameter=InfParam()): print "fresh constructor " if accumulator is None: self.accumulator=defaultAccumulator(gm=gm) else: self.accumulator=accumulator kwargs=parameter.kwargs self.gm_=gm self.solverList = kwargs.get('solvers', []) self.parameterList = kwargs.get('parameters', []) self.arg_ = numpy.zeros(gm.numberOfVariables,dtype=numpy.uint64)
def __init__(self, gm, accumulator=None, parameter=InfParam()): if accumulator is None: self.accumulator = defaultAccumulator(gm=gm) else: self.accumulator = accumulator kwargs = parameter.kwargs self.gm_ = gm self.steps = kwargs.get('steps', 100) self.fusionSolver = kwargs.get('fuisionSolver', 'lf2') self.arg_ = None self.value_ = None self.fusionMover = inference.adder.minimizer.FusionMover(self.gm_) self.nLabels = self.gm_.numberOfLabels(0) self.nVar = self.gm_.numberOfVariables
def __init__(self, gm, accumulator=None, parameter=InfParam()): if accumulator is None: self.accumulator = defaultAccumulator(gm=gm) else: self.accumulator = accumulator kwargs = parameter.kwargs self.gm_ = gm self.steps = kwargs.get("steps", 100) self.fusionSolver = kwargs.get("fuisionSolver", "lf2") self.arg_ = None self.value_ = None self.fusionMover = inference.adder.minimizer.FusionMover(self.gm_) self.nLabels = self.gm_.numberOfLabels(0) self.nVar = self.gm_.numberOfVariables
def inference_init(self, gm, accumulator=None, parameter=None): # self._old_init() # set up basic properties self.gm = gm self.operator = gm.operator if accumulator is None: self.accumulator = defaultAccumulator(gm) else: self.accumulator = accumulator self._meta_parameter = parameter # get hyper parameter (as minStCut for graphcut, or the subsolver for # dualdec.) hyperParamKeywords = self._infClasses.hyperParameterKeywords numHyperParams = len(hyperParamKeywords) userHyperParams = [None] * numHyperParams collectedHyperParameters = 0 # get the users hyper parameter ( if given) if (self._meta_parameter is not None): for hpIndex, hyperParamKeyword in enumerate(hyperParamKeywords): if hyperParamKeyword in self._meta_parameter.kwargs: userHyperParams[hpIndex] = self._meta_parameter.kwargs.pop( hyperParamKeyword) collectedHyperParameters += 1 # check if ZERO or ALL hyperParamerts have been collected if collectedHyperParameters != 0 and collectedHyperParameters != numHyperParams: raise RuntimeError("All or none hyper-parameter must be given") # check if the WHOLE tuple of hyperParameters is allowed if collectedHyperParameters != 0: if tuple( str(x) for x in userHyperParams) not in inferenceClasses.implDict: raise RuntimeError( "%s is not an allowed hyperParameter\nAllowed hyperParameters are %s" % (repr(userHyperParams), repr(inferenceClasses.implDict.keys()))) else: userHyperParams = defaultHyperParams try: # get the selected inference class and the parameter if (numHyperParams == 0): self._selectedInfClass, self._selectedInfParamClass = inferenceClasses.implDict[ "__NONE__"][(self.operator, self.accumulator)] else: hp = tuple(str(x) for x in userHyperParams) self._selectedInfClass, self._selectedInfParamClass = inferenceClasses.implDict[ hp][(self.operator, self.accumulator)] except: dictStr = str(inferenceClasses.implDict) raise RuntimeError("given seminring (operator = %s ,accumulator = %s) is not implemented for this solver\n %s" % \ (self.operator, self.accumulator,dictStr)) if self._meta_parameter is None: self.parameter = self._selectedInfClass._parameter() self.parameter.set() else: self.parameter = to_native_class_converter( givenValue=self._meta_parameter, nativeClass=self._selectedInfParamClass) assert self.parameter is not None self.inference = self._selectedInfClass(self.gm, self.parameter)
def inference_init(self, gm, accumulator=None, parameter=None): # self._old_init() # set up basic properties self.gm = gm self.operator = gm.operator if accumulator is None: self.accumulator = defaultAccumulator(gm) else: self.accumulator = accumulator self._meta_parameter = parameter # get hyper parameter (as minStCut for graphcut, or the subsolver for # dualdec.) hyperParamKeywords = self._infClasses.hyperParameterKeywords numHyperParams = len(hyperParamKeywords) userHyperParams = [None]*numHyperParams collectedHyperParameters = 0 # get the users hyper parameter ( if given) if(self._meta_parameter is not None): for hpIndex, hyperParamKeyword in enumerate(hyperParamKeywords): if hyperParamKeyword in self._meta_parameter.kwargs: userHyperParams[hpIndex] = self._meta_parameter.kwargs.pop( hyperParamKeyword) collectedHyperParameters += 1 # check if ZERO or ALL hyperParamerts have been collected if collectedHyperParameters != 0 and collectedHyperParameters != numHyperParams: raise RuntimeError("All or none hyper-parameter must be given") # check if the WHOLE tuple of hyperParameters is allowed if collectedHyperParameters != 0: if tuple(str(x) for x in userHyperParams) not in inferenceClasses.implDict: raise RuntimeError("%s is not an allowed hyperParameter\nAllowed hyperParameters are %s" % ( repr(userHyperParams), repr(inferenceClasses.implDict.keys()))) else: userHyperParams = defaultHyperParams try: # get the selected inference class and the parameter if(numHyperParams == 0): self._selectedInfClass, self._selectedInfParamClass = inferenceClasses.implDict[ "__NONE__"][(self.operator, self.accumulator)] else: hp = tuple(str(x) for x in userHyperParams) self._selectedInfClass, self._selectedInfParamClass = inferenceClasses.implDict[ hp][(self.operator, self.accumulator)] except: dictStr=str(inferenceClasses.implDict) raise RuntimeError("given seminring (operator = %s ,accumulator = %s) is not implemented for this solver\n %s" % \ (self.operator, self.accumulator,dictStr)) if self._meta_parameter is None: self.parameter = self._selectedInfClass._parameter() self.parameter.set() else: self.parameter = to_native_class_converter( givenValue=self._meta_parameter, nativeClass=self._selectedInfParamClass) assert self.parameter is not None self.inference = self._selectedInfClass(self.gm, self.parameter)