def loss_callback(var, literals, nprint=50, nsave=50, maxiter=500, t0=time()): print('Callback') #losses = literals['losses'] loss = var[0] reconmeshes = var[1] #nit = len(losses) %(maxiter*2) #losses.append(loss) nit, losses = var[2] if nit % nprint == 0: print('Time taken for iterations %d = ' % nit, time() - t0) print(nit, " - Loss, chisq, prior, grad : ", loss) fname = optfolder + '/%d.png' % nit stime = time() #dg.savehalofig(literals['truemeshes'], reconmeshes[0], fname, literals['hgraph'], boxsize=bs, title='%s'%loss) dg.makefig(literals['truemeshes'], reconmeshes, fname, boxsize=bs, title='%s' % loss) print('Time taken to make figure = ', time() - stime) if nit % nsave == 0: np.save(optfolder + '/iter%d.f4' % nit, reconmeshes) np.savetxt(optfolder + '/losses.txt', np.array(losses)) print('Called')
def checkiter(mode, optfolder, R0=0): print('\nChecking mode = %s\n' % mode) meshs, meshf, meshd = session.run([linmesh, final, samples], {Rsm: R0}) title = session.run([loss, chisq, prior, grad], {Rsm: R0}) np.save(optfolder + '/%s%d.f4' % (mode, R0), meshs) dg.makefig(literals['truemeshes'], [meshs, meshf, meshd], optfolder + '%s%d.png' % (mode, R0), boxsize=bs, title='%s' % title)
initlin = g.get_tensor_by_name('initlin:0') session.run(initlinop, {initlin:initsplit[ii]}) init, recon = [], [] if anneal: pass else: optfolder = ofolder + '/vox%02d'%ii try: os.makedirs(optfolder) except:pass print('Output in ofolder = \n%s'%optfolder) meshs, meshf, meshd = session.run([linmesh, final, samples]) title = session.run([loss, chisq, prior, grad]) np.save(optfolder + '/init.f4', meshs) dg.makefig(literals['truemeshes'], [meshs, meshf, meshd], optfolder+'%s.png'%('init'), boxsize=bs, title='%s'%title) optimizer.minimize(session, loss_callback=lcallback, fetches=[[[loss, chisq, prior, grad], [linmesh, final, samples]]]) meshs, meshf, meshd = session.run([linmesh, final, samples]) title = session.run([loss, chisq, prior, grad]) reconsplit[ii] = meshs np.save(optfolder + '/recon.f4', meshs) dg.makefig(literals['truemeshes'], [meshs, meshf, meshd], optfolder+'%s.png'%('recon'), boxsize=bs, title='%s'%title) initval = dtools.uncubify(np.stack(reconsplit, axis=0), [nc,nc,nc]) recong = rmods.graphhposft1(config, modpath, data, pad, maxiter=maxiter, gtol=gtol, anneal=anneal, resnorm=resnorm) losses = [] literals = {'losses':losses, 'truemeshes':truemeshes, 'bs':bs, 'nc':nc} tstart = time()