Example #1
0
    def plotcur(logim_step):
        global nit
        nit += 1
	#print "iteration %d" % nit
	#refresh_interval = 100
	if nit%10 == 0:        
		print "iteration %d" % nit
		Frames = np.exp(logim_step.reshape((-1, N_pixel, N_pixel)))
		chi2 = np.sum(mx.chisq(Frames[i].ravel(), A_List[i], vis_List[i], sigma_List[i]) for i in range(N_frame))/N_frame
		s = np.sum(-mx.ssimple(Frames[i].ravel(), nprior_List[i]) for i in range(N_frame))
		s_dynamic = dynamic_regularizer(Frames, gauss)
		print "chi2: %f" % chi2
		print "s: %f" % s
		print "s_dynamic: %f" % s_dynamic
		#plot_i(Frames[0], Prior_List[0], nit, chi2, ipynb=ipynb)
		if nit%refresh_interval == 0:
			plot_i_dynamic(Frames, Prior_List[0], nit, chi2, s, s_dynamic, ipynb=ipynb)        

		if 1==0:
		    numeric_gradient = objgrad_numeric(logim_step)
		    analytic_gradient = objgrad(logim_step)
		    print "Numeric Gradient:"
		    print numeric_gradient 
		    print "Analytic Gradient:"
		    print analytic_gradient
		    print "Max Fractional Difference in gradients:"
		    print max(abs((numeric_gradient - analytic_gradient)/numeric_gradient))
Example #2
0
    def objfunc(logim):
        Frames = np.exp(logim.reshape((-1, N_pixel, N_pixel)))     
        if entropy == "simple":
            s = np.sum(-mx.ssimple(Frames[i].ravel(), nprior_List[i]) for i in range(N_frame))
        elif entropy == "l1":
            s = np.sum(-mx.sl1(Frames[i].ravel(), nprior_List[i]) for i in range(N_frame))
        elif entropy == "gs":
            s = np.sum(-mx.sgs(Frames[i].ravel(), nprior_List[i]) for i in range(N_frame))
        elif entropy == "tv":
            s = np.sum(-mx.stv(Frames[i].ravel(), Prior_List[0].xdim, Prior_List[0].ydim) for i in range(N_frame))

        chisq_total = np.sum(mx.chisq(Frames[i].ravel(), A_List[i], vis_List[i], sigma_List[i]) for i in range(N_frame))/N_frame  
	#print ("chisq_total ",chisq_total)
        s_dynamic = dynamic_regularizer(Frames, gauss)
	#print ("s_dynamic ",s_dynamic)
	#return s_dynamic
        return s + beta * s_dynamic + alpha * (chisq_total - 1.)