#for x in range(2): tractor.optimize(alphas=[1e-3, 1e-2, 0.1, 1]) labels.append((len(mem), 'opt %i' % x)) mem.append(memuse()) nun = gc.collect() print nun, 'unreachable objects' track('opt') if False: for x in range(10): p0 = np.array(tractor.getParams()) ss = np.array(tractor.getStepSizes()) p0 += ss * np.random.normal(0., 1e-3, size=len(p0)) tractor.setParams(p0) mod = tractor.getModelImage(im) labels.append((len(mem), 'mod %i' % x)) mem.append(memuse()) track('mod') for x in range(10): p0 = np.array(tractor.getParams()) ss = np.array(tractor.getStepSizes()) p0 += ss * np.random.normal(0., 1e-3, size=len(p0)) tractor.setParams(p0) dervs = tractor.getDerivs() labels.append((len(mem), 'derivs %i' % x)) mem.append(memuse())
from astrometry.util.file import * pickle_to_file(dict(allpp=allpp, alllnp=alllnp, tractor=tractor), 'sample.pickle') rstate = None lnp = None for step in range(nsteps): print('Taking step', step) pp,lnp,rstate = sampler.run_mcmc(pp, 1, lnprob0=lnp, rstate0=rstate) print('Max lnprob:', np.max(lnp)) i = np.argmax(lnp.ravel()) pbest = pp[i,:] print('Best params:', pbest) tractor.setParams(pbest) mod1 = tractor.getModelImage(0) resid1 = w1 - mod1 mod2 = tractor.getModelImage(1) resid2 = w2 - mod2 rgb = resid_rgb(resid1, resid2) plt.clf() dimshow(rgb) plt.title('Residuals') lbticks(wcs, xlo,ylo) plt.savefig('resid.png') allpp[step,:,:] = pp alllnp[step,:] = lnp