else:
                tf_regloss = muscat.tf_lambda_reg * (tf_regloss_real)

        tf_regloss_tv, tf_my_tv_loss_map = reg.Reg_TV_RH(
            1e3 * muscat.TF_obj, Eps=muscat.tf_eps
        )  #Alernatively tf_total_variation_regularization # total_variation
        tf_regloss += muscat.tf_lambda_reg * tf_regloss_tv
        if (is_absorption):
            tf_regloss += muscat.tf_lambda_reg * reg.Reg_TV_RH(
                muscat.TF_obj_absorption, Eps=muscat.tf_eps)

    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, 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_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_xy=False)  #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_xy=False)  #Alernatively tf_total_variation_regularization # total_variation

            tf_regloss += muscat.tf_lambda_reg * reg.Reg_TV_RH(
                muscat.TF_obj, Eps=muscat.tf_eps
            )  #Alernatively tf_total_variation_regularization # total_variation
            if (is_absorption):
                tf_regloss += muscat.tf_lambda_reg * reg.Reg_TV_RH(
                    muscat.TF_obj_absorption, Eps=muscat.tf_eps)

        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(
Пример #3
0
        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
else:
    # Goods Roughness
    print('We are using GOODS ROUGHNESS - Regularization')
    tf_tvloss = muscat.tf_lambda_tv * reg.Reg_GR(
        muscat.TF_obj
    )  #Alernatively tf_total_variation_regularization # total_variation
    tf_tvloss += muscat.tf_lambda_tv * reg.Reg_GR(muscat.TF_obj_absorption)
'''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_fwd_corrected = tf_fwd / tf.cast(
    tf.abs(tf_global_abs), tf.complex64) * tf.exp(
        1j * tf.cast(tf_global_phase, tf.complex64))
'''Define Loss-function'''
if (0):
    print('-------> ATTENTION Losstype is L1')
    tf_fidelity = tf.reduce_mean(
        (tf.abs(muscat.tf_meas - tf_fwd_corrected)