print("Making the predictions on test data . . .") preds_test = model.predict(X_test, batch_size=batch_size_value, verbose=1) if n_classes > 1: preds_test = np.expand_dims(np.argmax(preds_test, -1), -1) Y_test = np.expand_dims(np.argmax(Y_test, -1), -1) print("########################################\n" "# Metrics (per image, merging crops) #\n" "########################################\n") # Merge crops print("Reconstruct X_test/Y_test . . .") X_test, Y_test = merge_data_with_overlap(X_test, orig_test_shape, Y_test, overlap=overlap) print("Reconstruct preds_test . . .") preds_test = merge_data_with_overlap(preds_test, orig_test_shape, overlap=overlap) print("Saving predicted images . . .") save_img(Y=(preds_test > 0.5).astype(np.uint8), mask_dir=result_bin_dir_per_image, prefix="test_out_bin") save_img(Y=preds_test, mask_dir=result_no_bin_dir_per_image, prefix="test_out_no_bin")
if np.max(X_test) > 2: X_test = X_test.astype('float32') X_test *= 1. / 255 if n_classes > 1: Y_test_one_hot = np.zeros(Y_test.shape[:3] + (n_classes, )) for i in range(Y_test.shape[0]): Y_test_one_hot[i] = np.asarray( img_to_onehot_encoding(Y_test[i], n_classes)) Y_test = Y_test_one_hot del Y_test_one_hot # Merge crops print("Reconstruct X_test/Y_test . . .") X_test, Y_test = merge_data_with_overlap(X_test, orig_test_shape, Y_test, overlap=overlap) print("########################\n" "# Metrics (full image) #\n" "########################\n") print("Making the predictions on test data . . .") preds_test_full = model.predict(X_test, batch_size=batch_size_value, verbose=1) if n_classes > 1: preds_test_full = np.expand_dims(np.argmax(preds_test_full, -1), -1) print("Saving predicted images . . .") save_img(Y=preds_test_full, mask_dir=result_no_bin_dir_full)