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)
Exemple #3
0
        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