M = np.load(save_path + 'M.npy') g_m = np.dot(M,f_valid.transpose()).transpose() g_m = g_m.reshape((g_m.shape[0],bib_geom.N_ROWS,bib_geom.N_COLS)) print 'g_m :', g_m.shape, g_m.dtype # Uncomment if you decide to clip mininimum value of images to zero # g_valid = np.clip(g_valid, a_min = 0, a_max = None) # g_m = np.clip(g_m, a_min = 0, a_max = None) # ------------------------------------------------------------------------- print '\nCalculate Metrics' # Image metrics ssim,mse,psnr, nrmse = bib_metrics.compare_all_metrics(g_valid,g_m, mean = False) # Pixelwise Metrics rmse_pixel,amre_pixel,mre_pixel = bib_metrics.compare_all_metrics_pixel(g_valid,g_m, mean = True) bib_metrics.plot_metric_pixel(rmse_pixel, 'RMSE', save_path + 'METRICS/',vmin = 0, vmax = 0.4,clb_legend = 'kW m$^{-3}$') bib_metrics.plot_metric_pixel(mre_pixel, 'MRE', save_path + 'METRICS/',vmin = -.15, vmax = .15) bib_metrics.plot_metric_pixel(amre_pixel, 'AMRE', save_path + 'METRICS/',vmin = 0, vmax = 0.30) # Total Power Emited Error e_power = (np.sum(g_valid,axis = (1,2)) - np.sum(g_m, axis = (1,2)))/np.sum(g_valid,axis = (1,2)) # Check Plasma Center R_centroid, Z_centroid = bib_geom.get_centroid(g_valid) R_nn_centroid, Z_nn_centroid = bib_geom.get_centroid(g_m) e_R = np.abs(R_centroid-R_nn_centroid)*1e3 e_Z = np.abs(Z_centroid-Z_nn_centroid)*1e3
cmapX2 = LinearSegmentedColormap.from_list('name', [ 'darkblue', 'darkcyan', 'turquoise', 'white', 'tomato', 'red', 'firebrick' ]) SSIM = [] PSNR = [] NRMSE = [] POWER = [] for pulse, t, g_nni, g_i in zip(pulse_test, t_test, g_test_nn, g_test): title = 'Pulse %i t=%.2fs' % (pulse, t) print title ssim, _, psnr, nrmse = bib_metrics.compare_all_metrics(g_i, g_nni) e_power = (np.sum(g_i) - np.sum(g_nni)) / np.sum(g_i) print '%.4f %.2f %.2f %.2f' % (ssim[0], psnr[0], nrmse[0], e_power) SSIM.append(ssim) PSNR.append(psnr) NRMSE.append(nrmse) POWER.append(e_power) fig = plt.figure() fig.suptitle(title, fontsize=7) # Version without difference between images # ax1 = fig.add_subplot(121) # ax1.imshow(g_i, vmin=0, vmax=.5, origin = 'lower', cmap = 'inferno', extent = [bib_geom.R_MIN, bib_geom.R_MAX, bib_geom.Z_MIN, bib_geom.Z_MAX]) # ax1.set_xlabel('R (m)')
sys.stdout.write("\r" + 'camera shutdown: ' + str(shutdown_detectors)) sys.stdout.flush() f_dropout = deepcopy(f_test) # shut-down detectors for detector in shutdown_detectors: f_dropout[:, detector] = np.zeros(f_dropout.shape[0], dtype=np.float32) # perform new reconstructions g_test_nn = model.predict(f_dropout) g_test_nn = bib_utils.resize_NN_image(g_test_nn, training=False) # Image metrics ssim, mse, psnr, nrmse = bib_metrics.compare_all_metrics(g_test, g_test_nn) # Total Power Emited Error e_power = np.abs( (np.sum(g_test, axis=(1, 2)) - np.sum(g_test_nn, axis=(1, 2))) / np.sum(g_test, axis=(1, 2))) # Check Plasma Center R_centroid, Z_centroid = bib_geom.get_centroid(g_test) R_nn_centroid, Z_nn_centroid = bib_geom.get_centroid(g_test_nn) e_R = np.abs(R_centroid - R_nn_centroid) * 1e3 e_Z = np.abs(Z_centroid - Z_nn_centroid) * 1e3 # Chi2 Values chi2_nn = geom.get_chi2(f_test, g_test_nn, ef_test)