tf_regloss += muscat.tf_lambda_reg * reg.Reg_GR( muscat.TF_obj, muscat.tf_eps, muscat.tf_eps ) #, eps1=muscat.tf_eps, eps2=muscat.tf_eps) #Alernatively tf_total_variation_regularization # total_variation if is_absorption: tf_regloss += muscat.tf_lambda_reg * reg.Reg_GR( muscat.TF_obj_absorption, muscat.tf_eps, muscat.tf_eps) elif (experiments.regularizer == 'L1'): # L1 rgularizer print('We are using L1 - Regularization') tf_regloss += muscat.tf_lambda_reg * ( reg.Reg_L1(muscat.TF_obj) + reg.Reg_L1(muscat.TF_obj_absorption)) elif (experiments.regularizer == 'L2'): # L1 rgularizer print('We are using L2 - Regularization') tf_regloss = muscat.tf_lambda_reg * ( reg.Reg_L2(muscat.TF_obj) + reg.Reg_L2(muscat.TF_obj_absorption)) tf_zernloss = experiments.lambda_zernike * reg.Reg_L2( muscat.TF_zernikefactors ) # general loss on the zernike modes - don't over estimate them by value! tf_icshiftloss = experiments.lambda_icshift * reg.Reg_L2( tf.cast(muscat.TF_shiftIcX + muscat.TF_shiftIcY, tf.float32)) # fuse all loss functions tf_regloss += tf_zernloss tf_regloss += tf_icshiftloss '''Negativity Constraint''' if (0): #tf_negsqrloss = reg.Reg_NegSqr(tf_helper.extract(tf.cast(muscat.TF_obj, tf.float32), muscat.mysize))#-tf.minimum(tf.reduce_min(muscat.TF_obj-1.),0) tf_negsqrloss = reg.Reg_NegSqr( muscat.TF_obj - myparams.nEmbb -
elif (experiments.regularizer == 'GR'): # Goods roughness rgularizer print('We are using GR - Regularization') tf_regloss += muscat.tf_lambda_reg * ( reg.Reg_GR(muscat.TF_obj) + reg.Reg_GR(muscat.TF_obj_absorption) ) #, eps1=muscat.tf_eps, eps2=muscat.tf_eps) #Alernatively tf_total_variation_regularization # total_variation elif (experiments.regularizer == 'L1'): # L1 rgularizer print('We are using L1 - Regularization') tf_regloss += muscat.tf_lambda_reg * (reg.Reg_L1( muscat.TF_obj) + reg.Reg_L1(muscat.TF_obj_absorption)) elif (experiments.regularizer == 'L2'): # L1 rgularizer print('We are using L2 - Regularization') tf_regloss = muscat.tf_lambda_reg * (reg.Reg_L2( muscat.TF_obj) + reg.Reg_L2(muscat.TF_obj_absorption)) if (0): tf_zernloss = experiments.lambda_zernike * reg.Reg_L2( muscat.TF_zernikefactors ) # general loss on the zernike modes - don't over estimate them by value! tf_icshiftloss = experiments.lambda_icshift * reg.Reg_L2( muscat.TF_shiftIcX + muscat.TF_shiftIcY) # fuse all loss functions tf_regloss += tf_zernloss tf_regloss += tf_icshiftloss '''Define Optimizer''' '''Negativity Constraint''' #tf_negsqrloss = reg.Reg_NegSqr(tf_helper.extract(tf.cast(muscat.TF_obj, tf.float32), muscat.mysize))#-tf.minimum(tf.reduce_min(muscat.TF_obj-1.),0) tf_negsqrloss = reg.Reg_NegSqr(
elif (experiments.regularizer == 'GR'): # Goods roughness rgularizer print('We are using GR - Regularization') tf_regloss += muscat.tf_lambda_tv * ( reg.Reg_GR(muscat.TF_obj) + reg.Reg_GR(muscat.TF_obj_absorption) ) #, eps1=muscat.tf_eps, eps2=muscat.tf_eps) #Alernatively tf_total_variation_regularization # total_variation elif (experiments.regularizer == 'L1'): # L1 rgularizer print('We are using GR - Regularization') tf_regloss += muscat.tf_lambda_tv * ( reg.Reg_L1(muscat.TF_obj) + reg.Reg_L1(muscat.TF_obj_absorption)) elif (experiments.regularizer == 'L2'): # L1 rgularizer print('We are using GR - Regularization') tf_regloss = muscat.tf_lambda_tv * ( reg.Reg_L2(muscat.TF_obj) + reg.Reg_L2(muscat.TF_obj_absorption)) tf_zernloss = experiments.lambda_zernike * reg.Reg_L2( muscat.TF_zernikefactors + 10 * (muscat.TF_shiftIcX + muscat.TF_shiftIcY) ) # general loss on the zernike modes - don't over estimate them by value! tf_regloss += tf_zernloss '''Define Optimizer''' '''Negativity Constraint''' #tf_negsqrloss = reg.Reg_NegSqr(tf_helper.extract(tf.cast(muscat.TF_obj, tf.float32), muscat.mysize))#-tf.minimum(tf.reduce_min(muscat.TF_obj-1.),0) tf_negsqrloss = reg.Reg_NegSqr( muscat.TF_obj) #-tf.minimum(tf.reduce_min(muscat.TF_obj-1.),0) tf_negsqrloss += reg.Reg_NegSqr(muscat.TF_obj_absorption) tf_negsqrloss *= experiments.lambda_neg # Correc the fwd model - not good here! tf_glob_real = tf.Variable(0., 'tf_glob_real') tf_glob_imag = tf.Variable(0., 'tf_glob_imag')