Esempio n. 1
0
        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')