def setExperiment(self, experiment): Adapter.setExperiment(self, experiment) if self.scaleActions: if self.experiment.conditions['discreteActions']: self.scaleActions = False else: if len(self.scaleActions) != self.experiment.conditions['actionDim']: # TODO: use less generic exception, e.g. AdapterException raise SystemExit('scaleActions must contain a pair of min/max values for each action dimension (%i). Only %i are given.'%(self.inConditions['actionDim'], len(scaleActions))) for p in self.scaleActions: if len(p) != 2: raise SystemExit('scaleActions must contain a pair of min/max values for each action dimension. %s is not a pair. '%str(p)) if self.normalizeStates: if self.experiment.conditions['discreteStates']: self.normalizeStates = False else: if self.autoNormalization: self.minStates = inf * ones(self.experiment.conditions['stateDim']) self.maxStates = -inf * ones(self.experiment.conditions['stateDim']) else: self.minStates = array([tp[0] for tp in self.normalizeStates]) self.maxStates = array([tp[1] for tp in self.normalizeStates]) self.minReward = inf self.maxReward = -inf
def setExperiment(self, experiment): Adapter.setExperiment(self, experiment) if self.stateIndices and not self.experiment.conditions['discreteStates']: self.outConditions['stateDim'] = len(self.stateIndices) if self.actionIndices and not self.experiment.conditions['discreteActions']: self.outConditions['actionDim'] = len(self.actionIndices)