def run_search(self): print "begin PES:" try: del (self.pesobj) except: pass self.pesobj = PES.PES_inplane( self.X, self.Y, self.S, self.D, self.lb.flatten(), self.ub.flatten(), self.para['kindex'], self.para['mprior'], self.para['sprior'], self.para['axis'], self.para['value'], DH_SAMPLES=self.para['DH_SAMPLES'], DM_SAMPLES=self.para['DM_SAMPLES'], DM_SUPPORT=self.para['DM_SUPPORT'], DM_SLICELCBPARA=self.para['DM_SLICELCBPARA'], mode=self.para['SUPPORT_MODE'], noS=True) self.train_costest() [Qmin, ymin, ierror] = self.pesobj.search_acq(self.costest, self.para['sfn'], volper=self.para['volper']) return [Qmin, 0., [sp.NaN]]
def PESbsaq(optstate, persist, **para): para = copy.deepcopy(para) if persist == None: persist = {'n': 0, 'd': len(para['ub'])} n = persist['n'] d = persist['d'] if n < para['nrandinit']: persist['n'] += 1 para['ev']['xa'] = sp.random.uniform(para['xal'], para['xau']) return randomaq(optstate, persist, **para) logger.info('PESssaq') x = sp.hstack( [sp.vstack([e['xa'] for e in optstate.ev]), sp.vstack(optstate.x)]) y = sp.vstack(optstate.y) s = sp.vstack([e['s'] for e in optstate.ev]) dx = [e['d'] for e in optstate.ev] print "\n at pesinplane x {} axis 0".format(x) pesobj = PES.PES_inplane(x, y, s, dx, [para['xal']] + para['lb'], [para['xau']] + para['ub'], para['kindex'], para['mprior'], para['sprior'], 0, 0, DH_SAMPLES=para['DH_SAMPLES'], DM_SAMPLES=para['DM_SAMPLES'], DM_SUPPORT=para['DM_SUPPORT'], DM_SLICELCBPARA=para['DM_SLICELCBPARA'], mode=para['SUPPORT_MODE']) if para['traincfn']: # #print "XXXXXXXXXXXXXXx" cx = sp.vstack([e['xa'] for e in optstate.ev]) cc = sp.vstack([e for e in optstate.c]) #print cx #print cc #print optstate.ev #print optstate.x cfn = objectives.traincfn(cx, cc) """ if len(cc)%5==0: from matplotlib import pyplot as plt f,a = plt.subplots(1) xt = sp.linspace(0,1,100) m = sp.empty(100) for i in xrange(100): m[i]=cfn(0.,**{'xa':xt[i]}) a.plot(xt,m,'b') for i in xrange(len(optstate.c)): a.plot(cx[i,0],cc[i,0],'ro') plt.show() """ else: cfn = para['cfn'] [xmin, ymin, ierror] = pesobj.search_acq(cfn, lambda s: para['ev']['s'], volper=para['volper']) logger.debug([xmin, ymin, ierror]) para['ev']['xa'] = xmin[0] xout = [i for i in xmin[1:]] return xout, para['ev'], persist, { 'HYPdraws': [k.hyp for k in pesobj.G.kf], 'mindraws': pesobj.Z, 'DIRECTmessage': ierror, 'PESmin': ymin }
sp.array([1.5, 0.55, 0.25])) kindex = GPdc.SQUEXP mprior = sp.array([0.] + [-1.] * d) sprior = sp.array([1.] * (d + 1)) axis = 0 value = 0. pesobj = PES.PES_inplane(X, Y, S, D, lb, ub, kindex, mprior, sprior, axis, value, DH_SAMPLES=8, DM_SAMPLES=8, DM_SUPPORT=400, DM_SLICELCBPARA=1., AM_POLICY=PES.NOMIN, mode=ESutils.SUPPORT_SLICEEI) def cfn(x): return 1. - (0.6 * x[0])**0.1 def sfn(x):