Beispiel #1
0
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')
Beispiel #2
0
 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)
Beispiel #3
0
                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()