'batch_size': BATCH_SIZE, 'epochs': EPOCHS, 'verbose': 1, 'callbacks': [es], 'use_multiprocessing': True } # ================================================================================== # Training and prediction training2(img_list, pctls, model_func, feat_list_new, uncertainty, data_path, batch, DROPOUT_RATE, HOLDOUT, **model_params) prediction(img_list, pctls, feat_list_new, data_path, batch, remove_perm=True) viz_params = { 'img_list': img_list, 'pctls': pctls, 'data_path': data_path, 'uncertainty': uncertainty, 'batch': batch, 'feat_list_new': feat_list_new } viz = VizFuncs(viz_params) viz.metric_plots() viz.time_plot() # viz.metric_plots_multi() viz.false_map() # viz.time_size()
tf.config.set_soft_device_placement(True) # tf.config.experimental.set_visible_devices(NUM_PARALLEL_EXEC_UNITS, 'CPU') os.environ["OMP_NUM_THREADS"] = str(NUM_PARALLEL_EXEC_UNITS) os.environ["KMP_BLOCKTIME"] = "30" os.environ["KMP_SETTINGS"] = "1" os.environ["KMP_AFFINITY"] = "granularity=fine,verbose,compact,1,0" # ================================================================================== # Training and prediction with random batches of clouds cloud_dir = data_path / 'clouds' training6(img_list, pctls, model_func, feat_list_new, data_path, batch, T, DROPOUT_RATE, **model_params) prediction(img_list, pctls, feat_list_new, data_path, batch, remove_perm=True, **model_params) viz = VizFuncs(viz_params) viz.metric_plots() viz.cir_image() viz.time_plot() viz.false_map() viz.metric_plots_multi() viz.time_size()
accuracy.append(accuracy_score(y_test, preds)) precision.append(precision_score(y_test, preds)) recall.append(recall_score(y_test, preds)) f1.append(f1_score(y_test, preds)) del preds, p_hat, aleatoric, epistemic, X_test, y_test, model, data_test, data_vector_test, data_ind_test metrics = pd.DataFrame( np.column_stack([pctls, accuracy, precision, recall, f1]), columns=['cloud_cover', 'accuracy', 'precision', 'recall', 'f1']) metrics.to_csv(metrics_path / 'metrics.csv', index=False) times = [float(i) for i in times] times_df = pd.DataFrame(np.column_stack([pctls, times]), columns=['cloud_cover', 'testing_time']) times_df.to_csv(metrics_path / 'testing_times.csv', index=False) # ====================================================================================================================== training_BNN_gen_model(img_list_train, feat_list_new, model_func, data_path, batch, dropout_rate, **model_params) prediction_BNN_gen_model(img_list_test, pctls, feat_list_new, data_path, batch, MC_passes, **model_params) viz = VizFuncs(viz_params) viz.metric_plots() viz.metric_plots_multi() viz.time_plot() viz.false_map(probs=False, save=False) viz.false_map_borders() viz.fpfn_map() viz.uncertainty_map_NN()
drop_intermediate=True) fpr = np.array(fpr) tpr = np.array(tpr) roc_vals = pd.DataFrame(np.column_stack([fpr, tpr, thresh]), columns=['fpr', 'tpr', 'thresh']) roc_vals.to_csv(metrics_path / '{}'.format('roc_curve_' + str(pctl) + '.csv'), index=False) # Delete ROC data to save space # for batch in batches: # for img in img_list: # metrics_path = data_path / batch / 'metrics' / 'testing' / img # for pctl in pctls: # Path(metrics_path / '{}'.format('roc_curve_' + str(pctl) + '.csv')).unlink() # ====================================================================================================================== # Plot ROC curves for batch in batches: viz_params = { 'img_list': img_list, 'pctls': pctls, 'data_path': data_path, 'batch': batch, 'feat_list_new': feat_list_new } viz = VizFuncs(viz_params)
'batch': batch, 'feat_list_new': feat_list_new } NUM_PARALLEL_EXEC_UNITS = os.cpu_count() config = tf.compat.v1.ConfigProto( intra_op_parallelism_threads=NUM_PARALLEL_EXEC_UNITS, inter_op_parallelism_threads=4, allow_soft_placement=True, device_count={'CPU': NUM_PARALLEL_EXEC_UNITS}) session = tf.compat.v1.Session(config=config) tf.compat.v1.keras.backend.set_session(session) os.environ["KMP_BLOCKTIME"] = "30" os.environ["KMP_SETTINGS"] = "1" os.environ["KMP_AFFINITY"] = "granularity=fine,verbose,compact,1,0" os.environ['MKL_NUM_THREADS'] = str(NUM_PARALLEL_EXEC_UNITS) os.environ['GOTO_NUM_THREADS'] = str(NUM_PARALLEL_EXEC_UNITS) os.environ['OMP_NUM_THREADS'] = str(NUM_PARALLEL_EXEC_UNITS) # ================================================================================== training_bnn(img_list, pctls, feat_list_new, data_path, batch, **model_params) prediction_bnn(img_list, pctls, feat_list_new, data_path, batch, MC_passes) viz = VizFuncs(viz_params) viz.metric_plots() viz.cir_image() viz.time_plot() viz.false_map(probs=False, save=False) viz.false_map_borders() viz.metric_plots_multi() viz.median_highlight()
'feat_list_new': feat_list_new } # Set some optimized config parameters tf.config.threading.set_intra_op_parallelism_threads(NUM_PARALLEL_EXEC_UNITS) tf.config.threading.set_inter_op_parallelism_threads(2) tf.config.set_soft_device_placement(True) # tf.config.experimental.set_visible_devices(NUM_PARALLEL_EXEC_UNITS, 'CPU') os.environ["OMP_NUM_THREADS"] = str(NUM_PARALLEL_EXEC_UNITS) os.environ["KMP_BLOCKTIME"] = "30" os.environ["KMP_SETTINGS"] = "1" os.environ["KMP_AFFINITY"] = "granularity=fine,verbose,compact,1,0" # ================================================================================== # Training and prediction with random batches of clouds cloud_dir = data_path / 'clouds' # training3(img_list, pctls, model_func, feat_list_new, uncertainty, # data_path, batch, DROPOUT_RATE, HOLDOUT, **model_params) # # prediction_with_uncertainty(img_list, pctls, feat_list_new, data_path, batch, DROPOUT_RATE, MC_PASSES=MC_PASSES, # weight_decay=0.005, length_scale=0.00001, remove_perm=True, **model_params) viz = VizFuncs(viz_params) viz.metric_plots() viz.time_plot() # viz.false_map() viz.metric_plots_multi() # viz.time_size()
# Set some optimized config parameters NUM_PARALLEL_EXEC_UNITS = os.cpu_count() config = tf.compat.v1.ConfigProto( intra_op_parallelism_threads=NUM_PARALLEL_EXEC_UNITS, inter_op_parallelism_threads=4, allow_soft_placement=True, device_count={'CPU': NUM_PARALLEL_EXEC_UNITS}) session = tf.compat.v1.Session(config=config) tf.compat.v1.keras.backend.set_session(session) # os.environ["OMP_NUM_THREADS"] = "4" os.environ["KMP_BLOCKTIME"] = "30" os.environ["KMP_SETTINGS"] = "1" os.environ["KMP_AFFINITY"] = "granularity=fine,verbose,compact,1,0" os.environ['MKL_NUM_THREADS'] = str(NUM_PARALLEL_EXEC_UNITS) os.environ['GOTO_NUM_THREADS'] = str(NUM_PARALLEL_EXEC_UNITS) os.environ['OMP_NUM_THREADS'] = str(NUM_PARALLEL_EXEC_UNITS) # ================================================================================== # training4(img_list, pctls, model_func, feat_list_new, data_path, batch, **model_params) # prediction(img_list, pctls, feat_list_new, data_path, batch, remove_perm=True, **model_params) viz = VizFuncs(viz_params) # viz.metric_plots() # viz.cir_image() # viz.time_plot() # viz.false_map(probs=False, save=False) viz.false_map_borders() # viz.metric_plots_multi() # viz.median_highlight()
'glacial_outwash_coarse', 'hydric', 'eolian_sed_coarse', 'eolian_sed_fine', 'saline_lake_sed', 'alluv_coastal_sed_fine', 'coastal_sed_coarse', 'GSW_distSeasonal', 'aspect', 'curve', 'elevation', 'hand', 'slope', 'spi', 'twi', 'sti', 'GSW_perm', 'flooded' ] img_list = ['4337_LC08_026038_20160325_1'] viz_params = { 'img_list': img_list, 'pctls': pctls, 'data_path': data_path, 'batch': batch, 'feat_list_new': feat_list_new } viz = VizFuncs(viz_params) viz.cir_image(overwrite=True) # Doesn't work very well for CIR images - water and dry earth are both turqoise. def hist_equalize_cir(img, view_hist=False, view_img=False, std_low=1.75, std_high=1.75, save=False): spectra_stack_path = data_path / 'images' / img / 'stack' / 'spectra_stack.tif' band_combo_dir = data_path / 'band_combos' cir_file = band_combo_dir / '{}'.format(img + '_cir_img' + '.png') with rasterio.open(spectra_stack_path, 'r') as f:
print('Evaluating predictions') accuracy.append(accuracy_score(y_test, preds)) precision.append(precision_score(y_test, preds)) recall.append(recall_score(y_test, preds)) f1.append(f1_score(y_test, preds)) del preds, pred_probs, X_test, y_test, trained_model, data_test, data_vector_test, data_ind_test metrics = pd.DataFrame(np.column_stack([pctls, accuracy, precision, recall, f1]), columns=['cloud_cover', 'accuracy', 'precision', 'recall', 'f1']) metrics.to_csv(metrics_path / 'metrics.csv', index=False) times = [float(i) for i in times] # Convert time objects to float, otherwise valMetrics will be non-numeric times_df = pd.DataFrame(np.column_stack([pctls, times]), columns=['cloud_cover', 'testing_time']) times_df.to_csv(metrics_path / 'testing_times.csv', index=False) # ====================================================================================================================== # rf_training(img_list, pctls, feat_list_new, data_path, batch, n_jobs=None) # prediction_rf(img_list, pctls, feat_list_new, data_path, batch) viz = VizFuncs(viz_params) # viz.metric_plots() viz.cir_image() viz.rgb_image(percent=1.25, overwrite=True) # viz.time_plot() # viz.false_map(probs=True, save=False) # viz.false_map_borders() # viz.metric_plots_multi() # viz.median_highlight()
recall.append(recall_score(y_test, preds)) f1.append(f1_score(y_test, preds)) roc_auc.append(roc_auc_score(y_test, pred_probs[:, 1])) del preds, pred_probs, X_test, y_test, trained_model, data_test, data_vector_test, data_ind_test metrics = pd.DataFrame( np.column_stack([pctls, accuracy, precision, recall, f1, roc_auc]), columns=[ 'cloud_cover', 'accuracy', 'precision', 'recall', 'f1', 'auc' ]) metrics.to_csv(metrics_path / 'metrics.csv', index=False) times = [ float(i) for i in times ] # Convert time objects to float, otherwise valMetrics will be non-numeric times_df = pd.DataFrame(np.column_stack([pctls, times]), columns=['cloud_cover', 'testing_time']) times_df.to_csv(metrics_path / 'testing_times.csv', index=False) # ====================================================================================================================== # NN_training(img_list, pctls, model_func, feat_list_new, feat_list_all, data_path, batch, **model_params) NN_prediction(img_list, pctls, feat_list_all, data_path, batch, **model_params) viz = VizFuncs(viz_params) viz.metric_plots() # viz.metric_plots_multi() # viz.median_highlight() # viz.time_plot() # viz.false_map(probs=False, save=False) # viz.false_map_borders()