From 02e025b65e519d3ff57b153bd3a1d34b42a785c7 Mon Sep 17 00:00:00 2001 From: kazemakase Date: Wed, 4 Mar 2015 10:10:57 +0100 Subject: [PATCH 1/2] Infomax: Made fixed random seed optional --- scot/external/infomax_.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scot/external/infomax_.py b/scot/external/infomax_.py index cadba19..a3afb17 100644 --- a/scot/external/infomax_.py +++ b/scot/external/infomax_.py @@ -39,7 +39,7 @@ def info(*args, **kwargs): def infomax(data, weights=None, l_rate=None, block=None, w_change=1e-12, anneal_deg=60., anneal_step=0.9, extended=False, n_subgauss=1, kurt_size=6000, ext_blocks=1, max_iter=200, - random_state=None, verbose=None): + random_state=None, force_random_seed=False, verbose=None): """Run the (extended) Infomax ICA decomposition on raw data based on the publications of Bell & Sejnowski 1995 (Infomax) @@ -85,6 +85,8 @@ def infomax(data, weights=None, l_rate=None, block=None, w_change=1e-12, The maximum number of iterations. Defaults to 200. verbose : bool, str, int, or None If not None, override default verbose level (see mne.verbose). + force_random_seed : bool + If True, set random seed to a fixed value in each iteration. Returns ------- @@ -159,7 +161,8 @@ def infomax(data, weights=None, l_rate=None, block=None, w_change=1e-12, while step < max_iter: # shuffle data at each step - rng.seed(step) # --> permutation is fixed but differs at each step + if force_random_seed: + rng.seed(step) # --> permutation is fixed but differs at each step permute = list(range(n_samples)) rng.shuffle(permute) From 4b8e144a58e7c17ef3d72a4cb392f93989048ffa Mon Sep 17 00:00:00 2001 From: kazemakase Date: Thu, 5 Mar 2015 08:30:01 +0100 Subject: [PATCH 2/2] Updated infomax to latest version from MNE --- scot/external/infomax_.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/scot/external/infomax_.py b/scot/external/infomax_.py index a3afb17..c54554f 100644 --- a/scot/external/infomax_.py +++ b/scot/external/infomax_.py @@ -39,7 +39,7 @@ def info(*args, **kwargs): def infomax(data, weights=None, l_rate=None, block=None, w_change=1e-12, anneal_deg=60., anneal_step=0.9, extended=False, n_subgauss=1, kurt_size=6000, ext_blocks=1, max_iter=200, - random_state=None, force_random_seed=False, verbose=None): + random_state=None, verbose=None): """Run the (extended) Infomax ICA decomposition on raw data based on the publications of Bell & Sejnowski 1995 (Infomax) @@ -85,8 +85,6 @@ def infomax(data, weights=None, l_rate=None, block=None, w_change=1e-12, The maximum number of iterations. Defaults to 200. verbose : bool, str, int, or None If not None, override default verbose level (see mne.verbose). - force_random_seed : bool - If True, set random seed to a fixed value in each iteration. Returns ------- @@ -161,8 +159,6 @@ def infomax(data, weights=None, l_rate=None, block=None, w_change=1e-12, while step < max_iter: # shuffle data at each step - if force_random_seed: - rng.seed(step) # --> permutation is fixed but differs at each step permute = list(range(n_samples)) rng.shuffle(permute)