np_meas = matlab_val #np_mean = 1#np.mean(np_meas) #np_meas = np_meas/np_mean #print("Mean of the MEasurement is: "+str(np_mean)) '''Define Cost-function''' # VERY VERY Important to add 0. and 1. - otherwise it gets converted to float! tf_global_phase = tf.Variable(np_global_phase, tf.float32, name='var_phase') # (0.902339905500412 tf_global_abs = tf.Variable(np_global_abs, tf.float32, name='var_abs') #0.36691132 '''REGULARIZER''' # Total Variation print('We are using TV - Regularization') tf_tvloss = muscat.tf_lambda_tv * reg.Reg_TV( muscat.TF_obj, BetaVals=[muscat.dx, muscat.dy, muscat.dz], epsR=muscat.tf_eps, is_circ=True ) #Alernatively tf_total_variation_regularization # total_variation tf_tvloss += muscat.tf_lambda_tv * reg.Reg_TV( muscat.TF_obj_absorption, BetaVals=[muscat.dx, muscat.dy, muscat.dz], epsR=muscat.tf_eps, is_circ=True ) #Alernatively tf_total_variation_regularization # total_variation '''Negativity Constraint''' tf_negsqrloss = lambda_neg * reg.Reg_NegSqr(muscat.TF_obj) tf_negsqrloss += lambda_neg * reg.Reg_NegSqr(muscat.TF_obj_absorption) # Correc the fwd model - not good here! tf_norm = tf.complex(tf_global_phase, tf_global_abs) tf_fwd_corrected = tf_fwd + tf_norm
name='Object_Variable_Imag') ''' Create Model Instance''' tf_fwd = muscat.computemodel() tf_fwd = tf_fwd + 1j '''experiments.regularizer''' # Total Variation tf_regloss = tf.constant(0.) if (experiments.regularizer == 'TV'): # TV experiments.regularizer print('We are using TV - Regularization' ) # (tfin, Eps=1e-15, doubleSided=False,regDataType=None) if (0): mysqrt_real = reg.Reg_TV( muscat.TF_obj, BetaVals=[1, 1, 1], epsR=muscat.tf_eps, is_circ=True ) #Alernatively tf_total_variation_regularization # total_variation tf_regloss_real = tf.reduce_mean(mysqrt_real) mysqrt_imag = reg.Reg_TV( muscat.TF_obj_absorption, BetaVals=[1, 1, 1], epsR=muscat.tf_eps, is_circ=True ) #Alernatively tf_total_variation_regularization # total_variation tf_regloss_imag = tf.reduce_mean(mysqrt_imag) if is_absorption: tf_regloss = muscat.tf_lambda_reg * (tf_regloss_real + tf_regloss_imag) else: tf_regloss = muscat.tf_lambda_reg * (tf_regloss_real)
if (experiments.regularizer == 'TV'): # TV experiments.regularizer print('We are using TV - Regularization' ) # (tfin, Eps=1e-15, doubleSided=False,regDataType=None) # TF_obj_tmp = tf_helper.extract(tf.cast(muscat.TF_obj, tf.float32), muscat.mysize) #TF_obj_absorption_tmp = tf_helper.extract(tf.cast(muscat.TF_obj_absorption, tf.float32), muscat.mysize) #tf_regloss = muscat.tf_lambda_reg*reg.Reg_TV_RH(muscat.TF_obj, Eps=muscat.tf_eps) #Alernatively tf_total_variation_regularization # total_variation #tf_regloss += muscat.tf_lambda_reg*reg.Reg_TV_RH(muscat.TF_obj_absorption, Eps=muscat.tf_eps) #Alernatively tf_total_variation_regularization # total_variation # [muscat.dx,muscat.dy,muscat.dz] tf_regloss += muscat.tf_lambda_reg * reg.Reg_TV( muscat.TF_obj, BetaVals=[ muscat.myparams.dz, muscat.myparams.dx, muscat.myparams.dy ], epsR=muscat.tf_eps, is_circ=True, is_z=True ) #Alernatively tf_total_variation_regularization # total_variation if (is_absorption): tf_regloss += muscat.tf_lambda_reg * reg.Reg_TV( muscat.TF_obj_absorption, BetaVals=[ muscat.myparams.dz, muscat.myparams.dx, muscat.myparams.dy ], epsR=muscat.tf_eps, is_circ=True, is_z=True ) #Alernatively tf_total_variation_regularization # total_variation