diff --git a/modules/deeplearning/icing_cnn.py b/modules/deeplearning/icing_cnn.py
index 311db2305a73962d4200aba6067fee279ced5415..be8cdeb538da307851fc00624bbc1a63339ef6c5 100644
--- a/modules/deeplearning/icing_cnn.py
+++ b/modules/deeplearning/icing_cnn.py
@@ -35,6 +35,7 @@ TRIPLET = False
 CONV3D = False
 
 NOISE_TRAINING = False
+NOISE_STDDEV = 0.01
 
 img_width = 16
 
@@ -244,10 +245,12 @@ class IcingIntensityNN:
         data = []
         for param in train_params:
             nda = self.get_parameter_data(param, nd_idxs, is_training)
-            if NOISE_TRAINING and is_training:
-                nda = normalize(nda, param, mean_std_dct, add_noise=True, noise_scale=0.01, seed=42)
-            else:
-                nda = normalize(nda, param, mean_std_dct)
+            # Manual Corruption Process. Better: see use of tf.keras.layers.GaussianNoise
+            # if NOISE_TRAINING and is_training:
+            #     nda = normalize(nda, param, mean_std_dct, add_noise=True, noise_scale=0.01, seed=42)
+            # else:
+            #     nda = normalize(nda, param, mean_std_dct)
+            nda = normalize(nda, param, mean_std_dct)
             if DO_ZERO_OUT and is_training:
                 try:
                     zero_out_params.index(param)
@@ -842,6 +845,8 @@ class IcingIntensityNN:
         f.close()
 
     def build_model(self):
+        if NOISE_TRAINING:
+            self.inputs[0] = tf.keras.layers.GaussianNoise(stddev=NOISE_STDDEV)(self.inputs[0])
         flat = self.build_cnn()
         # flat_1d = self.build_1d_cnn()
         # flat = tf.keras.layers.concatenate([flat, flat_1d, flat_anc])