diff --git a/.gitignore b/.gitignore index 9d08f4eb..ec01ff77 100644 --- a/.gitignore +++ b/.gitignore @@ -153,3 +153,5 @@ dmypy.json .pyre/ +# WF-PSF Debug +/debug/ diff --git a/debug/candide_helper_eval_plot_script.py b/debug/candide_helper_eval_plot_script.py deleted file mode 100644 index 549650a3..00000000 --- a/debug/candide_helper_eval_plot_script.py +++ /dev/null @@ -1,236 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -import wf_psf as wf - -# ----------------------- # -# WaveDiff-original -args = { - 'model': 'poly', - 'id_name': '_sample_w_bis1_2k', - 'base_path': '/n05data/tliaudat/wf_psf_exp/', - 'log_folder': "log-files/", - 'model_folder': "chkp/", - 'optim_hist_folder': "optim-hist/", - 'plots_folder': "plots/" , - 'dataset_folder': '/home/tliaudat/github/wf-psf/data/coherent_euclid_dataset/', - 'metric_base_path': '/n05data/tliaudat/wf_psf_exp/metrics/', - 'chkp_save_path': '/home/tliaudat/github/wf-psf/papers/article_IOP/data/models/wavediff-original/', - 'train_dataset_file': 'train_Euclid_res_2000_TrainStars_id_001.npy', - 'test_dataset_file': 'test_Euclid_res_id_001.npy', - 'n_zernikes': 15, - 'pupil_diameter': 256, - 'n_bins_lda': 20, - 'output_q': 3., - 'oversampling_rate': 3., - 'output_dim': 32, - 'd_max': 2, - 'd_max_nonparam': 5, - 'x_lims': [0, 1e3], - 'y_lims': [0, 1e3], - 'graph_features': 10, - 'l1_rate': 1e-8, - 'use_sample_weights': True, - 'batch_size': 32, - 'l_rate_param': [0.01,0.004], - 'l_rate_non_param': [0.1,0.06], - 'n_epochs_param': [15,15], - 'n_epochs_non_param': [100,50], - 'total_cycles': 2, - 'saved_model_type': 'checkpoint', - 'saved_cycle': 'cycle2', - 'gt_n_zernikes': 45, - 'eval_batch_size': 16, - 'l2_param': 0., - 'base_id_name': '_sample_w_bis1_', - 'suffix_id_name': '2k', - 'star_numbers': 2000, -} -wf.script_utils.evaluate_model(**args) -wf.script_utils.plot_metrics(**args) - -# ----------------------- # -# WaveDiff-graph -args = { - 'model': 'graph', - 'id_name': '_sample_w_tunned_2k', - 'base_path': '/n05data/tliaudat/wf_psf_exp/', - 'log_folder': "log-files/", - 'model_folder': "chkp/", - 'optim_hist_folder': "optim-hist/", - 'plots_folder': "plots/" , - 'dataset_folder': '/home/tliaudat/github/wf-psf/data/coherent_euclid_dataset/', - 'metric_base_path': '/n05data/tliaudat/wf_psf_exp/metrics/', - 'chkp_save_path': '/home/tliaudat/github/wf-psf/papers/article_IOP/data/models/wavediff-graph/', - 'train_dataset_file': 'train_Euclid_res_2000_TrainStars_id_001.npy', - 'test_dataset_file': 'test_Euclid_res_id_001.npy', - 'n_zernikes': 15, - 'pupil_diameter': 256, - 'n_bins_lda': 20, - 'output_q': 3., - 'oversampling_rate': 3., - 'output_dim': 32, - 'd_max': 2, - 'd_max_nonparam': 3, - 'x_lims': [0, 1e3], - 'y_lims': [0, 1e3], - 'graph_features': 21, - 'l1_rate': 1e-8, - 'use_sample_weights': True, - 'batch_size': 32, - 'l_rate_param': [0.01,0.004], - 'l_rate_non_param': [0.4,0.2], - 'n_epochs_param': [15,15], - 'n_epochs_non_param': [100,50], - 'total_cycles': 2, - 'saved_model_type': 'checkpoint', - 'saved_cycle': 'cycle2', - 'gt_n_zernikes': 45, - 'eval_batch_size': 16, - 'l2_param': 0., - 'base_id_name': '_sample_w_tunned_', - 'suffix_id_name': '2k', - 'star_numbers': 2000, -} -wf.script_utils.evaluate_model(**args) -wf.script_utils.plot_metrics(**args) - -# ----------------------- # -# WaveDiff-polygraph -args = { - 'model': 'mccd', - 'id_name': '_sample_w_bis2_2k', - 'base_path': '/n05data/tliaudat/wf_psf_exp/', - 'log_folder': "log-files/", - 'model_folder': "chkp/", - 'optim_hist_folder': "optim-hist/", - 'plots_folder': "plots/" , - 'dataset_folder': '/home/tliaudat/github/wf-psf/data/coherent_euclid_dataset/', - 'metric_base_path': '/n05data/tliaudat/wf_psf_exp/metrics/', - 'chkp_save_path': '/home/tliaudat/github/wf-psf/papers/article_IOP/data/models/wavediff-polygraph/', - 'train_dataset_file': 'train_Euclid_res_2000_TrainStars_id_001.npy', - 'test_dataset_file': 'test_Euclid_res_id_001.npy', - 'n_zernikes': 15, - 'pupil_diameter': 256, - 'n_bins_lda': 20, - 'output_q': 3., - 'oversampling_rate': 3., - 'output_dim': 32, - 'd_max': 2, - 'd_max_nonparam': 3, - 'x_lims': [0, 1e3], - 'y_lims': [0, 1e3], - 'graph_features': 10, - 'l1_rate': 1e-8, - 'use_sample_weights': True, - 'batch_size': 32, - 'l_rate_param': [0.01,0.004], - 'l_rate_non_param': [0.1,0.06], - 'n_epochs_param': [15,15], - 'n_epochs_non_param': [100,50], - 'total_cycles': 2, - 'saved_model_type': 'checkpoint', - 'saved_cycle': 'cycle2', - 'gt_n_zernikes': 45, - 'eval_batch_size': 16, - 'l2_param': 0., - 'base_id_name': '_sample_w_bis2_', - 'suffix_id_name': '2k', - 'star_numbers': 2000, -} -wf.script_utils.evaluate_model(**args) -wf.script_utils.plot_metrics(**args) - -# ----------------------- # -# WaveDiff-zernike15 -args = { - 'model': 'param', - 'id_name': '_incomplete_15_sample_w_2k', - 'base_path': '/n05data/tliaudat/wf_psf_exp/', - 'log_folder': "log-files/", - 'model_folder': "chkp/", - 'optim_hist_folder': "optim-hist/", - 'plots_folder': "plots/" , - 'dataset_folder': '/home/tliaudat/github/wf-psf/data/coherent_euclid_dataset/', - 'metric_base_path': '/n05data/tliaudat/wf_psf_exp/metrics/', - 'chkp_save_path': '/home/tliaudat/github/wf-psf/papers/article_IOP/data/models/zernike_15/', - 'train_dataset_file': 'train_Euclid_res_2000_TrainStars_id_001.npy', - 'test_dataset_file': 'test_Euclid_res_id_001.npy', - 'n_zernikes': 15, - 'pupil_diameter': 256, - 'n_bins_lda': 20, - 'output_q': 3., - 'oversampling_rate': 3., - 'output_dim': 32, - 'd_max': 2, - 'd_max_nonparam': 3, - 'x_lims': [0, 1e3], - 'y_lims': [0, 1e3], - 'graph_features': 10, - 'l1_rate': 1e-8, - 'use_sample_weights': True, - 'batch_size': 32, - 'l_rate_param': [0.005,0.001], - 'l_rate_non_param': [0.1,0.06], - 'n_epochs_param': [20,20], - 'n_epochs_non_param': [100,50], - 'total_cycles': 2, - 'saved_model_type': 'checkpoint', - 'saved_cycle': 'cycle2', - 'gt_n_zernikes': 45, - 'eval_batch_size': 16, - 'l2_param': 0., - 'base_id_name': '_incomplete_15_sample_w_', - 'suffix_id_name': '2k', - 'star_numbers': 2000, -} -wf.script_utils.evaluate_model(**args) -wf.script_utils.plot_metrics(**args) - -# ----------------------- # -# WaveDiff-zernike45 -args = { - 'model': 'param', - 'id_name': '_incomplete_40_sample_w_bis1_2k', - 'base_path': '/n05data/tliaudat/wf_psf_exp/', - 'log_folder': "log-files/", - 'model_folder': "chkp/", - 'optim_hist_folder': "optim-hist/", - 'plots_folder': "plots/" , - 'dataset_folder': '/home/tliaudat/github/wf-psf/data/coherent_euclid_dataset/', - 'metric_base_path': '/n05data/tliaudat/wf_psf_exp/metrics/', - 'chkp_save_path': '/home/tliaudat/github/wf-psf/papers/article_IOP/data/models/zernike_40/', - 'train_dataset_file': 'train_Euclid_res_2000_TrainStars_id_001.npy', - 'test_dataset_file': 'test_Euclid_res_id_001.npy', - 'n_zernikes': 40, - 'pupil_diameter': 256, - 'n_bins_lda': 20, - 'output_q': 3., - 'oversampling_rate': 3., - 'output_dim': 32, - 'd_max': 2, - 'd_max_nonparam': 3, - 'x_lims': [0, 1e3], - 'y_lims': [0, 1e3], - 'graph_features': 10, - 'l1_rate': 1e-8, - 'use_sample_weights': True, - 'batch_size': 32, - 'l_rate_param': [0.005,0.001], - 'l_rate_non_param': [0.1,0.06], - 'n_epochs_param': [20,20], - 'n_epochs_non_param': [100,50], - 'total_cycles': 2, - 'saved_model_type': 'checkpoint', - 'saved_cycle': 'cycle2', - 'gt_n_zernikes': 45, - 'eval_batch_size': 16, - 'l2_param': 0., - 'base_id_name': '_incomplete_40_sample_w_bis1_', - 'suffix_id_name': '2k', - 'star_numbers': 2000, -} -wf.script_utils.evaluate_model(**args) -wf.script_utils.plot_metrics(**args) - -print('Done..') diff --git a/debug/candide_job_eval_plot.sh b/debug/candide_job_eval_plot.sh deleted file mode 100644 index dd774ae7..00000000 --- a/debug/candide_job_eval_plot.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -########################## -# SMP Script for CANDIDE # -########################## -# Receive email when job finishes or aborts -#PBS -M tobias.liaudat@cea.fr -#PBS -m ea -# Set a name for the job -#PBS -N re_eval_wf_psf -# Join output and errors in one file -#PBS -j oe -# Set maximum computing time (e.g. 5min) -#PBS -l walltime=95:00:00 -# Request number of cores -#PBS -l nodes=n03:ppn=4:hasgpu - -# Full path to environment -export SPENV="$HOME/.conda/envs/shapepipe" -export CONFDIR="$HOME/github/aziz_repos/deep_mccd" - -# Activate conda environment -module purge -module load tensorflow/2.4 -# module load intel/19.0/2 -# source activate shapepipe - -cd /home/tliaudat/github/wf-psf/debug - -# Run scripts -python candide_helper_eval_plot_script.py - -# Return exit code -exit 0 diff --git a/debug/debug_tf_model.py b/debug/debug_tf_model.py deleted file mode 100644 index 18282bfa..00000000 --- a/debug/debug_tf_model.py +++ /dev/null @@ -1,163 +0,0 @@ -import numpy as np -import scipy.signal as spsig -import scipy.interpolate as sinterp -import scipy.io as sio -import matplotlib.pyplot as plt -import matplotlib as mpl -from matplotlib.colors import ListedColormap, LinearSegmentedColormap -from mpl_toolkits.axes_grid1 import make_axes_locatable -import PIL -import time -from tqdm.notebook import tqdm - -# Import wavefront code -import wf_psf.SimPSFToolkit as wf_sim -import wf_psf.psf_models.tf_layers as wf_layers -import wf_psf.psf_models.tf_modules as wf_modules -import wf_psf.psf_models.tf_psf_field as wf_psf_field -import wf_psf.utils.utils as wf_utils -import wf_psf.psf_models.GenPolyFieldPSF as wf_gen - - -plt.rcParams['figure.figsize'] = (16, 8) -import tensorflow as tf - -# Pre-defined colormap -top = mpl.cm.get_cmap('Oranges_r', 128) -bottom = mpl.cm.get_cmap('Blues', 128) -newcolors = np.vstack((top(np.linspace(0, 1, 128)), - bottom(np.linspace(0, 1, 128)))) -newcmp = ListedColormap(newcolors, name='OrangeBlue') - - -## Prepare inputs - -# Zcube_path = '/content/drive/MyDrive/Colab Notebooks/psf_data/Zernike45.mat' -Zcube_path = '/Users/tliaudat/Documents/PhD/codes/WF_PSF/data/PA-zernike-cubes/Zernike45.mat' -Zcube = sio.loadmat(Zcube_path) -zernikes = [] - -# Decimation factor for Zernike polynomials -decim_f = 4 # Original shape (1024x1024) -n_bins_lda = 15 -n_zernikes = 15 -batch_size = 16 -output_dim=64 -d_max=2 -x_lims=[0, 1e3] -y_lims=[0, 1e3] -l_rate = 1e-2 - -for it in range(n_zernikes): - zernike_map = wf_utils.decimate_im(Zcube['Zpols'][0, it][5], decim_f) - zernikes.append(zernike_map) - -# Now as cubes -np_zernike_cube = np.zeros((len(zernikes), zernikes[0].shape[0], zernikes[0].shape[1])) - -for it in range(len(zernikes)): - np_zernike_cube[it,:,:] = zernikes[it] - -np_zernike_cube[np.isnan(np_zernike_cube)] = 0 - -tf_zernike_cube = tf.convert_to_tensor(np_zernike_cube, dtype=tf.float32) - - -# dataset_path = '/content/wf-psf/tf_notebooks/psf_field_dataset/' -# dataset_path = '/content/wf-psf/data/psf_field/' -# dataset_path = '/content/drive/MyDrive/Colab Notebooks/psf_field_dataset/' -dataset_path = '/Users/tliaudat/Documents/PhD/codes/WF_PSF/github/wf-psf/tf_notebooks/psf_field_dataset/' -# dataset_path = '/Users/tliaudat/Documents/PhD/codes/WF_PSF/data/psf_field_datasets/' -# Load the dictionaries -train_dataset = np.load(dataset_path + 'train_dataset_256_bin15_z15_bis.npy', allow_pickle=True)[()] -train_stars = train_dataset['stars'] -train_pos = train_dataset['positions'] -train_SEDs = train_dataset['SEDs'] -train_zernike_coef = train_dataset['zernike_coef'] -train_C_poly = train_dataset['C_poly'] -train_parameters = train_dataset['parameters'] - -tf_train_stars = tf.convert_to_tensor(train_stars, dtype=tf.float32) -tf_train_pos = tf.convert_to_tensor(train_pos, dtype=tf.float32) - - -# Generate initializations - -pupil_diameter = 1024 // decim_f - -# Prepare np input -simPSF_np = wf_sim.SimPSFToolkit(zernikes, max_order=n_zernikes, pupil_diameter=pupil_diameter) -simPSF_np.gen_random_Z_coeffs(max_order=n_zernikes) -z_coeffs = simPSF_np.normalize_zernikes(simPSF_np.get_z_coeffs(), simPSF_np.max_wfe_rms) -simPSF_np.set_z_coeffs(z_coeffs) -simPSF_np.generate_mono_PSF(lambda_obs=0.7, regen_sample=False) - -# Obscurations -obscurations = simPSF_np.generate_pupil_obscurations(N_pix=pupil_diameter, N_filter=2) -tf_obscurations = tf.convert_to_tensor(obscurations, dtype=tf.complex64) - -# Initialize the SED data list -packed_SED_data = [wf_utils.generate_packed_elems(_sed, simPSF_np, n_bins=n_bins_lda) - for _sed in train_SEDs] - -# Some parameters - -tf_PSF_field_model = wf_psf_field.TF_PSF_field_model(zernike_maps=tf_zernike_cube, - obscurations=tf_obscurations, - batch_size=batch_size, - output_dim=output_dim, - n_zernikes=n_zernikes, - d_max=d_max, - x_lims=x_lims, - y_lims=y_lims) - -# Define the model optimisation -loss = tf.keras.losses.MeanSquaredError() - -optimizer = tf.keras.optimizers.Adam( - learning_rate=l_rate, beta_1=0.9, beta_2=0.999, - epsilon=1e-07, amsgrad=False) -# optimizer = tf.keras.optimizers.SGD( -# learning_rate=l_rate, momentum=0.9, nesterov=True) - -metrics = [tf.keras.metrics.MeanSquaredError()] - -tf_PSF_field_model = wf_psf_field.build_PSF_model(tf_PSF_field_model, optimizer=optimizer, - loss=loss, metrics=metrics) - -# Assign the new init variable matrix -# tf_PSF_field_model.tf_poly_Z_field.coeff_mat.assign(init_C) -tf_PSF_field_model.tf_poly_Z_field.coeff_mat.assign(train_C_poly) - - - - - -# Compare the Pi generating matrix -gen_poly_field = wf_gen.GenPolyFieldPSF( - sim_psf_toolkit=simPSF_np, d_max=d_max, grid_points=[4, 4], max_order=15, - x_lims=x_lims, y_lims=y_lims, n_bins=n_bins_lda, - lim_max_wfe_rms=simPSF_np.max_wfe_rms, verbose=False) - -gen_poly_field.C_poly = train_C_poly - - - -# Regenerate the sample -_it = 6 -tf_packed_SED_data = tf.convert_to_tensor(packed_SED_data, dtype=tf.float32) -tf_packed_SED_data = tf.transpose(tf_packed_SED_data, perm=[0, 2, 1]) -pred_inputs = [train_pos[_it:_it+1,:] , tf_packed_SED_data[_it:_it+1,:,:]] - -expected_outputs = tf_train_stars[_it:_it+1,:,:] - -predictions = tf_PSF_field_model.predict(x=pred_inputs, batch_size=batch_size) - -xv_flat = train_pos[_it,0] -yv_flat = train_pos[_it,1] -SED = train_SEDs[_it,:,:] - -np_poly_psf, np_zernikes, np_opd = gen_poly_field.get_poly_PSF(xv_flat, yv_flat, SED) - - -print('Bye') \ No newline at end of file diff --git a/debug/jz_helper_eval_plot_script.py b/debug/jz_helper_eval_plot_script.py deleted file mode 100644 index 11f4e00d..00000000 --- a/debug/jz_helper_eval_plot_script.py +++ /dev/null @@ -1,236 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -import wf_psf as wf - -# ----------------------- # -# WaveDiff-original -args = { - 'model': 'poly', - 'id_name': '_sample_w_bis1_2k', - 'base_path': '/gpfswork/rech/ynx/ulx23va/wf-outputs/rerun_paper_results/', - 'log_folder': "log-files/", - 'model_folder': "chkp/", - 'optim_hist_folder': "optim-hist/", - 'plots_folder': "plots/" , - 'dataset_folder': '/gpfswork/rech/ynx/ulx23va/repo/wf-psf/data/coherent_euclid_dataset/', - 'metric_base_path': '/gpfswork/rech/ynx/ulx23va/wf-outputs/rerun_paper_results/metrics/', - 'chkp_save_path': '/gpfswork/rech/ynx/ulx23va/repo/wf-psf/papers/article_IOP/data/models/wavediff-original/', - 'train_dataset_file': 'train_Euclid_res_2000_TrainStars_id_001.npy', - 'test_dataset_file': 'test_Euclid_res_id_001.npy', - 'n_zernikes': 15, - 'pupil_diameter': 256, - 'n_bins_lda': 20, - 'output_q': 3., - 'oversampling_rate': 3., - 'output_dim': 32, - 'd_max': 2, - 'd_max_nonparam': 5, - 'x_lims': [0, 1e3], - 'y_lims': [0, 1e3], - 'graph_features': 10, - 'l1_rate': 1e-8, - 'use_sample_weights': True, - 'batch_size': 32, - 'l_rate_param': [0.01,0.004], - 'l_rate_non_param': [0.1,0.06], - 'n_epochs_param': [15,15], - 'n_epochs_non_param': [100,50], - 'total_cycles': 2, - 'saved_model_type': 'checkpoint', - 'saved_cycle': 'cycle2', - 'gt_n_zernikes': 45, - 'eval_batch_size': 16, - 'l2_param': 0., - 'base_id_name': '_sample_w_bis1_', - 'suffix_id_name': '2k', - 'star_numbers': 2000, -} -wf.script_utils.evaluate_model(**args) -wf.script_utils.plot_metrics(**args) - -# ----------------------- # -# WaveDiff-graph -args = { - 'model': 'graph', - 'id_name': '_sample_w_tunned_2k', - 'base_path': '/gpfswork/rech/ynx/ulx23va/wf-outputs/rerun_paper_results/', - 'log_folder': "log-files/", - 'model_folder': "chkp/", - 'optim_hist_folder': "optim-hist/", - 'plots_folder': "plots/" , - 'dataset_folder': '/gpfswork/rech/ynx/ulx23va/repo/wf-psf/data/coherent_euclid_dataset/', - 'metric_base_path': '/gpfswork/rech/ynx/ulx23va/wf-outputs/rerun_paper_results/metrics/', - 'chkp_save_path': '/gpfswork/rech/ynx/ulx23va/repo/wf-psf/papers/article_IOP/data/models/wavediff-graph/', - 'train_dataset_file': 'train_Euclid_res_2000_TrainStars_id_001.npy', - 'test_dataset_file': 'test_Euclid_res_id_001.npy', - 'n_zernikes': 15, - 'pupil_diameter': 256, - 'n_bins_lda': 20, - 'output_q': 3., - 'oversampling_rate': 3., - 'output_dim': 32, - 'd_max': 2, - 'd_max_nonparam': 3, - 'x_lims': [0, 1e3], - 'y_lims': [0, 1e3], - 'graph_features': 21, - 'l1_rate': 1e-8, - 'use_sample_weights': True, - 'batch_size': 32, - 'l_rate_param': [0.01,0.004], - 'l_rate_non_param': [0.4,0.2], - 'n_epochs_param': [15,15], - 'n_epochs_non_param': [100,50], - 'total_cycles': 2, - 'saved_model_type': 'checkpoint', - 'saved_cycle': 'cycle2', - 'gt_n_zernikes': 45, - 'eval_batch_size': 16, - 'l2_param': 0., - 'base_id_name': '_sample_w_tunned_', - 'suffix_id_name': '2k', - 'star_numbers': 2000, -} -wf.script_utils.evaluate_model(**args) -wf.script_utils.plot_metrics(**args) - -# ----------------------- # -# WaveDiff-polygraph -args = { - 'model': 'mccd', - 'id_name': '_sample_w_bis2_2k', - 'base_path': '/gpfswork/rech/ynx/ulx23va/wf-outputs/rerun_paper_results/', - 'log_folder': "log-files/", - 'model_folder': "chkp/", - 'optim_hist_folder': "optim-hist/", - 'plots_folder': "plots/" , - 'dataset_folder': '/gpfswork/rech/ynx/ulx23va/repo/wf-psf/data/coherent_euclid_dataset/', - 'metric_base_path': '/gpfswork/rech/ynx/ulx23va/wf-outputs/rerun_paper_results/metrics/', - 'chkp_save_path': '/gpfswork/rech/ynx/ulx23va/repo/wf-psf/papers/article_IOP/data/models/wavediff-polygraph/', - 'train_dataset_file': 'train_Euclid_res_2000_TrainStars_id_001.npy', - 'test_dataset_file': 'test_Euclid_res_id_001.npy', - 'n_zernikes': 15, - 'pupil_diameter': 256, - 'n_bins_lda': 20, - 'output_q': 3., - 'oversampling_rate': 3., - 'output_dim': 32, - 'd_max': 2, - 'd_max_nonparam': 3, - 'x_lims': [0, 1e3], - 'y_lims': [0, 1e3], - 'graph_features': 10, - 'l1_rate': 1e-8, - 'use_sample_weights': True, - 'batch_size': 32, - 'l_rate_param': [0.01,0.004], - 'l_rate_non_param': [0.1,0.06], - 'n_epochs_param': [15,15], - 'n_epochs_non_param': [100,50], - 'total_cycles': 2, - 'saved_model_type': 'checkpoint', - 'saved_cycle': 'cycle2', - 'gt_n_zernikes': 45, - 'eval_batch_size': 16, - 'l2_param': 0., - 'base_id_name': '_sample_w_bis2_', - 'suffix_id_name': '2k', - 'star_numbers': 2000, -} -wf.script_utils.evaluate_model(**args) -wf.script_utils.plot_metrics(**args) - -# ----------------------- # -# WaveDiff-zernike15 -args = { - 'model': 'param', - 'id_name': '_incomplete_15_sample_w_2k', - 'base_path': '/gpfswork/rech/ynx/ulx23va/wf-outputs/rerun_paper_results/', - 'log_folder': "log-files/", - 'model_folder': "chkp/", - 'optim_hist_folder': "optim-hist/", - 'plots_folder': "plots/" , - 'dataset_folder': '/gpfswork/rech/ynx/ulx23va/repo/wf-psf/data/coherent_euclid_dataset/', - 'metric_base_path': '/gpfswork/rech/ynx/ulx23va/wf-outputs/rerun_paper_results/metrics/', - 'chkp_save_path': '/gpfswork/rech/ynx/ulx23va/repo/wf-psf/papers/article_IOP/data/models/zernike_15/', - 'train_dataset_file': 'train_Euclid_res_2000_TrainStars_id_001.npy', - 'test_dataset_file': 'test_Euclid_res_id_001.npy', - 'n_zernikes': 15, - 'pupil_diameter': 256, - 'n_bins_lda': 20, - 'output_q': 3., - 'oversampling_rate': 3., - 'output_dim': 32, - 'd_max': 2, - 'd_max_nonparam': 3, - 'x_lims': [0, 1e3], - 'y_lims': [0, 1e3], - 'graph_features': 10, - 'l1_rate': 1e-8, - 'use_sample_weights': True, - 'batch_size': 32, - 'l_rate_param': [0.005,0.001], - 'l_rate_non_param': [0.1,0.06], - 'n_epochs_param': [20,20], - 'n_epochs_non_param': [100,50], - 'total_cycles': 2, - 'saved_model_type': 'checkpoint', - 'saved_cycle': 'cycle2', - 'gt_n_zernikes': 45, - 'eval_batch_size': 16, - 'l2_param': 0., - 'base_id_name': '_incomplete_15_sample_w_', - 'suffix_id_name': '2k', - 'star_numbers': 2000, -} -wf.script_utils.evaluate_model(**args) -wf.script_utils.plot_metrics(**args) - -# ----------------------- # -# WaveDiff-zernike45 -args = { - 'model': 'param', - 'id_name': '_incomplete_40_sample_w_bis1_2k', - 'base_path': '/gpfswork/rech/ynx/ulx23va/wf-outputs/rerun_paper_results/', - 'log_folder': "log-files/", - 'model_folder': "chkp/", - 'optim_hist_folder': "optim-hist/", - 'plots_folder': "plots/" , - 'dataset_folder': '/gpfswork/rech/ynx/ulx23va/repo/wf-psf/data/coherent_euclid_dataset/', - 'metric_base_path': '/gpfswork/rech/ynx/ulx23va/wf-outputs/rerun_paper_results/metrics/', - 'chkp_save_path': '/gpfswork/rech/ynx/ulx23va/repo/wf-psf/papers/article_IOP/data/models/zernike_40/', - 'train_dataset_file': 'train_Euclid_res_2000_TrainStars_id_001.npy', - 'test_dataset_file': 'test_Euclid_res_id_001.npy', - 'n_zernikes': 40, - 'pupil_diameter': 256, - 'n_bins_lda': 20, - 'output_q': 3., - 'oversampling_rate': 3., - 'output_dim': 32, - 'd_max': 2, - 'd_max_nonparam': 3, - 'x_lims': [0, 1e3], - 'y_lims': [0, 1e3], - 'graph_features': 10, - 'l1_rate': 1e-8, - 'use_sample_weights': True, - 'batch_size': 32, - 'l_rate_param': [0.005,0.001], - 'l_rate_non_param': [0.1,0.06], - 'n_epochs_param': [20,20], - 'n_epochs_non_param': [100,50], - 'total_cycles': 2, - 'saved_model_type': 'checkpoint', - 'saved_cycle': 'cycle2', - 'gt_n_zernikes': 45, - 'eval_batch_size': 16, - 'l2_param': 0., - 'base_id_name': '_incomplete_40_sample_w_bis1_', - 'suffix_id_name': '2k', - 'star_numbers': 2000, -} -wf.script_utils.evaluate_model(**args) -wf.script_utils.plot_metrics(**args) - -print('Done..') diff --git a/debug/jz_job_eval_plot.sh b/debug/jz_job_eval_plot.sh deleted file mode 100644 index fd809baa..00000000 --- a/debug/jz_job_eval_plot.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -#SBATCH --job-name=rerun_metrics # nom du job -##SBATCH --partition=gpu_p2 # de-commente pour la partition gpu_p2 -#SBATCH --ntasks=1 # nombre total de tache MPI (= nombre total de GPU) -#SBATCH --ntasks-per-node=1 # nombre de tache MPI par noeud (= nombre de GPU par noeud) -#SBATCH --gres=gpu:1 # nombre de GPU par n?~Sud (max 8 avec gpu_p2) -#SBATCH --cpus-per-task=10 # nombre de coeurs CPU par tache (un quart du noeud ici) -#SBATCH -C v100-32g -# /!\ Attention, "multithread" fait reference a l'hyperthreading dans la terminologie Slurm -#SBATCH --hint=nomultithread # hyperthreading desactive -#SBATCH --time=20:00:00 # temps d'execution maximum demande (HH:MM:SS) -#SBATCH --output=rerun_metrics%j.out # nom du fichier de sortie -#SBATCH --error=rerun_metrics%j.err # nom du fichier d'erreur (ici commun avec la sortie) -#SBATCH -A ynx@gpu # specify the project -##SBATCH --qos=qos_gpu-dev # using the dev queue, as this is only for profiling -##SBATCH --array=0-3 - -# nettoyage des modules charges en interactif et herites par defaut -module purge - -# chargement des modules -module load tensorflow-gpu/py3/2.4.1 - -# echo des commandes lancees -set -x - -srun python -u $WORK/repo/wf-psf/debug/jz_helper_eval_plot_script.py diff --git a/debug/table-WFE-error-metrics-rerun.ipynb b/debug/table-WFE-error-metrics-rerun.ipynb deleted file mode 100644 index a51414fd..00000000 --- a/debug/table-WFE-error-metrics-rerun.ipynb +++ /dev/null @@ -1,263 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "b74eea0a", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n" - ] - }, - { - "cell_type": "markdown", - "id": "44ed1270", - "metadata": {}, - "source": [ - "# Zernike 15" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "3d149a95", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Absolute WFE RMSE: 1.851e+02 nm\n", - "Relative WFE RMSE: 284.26 %\n" - ] - } - ], - "source": [ - "# Load metrics\n", - "metrics_wf_inc15_2k_path = './../data/metrics/zernike_15/metrics-param_incomplete_15_sample_w_2k.npy'\n", - "metrics_wf_inc15_2k = np.load(metrics_wf_inc15_2k_path, allow_pickle=True)[()]\n", - "metrics = metrics_wf_inc15_2k\n", - "\n", - "print('Absolute WFE RMSE: %.3e nm'% (1e3*metrics['test_metrics']['opd_metric']['rmse_opd']))\n", - "print('Relative WFE RMSE: %.2f %%'% metrics['test_metrics']['opd_metric']['rel_rmse_opd'])\n" - ] - }, - { - "cell_type": "markdown", - "id": "7eeec55a", - "metadata": {}, - "source": [ - "# Zernike 40" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b15a2e36", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Absolute WFE RMSE: 9.809e+01 nm\n", - "Relative WFE RMSE: 148.36 %\n" - ] - } - ], - "source": [ - "# Load metrics\n", - "metrics_wf_inc40_2k_path = './../data/metrics/zernike_40/metrics-param_incomplete_40_sample_w_bis1_2k.npy'\n", - "metrics_wf_inc40_2k = np.load(metrics_wf_inc40_2k_path, allow_pickle=True)[()]\n", - "metrics = metrics_wf_inc40_2k\n", - "\n", - "print('Absolute WFE RMSE: %.3e nm'% (1e3*metrics['test_metrics']['opd_metric']['rmse_opd']))\n", - "print('Relative WFE RMSE: %.2f %%'% metrics['test_metrics']['opd_metric']['rel_rmse_opd'])\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "cd6faff4", - "metadata": {}, - "source": [ - "# WaveDiff-original" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "a9f05243", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Absolute WFE RMSE: 1.400e+02 nm\n", - "Relative WFE RMSE: 212.29 %\n" - ] - } - ], - "source": [ - "# Load metrics\n", - "metrics_2k_path = './../data/metrics/wavediff-original/metrics-poly_sample_w_bis1_2k.npy'\n", - "wf_orifinal_metrics = np.load(metrics_2k_path, allow_pickle=True)[()]\n", - "metrics = wf_orifinal_metrics\n", - "\n", - "print('Absolute WFE RMSE: %.3e nm'% (1e3*metrics['test_metrics']['opd_metric']['rmse_opd']))\n", - "print('Relative WFE RMSE: %.2f %%'% metrics['test_metrics']['opd_metric']['rel_rmse_opd'])\n" - ] - }, - { - "cell_type": "markdown", - "id": "d559cda6", - "metadata": {}, - "source": [ - "# WaveDiff-graph" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "8ae83f49", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Absolute WFE RMSE: 1.987e+02 nm\n", - "Relative WFE RMSE: 304.64 %\n" - ] - } - ], - "source": [ - "# Load metrics\n", - "metrics_2k_path = './../data/metrics/wavediff-graph/metrics-graph_sample_w_tunned_2k.npy'\n", - "wf_graph_metrics = np.load(metrics_2k_path, allow_pickle=True)[()]\n", - "metrics = wf_graph_metrics\n", - "\n", - "print('Absolute WFE RMSE: %.3e nm'% (1e3*metrics['test_metrics']['opd_metric']['rmse_opd']))\n", - "print('Relative WFE RMSE: %.2f %%'% metrics['test_metrics']['opd_metric']['rel_rmse_opd'])\n" - ] - }, - { - "cell_type": "markdown", - "id": "7301f33a", - "metadata": {}, - "source": [ - "# WaveDiff-polygraph" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "fadbe593", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Absolute WFE RMSE: 1.588e+02 nm\n", - "Relative WFE RMSE: 241.65 %\n" - ] - } - ], - "source": [ - "# Load metrics\n", - "metrics_2k_path = './../data/metrics/wavediff-polygraph/metrics-mccd_sample_w_bis2_2k.npy'\n", - "wf_polygraph_metrics = np.load(metrics_2k_path, allow_pickle=True)[()]\n", - "metrics = wf_polygraph_metrics\n", - "\n", - "print('Absolute WFE RMSE: %.3e nm'% (1e3*metrics['test_metrics']['opd_metric']['rmse_opd']))\n", - "print('Relative WFE RMSE: %.2f %%'% metrics['test_metrics']['opd_metric']['rel_rmse_opd'])\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f08ee11f", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cb644843", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4d326ac3", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "eb466dd2", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.12" - }, - "varInspector": { - "cols": { - "lenName": 16, - "lenType": 16, - "lenVar": 40 - }, - "kernels_config": { - "python": { - "delete_cmd_postfix": "", - "delete_cmd_prefix": "del ", - "library": "var_list.py", - "varRefreshCmd": "print(var_dic_list())" - }, - "r": { - "delete_cmd_postfix": ") ", - "delete_cmd_prefix": "rm(", - "library": "var_list.r", - "varRefreshCmd": "cat(var_dic_list()) " - } - }, - "types_to_exclude": [ - "module", - "function", - "builtin_function_or_method", - "instance", - "_Feature" - ], - "window_display": false - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}