diff --git a/Experiments/configurations/eiv_california.json b/Experiments/configurations/eiv_california.json
index 6cfa57f9f95c63dd347629d0acf4df37b96b180f..46d2c4771972f09a34944f48b188ddefcd3a1f00 100644
--- a/Experiments/configurations/eiv_california.json
+++ b/Experiments/configurations/eiv_california.json
@@ -9,8 +9,8 @@
 	"report_point": 5,
 	"p": 0.1,
 	"lr_update": 20,
-	"std_y_update_points": [10,5],
-	"eiv_prediction_number_of_draws": 100,
+	"std_y_update_points": [1,40],
+	"eiv_prediction_number_of_draws": [100,5],
 	"eiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
 	"gamma": 0.5,
diff --git a/Experiments/configurations/eiv_concrete.json b/Experiments/configurations/eiv_concrete.json
index 0e234346f6dda090daacb9aebf33f8c3f666081c..0997d650b05907e078c2aa2dd68bcb15c5bd94df 100644
--- a/Experiments/configurations/eiv_concrete.json
+++ b/Experiments/configurations/eiv_concrete.json
@@ -9,9 +9,9 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 20,
-	"std_y_update_points": 10,
-	"eiv_prediction_number_of_draws": 100,
-	"eiv_prediction_number_of_batches": 10,
+	"std_y_update_points": [10, 40],
+	"eiv_prediction_number_of_draws": [100,5],
+	"eiv_prediction_number_of_batches": 20,
 	"init_std_y_list": [0.5],
 	"gamma": 0.5,
 	"hidden_layers": [1024, 1024, 1024, 1024],
diff --git a/Experiments/configurations/eiv_energy.json b/Experiments/configurations/eiv_energy.json
index f13ab1b52417aa7ed20c4db9d75a0c653ff0b321..ee4219897179aa91d2e22d2ee860a8a0e425d5d7 100644
--- a/Experiments/configurations/eiv_energy.json
+++ b/Experiments/configurations/eiv_energy.json
@@ -9,8 +9,8 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 100,
-	"std_y_update_points": 100,
-	"eiv_prediction_number_of_draws": 100,
+	"std_y_update_points": [100, 250],
+	"eiv_prediction_number_of_draws": [100,5],
 	"eiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
 	"gamma": 0.5,
diff --git a/Experiments/configurations/eiv_kin8nm.json b/Experiments/configurations/eiv_kin8nm.json
index df2e4bafbee99aca95dcd36f8f67097d3a6ce3b5..65ba9a2936e5af1efa5dc4d104c85c0defc8d665 100644
--- a/Experiments/configurations/eiv_kin8nm.json
+++ b/Experiments/configurations/eiv_kin8nm.json
@@ -9,8 +9,8 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 20,
-	"std_y_update_points": 19,
-	"eiv_prediction_number_of_draws": 100,
+	"std_y_update_points": [1,14],
+	"eiv_prediction_number_of_draws": [100,5],
 	"eiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
 	"gamma": 0.5,
diff --git a/Experiments/configurations/eiv_msd.json b/Experiments/configurations/eiv_msd.json
index a738f2e8bf034e173f60b17e5cd6d2f7d6fdb856..d29808616f409eb56467b162271e0362b196de76 100644
--- a/Experiments/configurations/eiv_msd.json
+++ b/Experiments/configurations/eiv_msd.json
@@ -9,8 +9,8 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 4,
-	"std_y_update_points": 4,
-	"eiv_prediction_number_of_draws": 100,
+	"std_y_update_points": [1,4],
+	"eiv_prediction_number_of_draws": [100,5],
 	"eiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
 	"gamma": 0.5,
diff --git a/Experiments/configurations/eiv_naval.json b/Experiments/configurations/eiv_naval.json
index 092f4f822abf0e9c677affa8ae275e46309435b8..8975c95eb1fbfa030d4bc018bed4da7192174a30 100644
--- a/Experiments/configurations/eiv_naval.json
+++ b/Experiments/configurations/eiv_naval.json
@@ -9,8 +9,8 @@
         "report_point": 5,
         "p": 0.2,
         "lr_update": 20,
-        "std_y_update_points": 20,
-	"eiv_prediction_number_of_draws": 100,
+        "std_y_update_points": [1,14],
+	"eiv_prediction_number_of_draws": [100,5],
 	"eiv_prediction_number_of_batches": 10,
         "init_std_y_list": [0.5],
         "gamma": 0.5,
diff --git a/Experiments/configurations/eiv_power.json b/Experiments/configurations/eiv_power.json
index ab5649f61de1ea2214249b8a07e25cd5b2adea9e..917f1f002b4b79382d002183cd577e5ac653d3cb 100644
--- a/Experiments/configurations/eiv_power.json
+++ b/Experiments/configurations/eiv_power.json
@@ -9,8 +9,8 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 10,
-	"std_y_update_points": 15,
-	"eiv_prediction_number_of_draws": 100,
+	"std_y_update_points": [1,15],
+	"eiv_prediction_number_of_draws": [100,5],
 	"eiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
 	"gamma": 0.5,
diff --git a/Experiments/configurations/eiv_protein.json b/Experiments/configurations/eiv_protein.json
index 9623799e3d8b85b2f568987afb4d406fbb7fe45c..330713a1118dcfc2e2ef3b8159574fbbdb696932 100644
--- a/Experiments/configurations/eiv_protein.json
+++ b/Experiments/configurations/eiv_protein.json
@@ -9,8 +9,8 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 10,
-	"std_y_update_points": 10,
-	"eiv_prediction_number_of_draws": 100,
+	"std_y_update_points": [1,14],
+	"eiv_prediction_number_of_draws": [100,5],
 	"eiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
 	"gamma": 0.5,
diff --git a/Experiments/configurations/eiv_wine.json b/Experiments/configurations/eiv_wine.json
index f0beaf490846c2281a477f627f05c98b18cfa7f3..fef0c488758678ca809102ce53f30e226a3b77c1 100644
--- a/Experiments/configurations/eiv_wine.json
+++ b/Experiments/configurations/eiv_wine.json
@@ -9,8 +9,8 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 30,
-	"std_y_update_points": 50,
-	"eiv_prediction_number_of_draws": 100,
+	"std_y_update_points": [1,40],
+	"eiv_prediction_number_of_draws": [100,5],
 	"eiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
 	"gamma": 0.5,
diff --git a/Experiments/configurations/eiv_yacht.json b/Experiments/configurations/eiv_yacht.json
index 7617289d9e49bb9ceddd9962d6d865fee3413ae7..25b64573186e3dd568bbd2b117d15092cfe9cc31 100644
--- a/Experiments/configurations/eiv_yacht.json
+++ b/Experiments/configurations/eiv_yacht.json
@@ -10,7 +10,7 @@
 	"p": 0.2,
 	"lr_update": 200,
 	"std_y_update_points": [1,500],
-	"eiv_prediction_number_of_draws": 100,
+	"eiv_prediction_number_of_draws": [100,5],
 	"eiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
 	"gamma": 0.5,
diff --git a/Experiments/configurations/noneiv_california.json b/Experiments/configurations/noneiv_california.json
index e0729764699ba987d4a8e8b4e344601303c16f3b..d15d2300aed80e83db7a40ad753cabbbe40cae59 100644
--- a/Experiments/configurations/noneiv_california.json
+++ b/Experiments/configurations/noneiv_california.json
@@ -9,7 +9,7 @@
 	"report_point": 5,
 	"p": 0.1,
 	"lr_update": 20,
-	"std_y_update_points": [10,5] ,
+	"std_y_update_points": [1,40] ,
 	"noneiv_prediction_number_of_draws": 100,
 	"noneiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
diff --git a/Experiments/configurations/noneiv_concrete.json b/Experiments/configurations/noneiv_concrete.json
index 15e28c53a67064987c267f932733a09d00698c43..911817ece3dc8ac1d21f192cd00c776c9681f336 100644
--- a/Experiments/configurations/noneiv_concrete.json
+++ b/Experiments/configurations/noneiv_concrete.json
@@ -9,9 +9,9 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 20,
-	"std_y_update_points": 10,
+	"std_y_update_points": [10,40],
 	"noneiv_prediction_number_of_draws": 100,
-	"noneiv_prediction_number_of_batches": 10,
+	"noneiv_prediction_number_of_batches": 20,
 	"init_std_y_list": [0.5],
 	"gamma": 0.5,
 	"hidden_layers": [1024, 1024, 1024, 1024],
diff --git a/Experiments/configurations/noneiv_energy.json b/Experiments/configurations/noneiv_energy.json
index 18c068ea7a9cb96f1075a522ae3f3ad6552bacac..003877a936d6878d7134407a579c7f1cb21fbb16 100644
--- a/Experiments/configurations/noneiv_energy.json
+++ b/Experiments/configurations/noneiv_energy.json
@@ -9,7 +9,7 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 100,
-	"std_y_update_points": 100,
+	"std_y_update_points": [100, 250],
 	"noneiv_prediction_number_of_draws": 100,
 	"noneiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
diff --git a/Experiments/configurations/noneiv_kin8nm.json b/Experiments/configurations/noneiv_kin8nm.json
index 8ecf817149b1a37dd9a4ab5c44fd2700795fbcde..694d7f0d065021462c841e636957caf0d46622ad 100644
--- a/Experiments/configurations/noneiv_kin8nm.json
+++ b/Experiments/configurations/noneiv_kin8nm.json
@@ -9,7 +9,7 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 20,
-	"std_y_update_points": 19,
+	"std_y_update_points": [1,14],
 	"noneiv_prediction_number_of_draws": 100,
 	"noneiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
diff --git a/Experiments/configurations/noneiv_msd.json b/Experiments/configurations/noneiv_msd.json
index a0e2f73beb63e165c7da5266b774f227e90310c1..126a571eb955cf2dd320d0b40bd4c749446a3253 100644
--- a/Experiments/configurations/noneiv_msd.json
+++ b/Experiments/configurations/noneiv_msd.json
@@ -9,7 +9,7 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 4,
-	"std_y_update_points": 4,
+	"std_y_update_points": [1,4],
 	"noneiv_prediction_number_of_draws": 100,
 	"noneiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
diff --git a/Experiments/configurations/noneiv_naval.json b/Experiments/configurations/noneiv_naval.json
index 2da83b73101d1a5a957f9773053b9610b0cb8aff..2562b1cf5014df581bb3b86dfc271aad3daf2472 100644
--- a/Experiments/configurations/noneiv_naval.json
+++ b/Experiments/configurations/noneiv_naval.json
@@ -9,7 +9,7 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 20,
-	"std_y_update_points": 20,
+	"std_y_update_points": [1,14],
 	"noneiv_prediction_number_of_draws": 100,
 	"noneiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
diff --git a/Experiments/configurations/noneiv_power.json b/Experiments/configurations/noneiv_power.json
index 48aac9dcf4cc208095142760d7bf286c2589b22b..e14e82d00f0048d0fa42a47baddf0ff520dbc27e 100644
--- a/Experiments/configurations/noneiv_power.json
+++ b/Experiments/configurations/noneiv_power.json
@@ -9,7 +9,7 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 10,
-	"std_y_update_points": 15,
+	"std_y_update_points": [1,15],
 	"noneiv_prediction_number_of_draws": 100,
 	"noneiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
diff --git a/Experiments/configurations/noneiv_protein.json b/Experiments/configurations/noneiv_protein.json
index 454deaef823c1a25c03588c4f430b5d0f67e5e93..36f5fafd53fc56e16387b86a038507e848564c97 100644
--- a/Experiments/configurations/noneiv_protein.json
+++ b/Experiments/configurations/noneiv_protein.json
@@ -9,7 +9,7 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 10,
-	"std_y_update_points": 10,
+	"std_y_update_points": [1,14],
 	"noneiv_prediction_number_of_draws": 100,
 	"noneiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
diff --git a/Experiments/configurations/noneiv_wine.json b/Experiments/configurations/noneiv_wine.json
index ddd2199fae58e2dd62409d554f51983b5bd1ef02..1c014763748a07c5ecb846a2391eff968fb09a78 100644
--- a/Experiments/configurations/noneiv_wine.json
+++ b/Experiments/configurations/noneiv_wine.json
@@ -9,7 +9,7 @@
 	"report_point": 5,
 	"p": 0.2,
 	"lr_update": 30,
-	"std_y_update_points": 50,
+	"std_y_update_points": [1,40],
 	"noneiv_prediction_number_of_draws": 100,
 	"noneiv_prediction_number_of_batches": 10,
 	"init_std_y_list": [0.5],
diff --git a/Experiments/create_tabular.py b/Experiments/create_tabular.py
new file mode 100644
index 0000000000000000000000000000000000000000..3d128431359c29961892df2f49e3a2f11720f450
--- /dev/null
+++ b/Experiments/create_tabular.py
@@ -0,0 +1,35 @@
+import os
+import glob
+import json
+
+metrics_to_display = ['rmse','logdens','bias','coverage_normalized']
+
+
+list_of_result_files = glob.glob(os.path.join('results','*.json'))
+results = {}
+for filename in list_of_result_files:
+    data = filename.replace(os.path.join('results','metrics_'),'').replace('.json','')
+    with open(filename,'r') as f:
+       results[data] = json.load(f)
+
+## header
+header_string = 'DATA'
+for metric in metrics_to_display:
+    header_string += f'          {metric}'
+print(header_string)
+## results
+for data in results.keys():
+    noneiv_results = [results[data]['noneiv'][metric]
+            for metric in metrics_to_display]
+    noneiv_results_string = f'{data} - nonEiV:'
+    for [metric_mean, metric_std] in noneiv_results:
+        noneiv_results_string += f'  {metric_mean:.3f} ({metric_std:.3f})'
+    print(noneiv_results_string)
+    eiv_results = [results[data]['eiv'][metric]
+            for metric in metrics_to_display]
+    eiv_results_string = f'{data} - EiV:'
+    for [metric_mean, metric_std] in eiv_results:
+        eiv_results_string += f'  {metric_mean:.3f} ({metric_std:.3f})'
+    print(eiv_results_string)
+
+
diff --git a/Experiments/evaluate_tabular.py b/Experiments/evaluate_metrics.py
similarity index 86%
rename from Experiments/evaluate_tabular.py
rename to Experiments/evaluate_metrics.py
index ba0654f071cdb96cfa72145fe048da4b088bc16b..5dbc16fcc5277e95db69d61b5decaee1a17fc0df 100644
--- a/Experiments/evaluate_tabular.py
+++ b/Experiments/evaluate_metrics.py
@@ -39,9 +39,25 @@ train_data, test_data = load_data()
 input_dim = train_data[0][0].numel()
 output_dim = train_data[0][1].numel()
 
+try:
+    gpu_number = eiv_conf_dict["gpu_number"]
+    device = torch.device(f'cuda:{gpu_number}')
+    try:
+        torch.tensor([0.0]).to(device)
+    except RuntimeError:
+        if torch.cuda.is_available():
+            print('Switched to GPU 0')
+            device = torch.device('cuda:0')
+        else:
+            print('No cuda available, using CPU')
+            device = torch.device('cpu')
+except KeyError:
+    device = torch.device('cpu')
+
+
 def collect_metrics(x,y, seed=0,
     noneiv_number_of_draws=100, eiv_number_of_draws=[100,5],
-    decouple_dimensions=False, device=torch.device('cuda:1'),
+    decouple_dimensions=False, device=device,
     scale_outputs=scale_outputs):
     """
     Compute various metrics for EiV and non-EiV. Will be returned as
@@ -215,11 +231,23 @@ for seed in tqdm(seed_list):
                 noneiv_metrics_collection[key].append(noneiv_metrics[key])
                 eiv_metrics_collection[key].append(eiv_metrics[key])
 
-print('Non-EiV\n-----')
+results_dict = {}
+print('Non-EiV:\n-----')
+results_dict['noneiv'] = {}
 for key in collection_keys:
-    print(f'{key} {np.mean(noneiv_metrics_collection[key]):.5f}'\
-            f'({np.std(noneiv_metrics_collection[key])/np.sqrt(num_test_epochs*len(seed_list)):.5f})')
-print('EiV\n-----')
+    metric_mean = float(np.mean(noneiv_metrics_collection[key]))
+    metric_std  = float(np.std(noneiv_metrics_collection[key])/np.sqrt(num_test_epochs*len(seed_list)))
+    results_dict['noneiv'][key] = (metric_mean, metric_std)
+    print(f'{key}: {metric_mean:.5f} ({metric_std:.5f})')
+print('\n')
+print('EiV:\n-----')
+results_dict['eiv'] = {}
 for key in collection_keys:
-    print(f'{key} {np.mean(eiv_metrics_collection[key]):.5f}'\
-            f'({np.std(eiv_metrics_collection[key])/np.sqrt(num_test_epochs*len(seed_list)):.5f})')
+    metric_mean = float(np.mean(eiv_metrics_collection[key]))
+    metric_std  = float(np.std(eiv_metrics_collection[key])/np.sqrt(num_test_epochs*len(seed_list)))
+    print(f'{key}: {metric_mean:.5f} ({metric_std:.5f})')
+    results_dict['eiv'][key] = (metric_mean, metric_std)
+
+# write results to a JSON file in the results folder
+with open(os.path.join('results',f'metrics_{short_dataname}.json'), 'w') as f:
+    json.dump(results_dict, f)
diff --git a/Experiments/train_eiv.py b/Experiments/train_eiv.py
index eb8d9d88292dd63130b38bc78db4eb1ed1db9014..68229469c167fc934a06bbf61e7c5673a3005b12 100644
--- a/Experiments/train_eiv.py
+++ b/Experiments/train_eiv.py
@@ -55,8 +55,16 @@ print(f"Training on {long_dataname} data")
 
 try:
     gpu_number = conf_dict["gpu_number"]
-    device = torch.device(f'cuda:{gpu_number}' if torch.cuda.is_available()
-            else 'cpu')
+    device = torch.device(f'cuda:{gpu_number}')
+    try:
+        torch.tensor([0.0]).to(device)
+    except RuntimeError:
+        if torch.cuda.is_available():
+            print('Switched to GPU 0')
+            device = torch.device('cuda:0')
+        else:
+            print('No cuda available, using CPU')
+            device = torch.device('cpu')
 except KeyError:
     device = torch.device('cpu')
 
diff --git a/Experiments/train_noneiv.py b/Experiments/train_noneiv.py
index 316dda1e8f5fbf42f46ae9135dadd5c803623df8..ee5687b268d762aeadac294ebdd6e43c37a25149 100644
--- a/Experiments/train_noneiv.py
+++ b/Experiments/train_noneiv.py
@@ -54,8 +54,16 @@ print(f"Training on {long_dataname} data")
 
 try:
     gpu_number = conf_dict["gpu_number"]
-    device = torch.device(f'cuda:{gpu_number}' if torch.cuda.is_available()
-            else 'cpu')
+    device = torch.device(f'cuda:{gpu_number}')
+    try:
+        torch.tensor([0.0]).to(device)
+    except RuntimeError:
+        if torch.cuda.is_available():
+            print('Switched to GPU 0')
+            device = torch.device('cuda:0')
+        else:
+            print('No cuda available, using CPU')
+            device = torch.device('cpu')
 except KeyError:
     device = torch.device('cpu')