From b473a9ae02a5d62a8f4e95fef3fd9c73486a2e50 Mon Sep 17 00:00:00 2001 From: "jan.middendorf@rwth-aachen.de" <jan.middendorf@rwth-aachen.de> Date: Mon, 17 Aug 2020 17:17:42 +0200 Subject: [PATCH] Added option to Normal class to ignore zeros in mean and std --- keras.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/keras.py b/keras.py index fced3c9..e4b333c 100644 --- a/keras.py +++ b/keras.py @@ -164,13 +164,17 @@ class KFeed(object): ) -def Normal(ref, indices=None, name=None, **kwargs): +def Normal(ref, indices=None, ignore_zeros=False, name=None, **kwargs): """ Normalizing layer according to ref. If given, only the variables corresponding to indices will be normalized. """ - mean = ref.mean(**kwargs) - std = ref.std(**kwargs) + if ignore_zeros: + mean = np.nanmean(np.where(ref==0, np.ones_like(ref)*np.nan, ref), **kwargs) + std = np.nanstd(np.where(ref==0, np.ones_like(ref)*np.nan, ref), **kwargs) + else: + mean = ref.mean(**kwargs) + std = ref.std(**kwargs) if indices: indices = np.array(indices) replace = np.isin(np.arange(len(mean)), indices, invert=True) -- GitLab