diff --git a/caiman/components_evaluation.py b/caiman/components_evaluation.py index 5bf9a47c0..d0a74668d 100644 --- a/caiman/components_evaluation.py +++ b/caiman/components_evaluation.py @@ -6,7 +6,7 @@ import numpy as np import os import peakutils -import tensorflow as tf +import torch import scipy from scipy.sparse import csc_matrix from scipy.stats import norm @@ -273,42 +273,37 @@ def evaluate_components_CNN(A, if not isGPU and 'CAIMAN_ALLOW_GPU' not in os.environ: print("GPU run not requested, disabling use of GPUs") os.environ['CUDA_VISIBLE_DEVICES'] = '-1' - try: - os.environ["KERAS_BACKEND"] = "tensorflow" - from tensorflow.keras.models import model_from_json - use_keras = True - logger.info('Using Keras') + try: + os.environ["KERAS_BACKEND"] = "torch" + from keras.models import model_load + use_keras = True + logging.info('Using Keras') except (ModuleNotFoundError): - use_keras = False - logger.info('Using Tensorflow') + use_keras = False + logging.info('Using Torch') if loaded_model is None: if use_keras: - if os.path.isfile(os.path.join(caiman_datadir(), model_name + ".json")): - model_file = os.path.join(caiman_datadir(), model_name + ".json") - model_weights = os.path.join(caiman_datadir(), model_name + ".h5") - elif os.path.isfile(model_name + ".json"): - model_file = model_name + ".json" - model_weights = model_name + ".h5" + if os.path.isfile(os.path.join(caiman_datadir(), model_name + ".keras")): + model_file = os.path.join(caiman_datadir(), model_name + ".keras") + elif os.path.isfile(model_name + ".keras"): + model_file = model_name + ".keras" else: raise FileNotFoundError(f"File for requested model {model_name} not found") - with open(model_file, 'r') as json_file: - print(f"USING MODEL (keras API): {model_file}") - loaded_model_json = json_file.read() - - loaded_model = model_from_json(loaded_model_json) - loaded_model.load_weights(model_name + '.h5') + + print(f"USING MODEL (keras API): {model_file}") + loaded_model = model_load(model_file) else: - if os.path.isfile(os.path.join(caiman_datadir(), model_name + ".h5.pb")): - model_file = os.path.join(caiman_datadir(), model_name + ".h5.pb") - elif os.path.isfile(model_name + ".h5.pb"): - model_file = model_name + ".h5.pb" + if os.path.isfile(os.path.join(caiman_datadir(), model_name + ".pt")): + model_file = os.path.join(caiman_datadir(), model_name + ".pt") + elif os.path.isfile(model_name + ".pt"): + model_file = model_name + ".pt" else: raise FileNotFoundError(f"File for requested model {model_name} not found") print(f"USING MODEL (tensorflow API): {model_file}") - loaded_model = caiman.utils.utils.load_graph(model_file) + loaded_model = torch.load(model_file) - logger.debug("Loaded model from disk") + logging.debug("Loaded model from disk") half_crop = np.minimum(gSig[0] * 4 + 1, patch_size), np.minimum(gSig[1] * 4 + 1, patch_size) dims = np.array(dims) @@ -323,11 +318,11 @@ def evaluate_components_CNN(A, if use_keras: predictions = loaded_model.predict(final_crops[:, :, :, np.newaxis], batch_size=32, verbose=1) else: - tf_in = loaded_model.get_tensor_by_name('prefix/conv2d_20_input:0') - tf_out = loaded_model.get_tensor_by_name('prefix/output_node0:0') - with tf.Session(graph=loaded_model) as sess: - predictions = sess.run(tf_out, feed_dict={tf_in: final_crops[:, :, :, np.newaxis]}) - sess.close() + final_crops = torch.tensor(final_crops, dtype=torch.float32) + final_crops = torch.reshape(final_crops, (-1, final_crops.shape[-1], + final_crops.shape[1], final_crops.shape[2])) + with torch.no_grad(): + prediction = loaded_model(final_crops[:, np.newaxis, :, :]) return predictions, final_crops diff --git a/caiman/source_extraction/cnmf/online_cnmf.py b/caiman/source_extraction/cnmf/online_cnmf.py index 55b2828ba..1fe25d75d 100644 --- a/caiman/source_extraction/cnmf/online_cnmf.py +++ b/caiman/source_extraction/cnmf/online_cnmf.py @@ -13,6 +13,9 @@ imaging data in real time. In Advances in Neural Information Processing Systems (pp. 2381-2391). @url http://papers.nips.cc/paper/6832-onacid-online-analysis-of-calcium-imaging-data-in-real-time + +Implemented in PyTorch +Date: July 18, 2024 """ import cv2 @@ -26,7 +29,7 @@ from scipy.stats import norm from sklearn.decomposition import NMF from sklearn.preprocessing import normalize -import tensorflow as tf +import torch from time import time import caiman @@ -322,32 +325,28 @@ def _prepare_object(self, Yr, T, new_dims=None, idx_components=None): self.params.set('online', {'sniper_mode': False}) self.tf_in = None self.tf_out = None + # self.use_torch = None else: - try: - from tensorflow.keras.models import model_from_json - logger.info('Using Keras') + try: + from keras.models import load_model + logging.info('Using Keras') use_keras = True except(ModuleNotFoundError): - use_keras = False - logger.info('Using Tensorflow') + use_keras = False + logging.info('Using Torch') + + path = self.params.get('online', 'path_to_model').split(".")[:-1] if use_keras: - path = self.params.get('online', 'path_to_model').split(".")[:-1] - json_path = ".".join(path + ["json"]) - model_path = ".".join(path + ["h5"]) - json_file = open(json_path, 'r') - loaded_model_json = json_file.read() - json_file.close() - loaded_model = model_from_json(loaded_model_json) - loaded_model.load_weights(model_path) - self.tf_in = None - self.tf_out = None - else: - path = self.params.get('online', 'path_to_model').split(".")[:-1] - model_path = '.'.join(path + ['h5', 'pb']) + # uses online model -> be careful + model_path = ".".join(path + ["keras"]) + loaded_model = model_load(model_path) + # self.use_torch = False + else: + model_path = '.'.join(path + ['pt']) loaded_model = load_graph(model_path) - self.tf_in = loaded_model.get_tensor_by_name('prefix/conv2d_1_input:0') - self.tf_out = loaded_model.get_tensor_by_name('prefix/output_node0:0') - loaded_model = tf.Session(graph=loaded_model) + loaded_model = torch.load(model_file) + # self.use_torch = True + self.loaded_model = loaded_model if self.is1p: @@ -549,6 +548,7 @@ def fit_next(self, t, frame_in, num_iters_hals=3): use_peak_max=self.params.get('online', 'use_peak_max'), mean_buff=self.estimates.mean_buff, tf_in=self.tf_in, tf_out=self.tf_out, + # use_torch=self.use_torch, ssub_B=ssub_B, W=self.estimates.W if self.is1p else None, b0=self.estimates.b0 if self.is1p else None, corr_img=self.estimates.corr_img if use_corr else None, @@ -2004,6 +2004,7 @@ def get_candidate_components(sv, dims, Yres_buf, min_num_trial=3, gSig=(5, 5), thresh_CNN_noisy=0.5, use_peak_max=False, thresh_std_peak_resid = 1, mean_buff=None, tf_in=None, tf_out=None): + # use_torch=None): """ Extract new candidate components from the residual buffer and test them using space correlation or the CNN classifier. The function runs the CNN @@ -2084,12 +2085,19 @@ def get_candidate_components(sv, dims, Yres_buf, min_num_trial=3, gSig=(5, 5), Ain2 /= np.std(Ain2,axis=1)[:,None] Ain2 = np.reshape(Ain2,(-1,) + tuple(np.diff(ijSig_cnn).squeeze()),order= 'F') Ain2 = np.stack([cv2.resize(ain,(patch_size ,patch_size)) for ain in Ain2]) - if tf_in is None: + if use_torch is None: predictions = loaded_model.predict(Ain2[:,:,:,np.newaxis], batch_size=min_num_trial, verbose=0) + keep_cnn = list(np.where(predictions[:, 0] > thresh_CNN_noisy)[0]) else: - predictions = loaded_model.run(tf_out, feed_dict={tf_in: Ain2[:, :, :, np.newaxis]}) - keep_cnn = list(np.where(predictions[:, 0] > thresh_CNN_noisy)[0]) - cnn_pos = Ain2[keep_cnn] + final_crops = torch.tensor(Ain2, dtype=torch.float32) + final_crops = torch.reshape(Ain2, (-1, Ain2.shape[-1], + Ain2.shape[1], Ain2.shape[2])) + with torch.no_grad(): + prediction = loaded_model(Ain2[:, np.newaxis, :, :]) + keep_cnn = list(torch.where(predictions[:, 0] > thresh_CNN_noisy)[0]) + + cnn_pos = Ain2[keep_cnn] #Make sure this works + # tensor.numpy() also works else: keep_cnn = [] # list(range(len(Ain_cnn))) @@ -2139,6 +2147,7 @@ def update_num_components(t, sv, Ab, Cf, Yres_buf, Y_buf, rho_buf, crosscorr=None, col_ind=None, row_ind=None, corr_img_mode=None, max_img=None, downscale_matrix=None, upscale_matrix=None, tf_in=None, tf_out=None): + # torch_in=None, torch_out=None): """ Checks for new components in the residual buffer and incorporates them if they pass the acceptance tests """ @@ -2169,6 +2178,7 @@ def update_num_components(t, sv, Ab, Cf, Yres_buf, Y_buf, rho_buf, loaded_model=loaded_model, thresh_CNN_noisy=thresh_CNN_noisy, use_peak_max=use_peak_max, test_both=test_both, mean_buff=mean_buff, tf_in=tf_in, tf_out=tf_out) + #torch_in=torch_in, torch_out=torch_out) ind_new_all = ijsig_all diff --git a/caiman/tests/test_pytorch.py b/caiman/tests/test_pytorch.py new file mode 100644 index 000000000..900aa702a --- /dev/null +++ b/caiman/tests/test_pytorch.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python + +import numpy as np +import os +import keras + +from caiman.paths import caiman_datadir +from caiman.utils.utils import load_graph + +try: + os.environ["KERAS_BACKEND"] = "torch" + from keras.models import load_model + use_keras = True +except(ModuleNotFoundError): + import torch + use_keras = False + +def test_torch(): + os.environ['CUDA_VISIBLE_DEVICES'] = '-1' + + try: + model_name = os.path.join(caiman_datadir(), 'model', 'cnn_model') + if use_keras: + model_file = model_name + ".keras" + print('USING MODEL:' + model_file) + + loaded_model = load_model(model_file) + loaded_model.compile('sgd', 'mse') + elif use_keras == True: + model_file = model_name + ".pth" + loaded_model = torch.load(model_file) + except: + raise Exception(f'NN model could not be loaded. use_keras = {use_keras}') + + A = np.random.randn(10, 50, 50, 1) + try: + if use_keras == False: + predictions = loaded_model.predict(A, batch_size=32) + elif use_keras == True: + A = torch.tensor(A, dtype=torch.float32) + A = torch.reshape(A, (-1, A.shape[-1], A.shape[1], A.shape[2])) + with torch.no_grad(): + predictions = loaded_model(A) + pass + except: + raise Exception('NN model could not be deployed. use_keras = ' + str(use_keras)) + +if __name__ == "__main__": + test_torch() \ No newline at end of file diff --git a/caiman/train/__init__.py b/caiman/train/__init__.py new file mode 100644 index 000000000..1540ec0dc --- /dev/null +++ b/caiman/train/__init__.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python +import pkg_resources + +from caiman.train.train_cnn_model_keras import cnn_model_keras, save_model_keras, load_model_keras +from caiman.train.train_cnn_model_pytorch import cnn_model_pytorch, train_test_split, train, validate, get_batch_accuracy, save_model_pytorch, load_model_pytorch + +__version__ = pkg_resources.get_distribution('caiman').version \ No newline at end of file diff --git a/caiman/train/ground_truth_cnmf_seeded.ipynb b/caiman/train/ground_truth_cnmf_seeded.ipynb new file mode 100644 index 000000000..403208082 --- /dev/null +++ b/caiman/train/ground_truth_cnmf_seeded.ipynb @@ -0,0 +1,472 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Prepare ground truth built by matching with the results of CNMF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import cv2\n", + "import numpy as np\n", + "import os\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import caiman as cm\n", + "from caiman.utils.utils import download_demo\n", + "from caiman.base.rois import extract_binary_masks_blob\n", + "from caiman.utils.visualization import plot_contours, view_patches_bar\n", + "from caiman.source_extraction.cnmf import cnmf as cnmf\n", + "from caiman.motion_correction import MotionCorrect, tile_and_correct, motion_correction_piecewise \n", + "from caiman.components_evaluation import estimate_components_quality, evaluate_components\n", + "from caiman.tests.comparison import comparison" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Loading up the Ground Truth Files " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# neurofinder.03.00.test\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.03.00.test/images/final_map/Yr_d1_498_d2_467_d3_1_order_C_frames_2250_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.03.00.test/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 10,\n", + " # 'r_values_min_patch': .7, # threshold on space consistency\n", + " # 'fitness_min_patch': -20, # threshold on time variability\n", + " # # threshold on time variability (if nonsparse activity)\n", + " # 'fitness_delta_min_patch': -20,\n", + " # 'Npeaks': 10,\n", + " # 'r_values_min_full': .8,\n", + " # 'fitness_min_full': - 40,\n", + " # 'fitness_delta_min_full': - 40,\n", + " # 'only_init_patch': True,\n", + " 'gnb': 1,\n", + " # 'memory_fact': 1,\n", + " # 'n_chunks': 10,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False # for some movies needed\n", + " }\n", + "\n", + "# neurofinder.04.00.test\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.04.00.test/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_3000_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.04.00.test/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 10,\n", + " # 'r_values_min_patch': .7, # threshold on space consistency\n", + " # 'fitness_min_patch': -20, # threshold on time variability\n", + " # # threshold on time variability (if nonsparse activity)\n", + " # 'fitness_delta_min_patch': -20,\n", + " # 'Npeaks': 10,\n", + " # 'r_values_min_full': .8,\n", + " # 'fitness_min_full': - 40,\n", + " # 'fitness_delta_min_full': - 40,\n", + " # 'only_init_patch': True,\n", + " 'gnb': 1,\n", + " # 'memory_fact': 1,\n", + " # 'n_chunks': 10,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False # for some movies needed\n", + "\n", + " }\n", + "\n", + "# Yi not clear neurons\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/Yi.data.001/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_7826_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/Yi.data.001/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 30,\n", + " # 'r_values_min_patch': .7, # threshold on space consistency\n", + " # 'fitness_min_patch': -20, # threshold on time variability\n", + " # # threshold on time variability (if nonsparse activity)\n", + " # 'fitness_delta_min_patch': -20,\n", + " # 'Npeaks': 10,\n", + " # 'r_values_min_full': .8,\n", + " # 'fitness_min_full': - 40,\n", + " # 'fitness_delta_min_full': - 40,\n", + " # 'only_init_patch': True,\n", + " 'gnb': 1,\n", + " # 'memory_fact': 1,\n", + " # 'n_chunks': 10,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " }\n", + "\n", + "# neurofinder.02.00\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.02.00/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_8000_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.02.00/regions/joined_consensus_active_regions.npy'],\n", + " 'merge_thresh': .8, # merging threshold, max correlation allow\n", + " 'final_frate': 10,\n", + " 'gnb': 1,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False # for some movies needed\n", + " }\n", + "\n", + "# yuste: used kernel = np.ones((radius//4,radius//4),np.uint8)\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/yuste.Single_150u/images/final_map/Yr_d1_200_d2_256_d3_1_order_C_frames_3000_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman//labeling/yuste.Single_150u/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 10,\n", + " 'gnb': 1,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False # for some movies needed\n", + " }\n", + "\n", + "# neurofinder 00 00\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.00.00/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_2936_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.00.00/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 10,\n", + " # 'r_values_min_patch': .7, # threshold on space consistency\n", + " # 'fitness_min_patch': -20, # threshold on time variability\n", + " # # threshold on time variability (if nonsparse activity)\n", + " # 'fitness_delta_min_patch': -20,\n", + " # 'Npeaks': 10,\n", + " # 'r_values_min_full': .8,\n", + " # 'fitness_min_full': - 40,\n", + " # 'fitness_delta_min_full': - 40,\n", + " # 'only_init_patch': True,\n", + " 'gnb': 1,\n", + " # 'memory_fact': 1,\n", + " # 'n_chunks': 10,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False # for some movies needed\n", + " }\n", + "\n", + "# k53\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/k53_20160530/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_116043_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/k53_20160530/regions/joined_consensus_active_regions.npy'],\n", + " 'seed_name': ['/mnt/ceph/data/neuro/caiman/labeling/k53_20160530/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 30,\n", + " 'gnb': 1,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False, # for some movies needed\n", + " 'kernel': None\n", + " }\n", + "\n", + "# neurofinder: 01.01\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.01.01/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_1825_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.01.01/regions/joined_consensus_active_regions.npy'],\n", + " 'seed_name': ['/mnt/ceph/data/neuro/caiman/labeling/neurofinder.01.01/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 10,\n", + " 'gnb': 1,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False, # for some movies needed\n", + " 'kernel': None\n", + " }\n", + "\n", + "# J115: 01.01\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/J115_2015-12-09_L01_ELS/images/final_map/Yr_d1_463_d2_472_d3_1_order_C_frames_90000_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/J115_2015-12-09_L01_ELS/regions/joined_consensus_active_regions.npy'],\n", + " 'seed_name': ['/mnt/ceph/data/neuro/caiman/labeling/J115_2015-12-09_L01_ELS/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 10,\n", + " 'gnb': 1,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False, # for some movies needed\n", + " 'kernel': None\n", + " }\n", + "\n", + "# J123\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/J123_2015-11-20_L01_0/images/final_map/Yr_d1_458_d2_477_d3_1_order_C_frames_41000_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/J123_2015-11-20_L01_0/regions/joined_consensus_active_regions.npy'],\n", + " 'seed_name': ['/mnt/ceph/data/neuro/caiman/labeling/J123_2015-11-20_L01_0/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 10,\n", + " 'gnb': 1,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False, # for some movies needed\n", + " 'kernel': None\n", + " }\n", + "# Jan-AMG\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/Jan-AMG_exp3_001/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_115897_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/Jan-AMG_exp3_001/regions/joined_consensus_active_regions.npy'],\n", + " 'seed_name': ['/mnt/ceph/data/neuro/caiman/labeling/Jan-AMG_exp3_001/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 10,\n", + " 'gnb': 1,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False, # for some movies needed\n", + " 'kernel': None,\n", + " 'crop_pix': 8,\n", + " }\n", + "\n", + "# sue k37, not nice because few events\n", + "params_movie = {'fname': ['/mnt/ceph/data/neuro/caiman/labeling/k37_20160109_AM_150um_65mW_zoom2p2_00001_1-16/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_48000_.mmap'],\n", + " 'gtname': ['/mnt/ceph/data/neuro/caiman/labeling/k37_20160109_AM_150um_65mW_zoom2p2_00001_1-16/regions/joined_consensus_active_regions.npy'],\n", + " 'seed_name': ['/mnt/ceph/data/neuro/caiman/labeling/k37_20160109_AM_150um_65mW_zoom2p2_00001_1-16/regions/joined_consensus_active_regions.npy'],\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 1, # merging threshold, max correlation allow\n", + " 'final_frate': 30,\n", + " 'gnb': 2,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False, # for some movies needed\n", + " 'kernel': None,\n", + " 'crop_pix': 7,\n", + " }" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Parameters for the Movie and Name of the Movie " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "params_display = {\n", + " 'downsample_ratio': .2,\n", + " 'thr_plot': 0.8\n", + "}\n", + "\n", + "# @params fname name of the movie\n", + "fname_new = params_movie['fname'][0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analysis " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "c, dview, n_processes = cm.cluster.setup_cluster(\n", + " backend='local', n_processes=None, single_thread=False)\n", + "\n", + "Yr, dims, T = cm.load_memmap(fname_new)\n", + "d1, d2 = dims\n", + "images = np.reshape(Yr.T, [T] + list(dims), order='F')\n", + "Y = np.reshape(Yr, dims + (T,), order='F')\n", + "m_images = cm.movie(images)\n", + "\n", + "# correlation image\n", + "if m_images.shape[0] < 10000:\n", + " Cn = m_images.local_correlations(\n", + " swap_dim=params_movie['swap_dim'], frames_per_chunk=1500)\n", + " Cn[np.isnan(Cn)] = 0\n", + "else:\n", + " Cn = np.array(cm.load(('/'.join(params_movie['gtname'][0].split('/')[:-2] + [\n", + " 'projections', 'correlation_image_better.tif'])))).squeeze()\n", + "\n", + "plt.imshow(Cn, cmap='gray', vmax=.95)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if not '.mat' in params_movie['seed_name'][0]:\n", + " roi_cons = np.load(params_movie['seed_name'][0])\n", + "else:\n", + " roi_cons = scipy.io.loadmat(params_movie['seed_name'][0])['comps'].reshape(\n", + " (dims[1], dims[0], -1), order='F').transpose([2, 1, 0]) * 1.\n", + "\n", + "radius = int(np.median(np.sqrt(np.sum(roi_cons, (1, 2)) / np.pi)))\n", + "\n", + "print(radius)\n", + "print(roi_cons.shape)\n", + "pl.imshow(roi_cons.sum(0))\n", + "\n", + "if params_movie['kernel'] is not None: # kernel usually two\n", + " kernel = np.ones(\n", + " (radius // params_movie['kernel'], radius // params_movie['kernel']), np.uint8)\n", + " roi_cons = np.vstack([cv2.dilate(rr, kernel, iterations=1)[\n", + " np.newaxis, :, :] > 0 for rr in roi_cons]) * 1.\n", + " pl.imshow(roi_cons.sum(0), alpha=0.5)\n", + "\n", + "A_in = np.reshape(roi_cons.transpose(\n", + " [2, 1, 0]), (-1, roi_cons.shape[0]), order='C')\n", + "pl.figure()\n", + "crd = plot_contours(A_in, Cn, thr=.99999)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# %% some parameter settings\n", + "# order of the autoregressive fit to calcium imaging in general one (slow gcamps) or two (fast gcamps fast scanning)\n", + "p = params_movie['p']\n", + "# merging threshold, max correlation allowed\n", + "merge_thresh = params_movie['merge_thresh']\n", + "\n", + "# %% Extract spatial and temporal components on patches\n", + "# TODO: todocument\n", + "if images.shape[0] > 10000:\n", + " check_nan = False\n", + "else:\n", + " check_nan = True\n", + "\n", + "cnm = cnmf.CNMF(check_nan=check_nan, n_processes=1, k=A_in.shape[-1], gSig=[radius, radius], merge_thresh=params_movie['merge_thresh'], p=params_movie['p'], Ain=A_in.astype(bool),\n", + " dview=dview, rf=None, stride=None, gnb=params_movie['gnb'], method_deconvolution='oasis', border_pix=0, low_rank_background=params_movie['low_rank_background'], n_pixels_per_process=1000)\n", + "cnm = cnm.fit(images)\n", + "\n", + "A = cnm.A\n", + "C = cnm.C\n", + "YrA = cnm.YrA\n", + "b = cnm.b\n", + "f = cnm.f\n", + "snt = cnm.sn\n", + "print(('Number of components:' + str(A.shape[-1])))\n", + "# %%\n", + "pl.figure()\n", + "# TODO: show screenshot 12`\n", + "# TODO : change the way it is used\n", + "crd = plot_contours(A, Cn, thr=params_display['thr_plot'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# TODO: needinfo\n", + "view_patches_bar(Yr, scipy.sparse.coo_matrix(A.tocsc()[:, :]), C[:, :], b, f, dims[0], dims[1],\n", + " YrA=YrA[:, :], img=Cn)\n", + "\n", + "#%%\n", + "c, dview, n_processes = cm.cluster.setup_cluster(\n", + " backend='local', n_processes=None, single_thread=False)\n", + "#%% thredshold components\n", + "min_size_neuro = 3 * 2 * np.pi\n", + "max_size_neuro = (2 * radius)**2 * np.pi\n", + "A_thr = cm.source_extraction.cnmf.spatial.threshold_components(A.tocsc()[:, :].toarray(), dims, medw=None, thr_method='max', maxthr=0.2, nrgthr=0.99, extract_cc=True,\n", + " se=None, ss=None, dview=dview)\n", + "\n", + "A_thr = A_thr > 0\n", + "size_neurons = A_thr.sum(0)\n", + "idx_size_neuro = np.where((size_neurons > min_size_neuro)\n", + " & (size_neurons < max_size_neuro))[0]\n", + "A_thr = A_thr[:, idx_size_neuro]\n", + "print(A_thr.shape)\n", + "#%%\n", + "crd = plot_contours(scipy.sparse.coo_matrix(\n", + " A_thr * 1.), Cn, thr=.99, vmax=0.35)\n", + "#%%\n", + "roi_cons = np.load(params_movie['gtname'][0])\n", + "print(roi_cons.shape)\n", + "pl.imshow(roi_cons.sum(0))\n", + "#%% compare CNMF sedded with ground truth\n", + "pl.figure(figsize=(30, 20))\n", + "tp_gt, tp_comp, fn_gt, fp_comp, performance_cons_off = cm.base.rois.nf_match_neurons_in_binary_masks(roi_cons, A_thr[:, :].reshape([dims[0], dims[1], -1], order='F').transpose([2, 0, 1]) * 1., thresh_cost=.7, min_dist=10,\n", + " print_assignment=False, plot_results=False, Cn=Cn, labels=['GT', 'Offline'])\n", + "pl.rcParams['pdf.fonttype'] = 42\n", + "font = {'family': 'Myriad Pro',\n", + " 'weight': 'regular',\n", + " 'size': 20}\n", + "pl.rc('font', **font)\n", + "\n", + "#%%\n", + "np.savez(os.path.join(os.path.split(fname_new)[0], os.path.split(fname_new)[1][:-4] + 'match_masks.npz'), Cn=Cn,\n", + " tp_gt=tp_gt, tp_comp=tp_comp, fn_gt=fn_gt, fp_comp=fp_comp, performance_cons_off=performance_cons_off, idx_size_neuro_gt=idx_size_neuro, A_thr=A_thr,\n", + " A_gt=A, C_gt=C, b_gt=b, f_gt=f, YrA_gt=YrA, d1=d1, d2=d2, idx_components_gt=idx_size_neuro[\n", + " tp_comp],\n", + " idx_components_bad_gt=idx_size_neuro[fp_comp], fname_new=fname_new)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "caiman_pytorch", + "language": "python", + "name": "caiman_pytorch" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/caiman/train/match_seeded_gt.ipynb b/caiman/train/match_seeded_gt.ipynb new file mode 100644 index 000000000..3f8685877 --- /dev/null +++ b/caiman/train/match_seeded_gt.ipynb @@ -0,0 +1,5469 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-08-04 22:39:01.243425: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", + "2024-08-04 22:39:01.262158: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "To enable the following instructions: SSE4.1 SSE4.2 AVX AVX2 AVX512F AVX512_VNNI AVX512_BF16 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" + ] + } + ], + "source": [ + "#!/usr/bin/env python\n", + "\n", + "# @package demos\n", + "#\\brief for the user/programmer to understand and try the code\n", + "#\\details all of other usefull functions (demos available on jupyter notebook) -*- coding: utf-8 -*-\n", + "#\\version 1.0\n", + "#\\pre EXample.First initialize the system.\n", + "#\\bug\n", + "#\\warning\n", + "#\\copyright GNU General Public License v2.0\n", + "#\\date Created on Mon Nov 21 15:53:15 2016\n", + "#\\author agiovann, recreated by mpaez\n", + "\n", + "import cv2\n", + "import numpy as np\n", + "import os\n", + "import time\n", + "import pylab as pl\n", + "\n", + "import caiman as cm\n", + "from caiman.utils.utils import download_demo\n", + "from caiman.base.rois import extract_binary_masks_blob\n", + "from caiman.utils.visualization import plot_contours, view_patches_bar\n", + "from caiman.source_extraction.cnmf import cnmf as cnmf\n", + "from caiman.motion_correction import MotionCorrect, tile_and_correct, motion_correction_piecewise \n", + "from caiman.components_evaluation import estimate_components_quality, evaluate_components\n", + "from caiman.tests.comparison import comparison" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "params_movie = {'fname': '/mnt/ceph/data/neuro/caiman/labeling/neurofinder.03.00.test/images/final_map/Yr_d1_498_d2_467_d3_1_order_C_frames_2250_.mmap',\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 0.8, # merging threshold, max correlation allow\n", + " 'rf': 25, # half-size of the patches in pixels. rf=25, patches are 50x50 20\n", + " 'stride_cnmf': 10, # amounpl.it of overlap between the patches in pixels\n", + " 'K': 4, # number of components per patch\n", + " # if dendritic. In this case you need to set init_method to sparse_nmf\n", + " 'is_dendrites': False,\n", + " 'init_method': 'greedy_roi',\n", + " 'gSig': [8, 8], # expected half size of neurons\n", + " 'alpha_snmf': None, # this controls sparsity\n", + " 'final_frate': 10,\n", + " 'r_values_min_patch': .5, # threshold on space consistency\n", + " 'fitness_min_patch': -10, # threshold on time variability\n", + " # threshold on time variability (if nonsparse activity)\n", + " 'fitness_delta_min_patch': -5,\n", + " 'Npeaks': 5,\n", + " 'r_values_min_full': .8,\n", + " 'fitness_min_full': - 40,\n", + " 'fitness_delta_min_full': - 40,\n", + " 'only_init_patch': True,\n", + " 'gnb': 2,\n", + " 'memory_fact': 1,\n", + " 'n_chunks': 10,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " }\n", + "\n", + "params_movie = {'fname': '/mnt/ceph/data/neuro/caiman/labeling/neurofinder.04.00.test/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_3000_.mmap',\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 0.8, # merging threshold, max correlation allow\n", + " 'rf': 20, # half-size of the patches in pixels. rf=25, patches are 50x50 20\n", + " 'stride_cnmf': 10, # amounpl.it of overlap between the patches in pixels\n", + " 'K': 5, # number of components per patch\n", + " # if dendritic. In this case you need to set init_method to sparse_nmf\n", + " 'is_dendrites': False,\n", + " 'init_method': 'greedy_roi',\n", + " 'gSig': [5, 5], # expected half size of neurons\n", + " 'alpha_snmf': None, # this controls sparsity\n", + " 'final_frate': 10,\n", + " 'r_values_min_patch': .5, # threshold on space consistency\n", + " 'fitness_min_patch': -10, # threshold on time variability\n", + " # threshold on time variability (if nonsparse activity)\n", + " 'fitness_delta_min_patch': -10,\n", + " 'Npeaks': 5,\n", + " 'r_values_min_full': .8,\n", + " 'fitness_min_full': - 40,\n", + " 'fitness_delta_min_full': - 40,\n", + " 'only_init_patch': True,\n", + " 'gnb': 2,\n", + " 'memory_fact': 1,\n", + " 'n_chunks': 10,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " }\n", + "\n", + "params_movie = {'fname': '/mnt/ceph/data/neuro/caiman/labeling/neurofinder.04.00.test/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_3000_.mmap',\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 0.8, # merging threshold, max correlation allow\n", + " 'rf': 20, # half-size of the patches in pixels. rf=25, patches are 50x50 20\n", + " 'stride_cnmf': 10, # amounpl.it of overlap between the patches in pixels\n", + " 'K': 5, # number of components per patch\n", + " # if dendritic. In this case you need to set init_method to sparse_nmf\n", + " 'is_dendrites': False,\n", + " 'init_method': 'greedy_roi',\n", + " 'gSig': [5, 5], # expected half size of neurons\n", + " 'alpha_snmf': None, # this controls sparsity\n", + " 'final_frate': 10,\n", + " 'r_values_min_patch': .5, # threshold on space consistency\n", + " 'fitness_min_patch': -10, # threshold on time variability\n", + " # threshold on time variability (if nonsparse activity)\n", + " 'fitness_delta_min_patch': -10,\n", + " 'Npeaks': 5,\n", + " 'r_values_min_full': .8,\n", + " 'fitness_min_full': - 40,\n", + " 'fitness_delta_min_full': - 40,\n", + " 'only_init_patch': True,\n", + " 'gnb': 2,\n", + " 'memory_fact': 1,\n", + " 'n_chunks': 10,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " }\n", + "\n", + "# neurofinder 02.00\n", + "params_movie = {'fname': '/mnt/ceph/data/neuro/caiman/labeling/neurofinder.02.00/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_8000_.mmap',\n", + " 'p': 1, # order of the autoregressive system\n", + " 'merge_thresh': 0.8, # merging threshold, max correlation allow\n", + " 'rf': 20, # half-size of the patches in pixels. rf=25, patches are 50x50 20\n", + " 'stride_cnmf': 10, # amounpl.it of overlap between the patches in pixels\n", + " 'K': 6, # number of components per patch\n", + " # if dendritic. In this case you need to set init_method to sparse_nmf\n", + " 'is_dendrites': False,\n", + " 'init_method': 'greedy_roi',\n", + " 'gSig': [5, 5], # expected half size of neurons\n", + " 'alpha_snmf': None, # this controls sparsity\n", + " 'final_frate': 10,\n", + " 'r_values_min_patch': .5, # threshold on space consistency\n", + " 'fitness_min_patch': -10, # threshold on time variability\n", + " # threshold on time variability (if nonsparse activity)\n", + " 'fitness_delta_min_patch': -10,\n", + " 'Npeaks': 5,\n", + " 'r_values_min_full': .8,\n", + " 'fitness_min_full': - 40,\n", + " 'fitness_delta_min_full': - 40,\n", + " 'only_init_patch': True,\n", + " 'gnb': 2,\n", + " 'memory_fact': 1,\n", + " 'n_chunks': 10,\n", + " # whether to update the background components in the spatial phase\n", + " 'update_background_components': True,\n", + " 'low_rank_background': True, # whether to update the using a low rank approximation. In the False case all the nonzero elements of the background components are updated using hals\n", + " #(to be used with one background per patch)\n", + " 'swap_dim': False,\n", + " 'crop_pix': 10\n", + " }\n", + "\n", + "params_display = {\n", + " 'downsample_ratio': .2,\n", + " 'thr_plot': 0.8\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 45266 [cluster.py: setup_cluster():225] [1655335] The local backend is an alias for the multiprocessing backend, and the alias may be removed in some future version of Caiman\n", + " 46267 [movies.py: local_correlations():826] [1655335] number of chunks:0 frames: [0, 1500]\n", + " 48404 [movies.py: local_correlations():826] [1655335] number of chunks:1 frames: [1500, 3000]\n", + " 50038 [movies.py: local_correlations():826] [1655335] number of chunks:2 frames: [3000, 4500]\n", + " 51669 [movies.py: local_correlations():826] [1655335] number of chunks:3 frames: [4500, 6000]\n", + " 53304 [movies.py: local_correlations():837] [1655335] number of chunks:4 frames: [6000, 8000]\n", + " 56916 [font_manager.py: _findfont_cached():1416] [1655335] findfont: Matching sans\\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + " 56918 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Bold.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 0.33499999999999996\n", + " 56919 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymReg.ttf', name='STIXSizeFourSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56920 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansDisplay.ttf', name='DejaVu Sans Display', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56920 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymBol.ttf', name='STIXSizeThreeSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56921 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 0.05\n", + " 56922 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymReg.ttf', name='STIXSizeTwoSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56922 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralItalic.ttf', name='STIXGeneral', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56923 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymReg.ttf', name='STIXSizeThreeSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56924 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmex10.ttf', name='cmex10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56926 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniBolIta.ttf', name='STIXNonUnicode', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56927 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono.ttf', name='DejaVu Sans Mono', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56927 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Oblique.ttf', name='DejaVu Sans Mono', style='oblique', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56928 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymBol.ttf', name='STIXSizeTwoSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56929 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmmi10.ttf', name='cmmi10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56929 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Bold.ttf', name='DejaVu Sans Mono', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56930 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBol.ttf', name='STIXGeneral', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56930 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniIta.ttf', name='STIXNonUnicode', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56931 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmb10.ttf', name='cmb10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56932 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmtt10.ttf', name='cmtt10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56932 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif.ttf', name='DejaVu Serif', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56933 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmss10.ttf', name='cmss10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56934 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Italic.ttf', name='DejaVu Serif', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56934 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Bold.ttf', name='DejaVu Serif', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56935 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUni.ttf', name='STIXNonUnicode', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56936 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-BoldItalic.ttf', name='DejaVu Serif', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56936 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniBol.ttf', name='STIXNonUnicode', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56937 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneral.ttf', name='STIXGeneral', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56937 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymReg.ttf', name='STIXSizeOneSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56938 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymBol.ttf', name='STIXSizeFourSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56939 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmsy10.ttf', name='cmsy10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56939 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-BoldOblique.ttf', name='DejaVu Sans', style='oblique', variant='normal', weight=700, stretch='normal', size='scalable')) = 1.335\n", + " 56940 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymBol.ttf', name='STIXSizeOneSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56941 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-BoldOblique.ttf', name='DejaVu Sans Mono', style='oblique', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56941 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Oblique.ttf', name='DejaVu Sans', style='oblique', variant='normal', weight=400, stretch='normal', size='scalable')) = 1.05\n", + " 56942 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerifDisplay.ttf', name='DejaVu Serif Display', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56943 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFiveSymReg.ttf', name='STIXSizeFiveSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56943 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmr10.ttf', name='cmr10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56944 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBolIta.ttf', name='STIXGeneral', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56944 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-Italic.ttf', name='Lato', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56944 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf', name='DejaVu Sans Mono', style='oblique', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56944 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/URWGothic-DemiOblique.otf', name='URW Gothic', style='oblique', variant='normal', weight=600, stretch='normal', size='scalable')) = 11.24\n", + " 56945 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusSansNarrow-Bold.otf', name='Nimbus Sans Narrow', style='normal', variant='normal', weight=700, stretch='condensed', size='scalable')) = 10.535\n", + " 56945 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/URWGothic-Book.otf', name='URW Gothic', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56947 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf', name='DejaVu Sans', style='oblique', variant='normal', weight=700, stretch='normal', size='scalable')) = 1.335\n", + " 56947 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSansMono.ttf', name='DejaVu Sans Mono', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56947 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-Black.ttf', name='Lato', style='normal', variant='normal', weight=900, stretch='normal', size='scalable')) = 10.525\n", + " 56948 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusRoman-Italic.otf', name='Nimbus Roman', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56948 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-crosextra-carlito/Carlito-Bold.ttf', name='Carlito', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56948 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-mono/LiberationMono-BoldItalic.ttf', name='Liberation Mono', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56948 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-HairlineItalic.ttf', name='Lato', style='italic', variant='normal', weight=250, stretch='normal', size='scalable')) = 11.1925\n", + " 56948 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansArabic.ttf', name='Droid Sans Arabic', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56949 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSerifCondensed-BoldItalic.ttf', name='DejaVu Serif', style='italic', variant='normal', weight=700, stretch='condensed', size='scalable')) = 11.535\n", + " 56949 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-mono/LiberationMono-Bold.ttf', name='Liberation Mono', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56949 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansGeorgian.ttf', name='Droid Sans Georgian', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56949 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf', name='DejaVu Sans Mono', style='oblique', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56949 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSansCondensed-BoldOblique.ttf', name='DejaVu Sans', style='oblique', variant='normal', weight=700, stretch='condensed', size='scalable')) = 1.535\n", + " 56949 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansDevanagari-Regular.ttf', name='Droid Sans Devanagari', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56950 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSerif.ttf', name='DejaVu Serif', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56950 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/fontawesome/fontawesome-webfont.ttf', name='FontAwesome', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56950 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf', name='DejaVu Serif', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56950 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-mono/LiberationMono-Regular.ttf', name='Liberation Mono', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56950 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/URWGothic-Demi.otf', name='URW Gothic', style='normal', variant='normal', weight=600, stretch='normal', size='scalable')) = 10.24\n", + " 56951 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusMonoPS-Bold.otf', name='Nimbus Mono PS', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56951 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSans.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 0.05\n", + " 56951 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/URWBookman-LightItalic.otf', name='URW Bookman', style='italic', variant='normal', weight=300, stretch='normal', size='scalable')) = 11.145\n", + " 56951 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-Semibold.ttf', name='Lato', style='normal', variant='normal', weight=600, stretch='normal', size='scalable')) = 10.24\n", + " 56951 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/URWBookman-Light.otf', name='URW Bookman', style='normal', variant='normal', weight=300, stretch='normal', size='scalable')) = 10.145\n", + " 56951 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusSans-Italic.otf', name='Nimbus Sans', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56952 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/D050000L.otf', name='D050000L', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56952 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/fontawesome/FontAwesome.otf', name='FontAwesome', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56952 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/opensymbol/opens___.ttf', name='OpenSymbol', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56952 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-serif/LiberationSerif-Regular.ttf', name='Liberation Serif', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56952 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-BlackItalic.ttf', name='Lato', style='italic', variant='normal', weight=900, stretch='normal', size='scalable')) = 11.525\n", + " 56952 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansHebrew-Bold.ttf', name='Droid Sans Hebrew', style='normal', variant='normal', weight=600, stretch='normal', size='scalable')) = 10.24\n", + " 56953 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansEthiopic-Regular.ttf', name='Droid Sans Ethiopic', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56953 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansHebrew-Regular.ttf', name='Droid Sans Hebrew', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56953 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-Bold.ttf', name='Lato', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56953 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf', name='DejaVu Sans Mono', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56953 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-Thin.ttf', name='Lato', style='normal', variant='normal', weight=275, stretch='normal', size='scalable')) = 10.16875\n", + " 56953 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/P052-Roman.otf', name='P052', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56954 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-crosextra-caladea/Caladea-Regular.ttf', name='Caladea', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56954 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusMonoPS-Regular.otf', name='Nimbus Mono PS', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56954 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-sans/LiberationSans-Bold.ttf', name='Liberation Sans', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56954 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSerif-Italic.ttf', name='DejaVu Serif', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56954 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-Heavy.ttf', name='Lato', style='normal', variant='normal', weight=800, stretch='normal', size='scalable')) = 10.43\n", + " 56955 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/C059-BdIta.otf', name='C059', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56955 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/abattis-cantarell/Cantarell-Bold.otf', name='Cantarell', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56955 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusSans-BoldItalic.otf', name='Nimbus Sans', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56955 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-roboto-slab/RobotoSlab-Light.ttf', name='Roboto Slab', style='normal', variant='normal', weight=300, stretch='normal', size='scalable')) = 10.145\n", + " 56955 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusRoman-BoldItalic.otf', name='Nimbus Roman', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56966 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-crosextra-caladea/Caladea-Italic.ttf', name='Caladea', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56966 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-roboto-slab/RobotoSlab-Bold.ttf', name='Roboto Slab', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56967 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-HeavyItalic.ttf', name='Lato', style='italic', variant='normal', weight=800, stretch='normal', size='scalable')) = 11.43\n", + " 56967 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusSansNarrow-BoldOblique.otf', name='Nimbus Sans Narrow', style='oblique', variant='normal', weight=700, stretch='condensed', size='scalable')) = 11.535\n", + " 56967 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 0.33499999999999996\n", + " 56967 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-serif/LiberationSerif-BoldItalic.ttf', name='Liberation Serif', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56967 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSansCondensed-Oblique.ttf', name='DejaVu Sans', style='oblique', variant='normal', weight=400, stretch='condensed', size='scalable')) = 1.25\n", + " 56968 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSerifCondensed-Bold.ttf', name='DejaVu Serif', style='normal', variant='normal', weight=700, stretch='condensed', size='scalable')) = 10.535\n", + " 56968 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansTamil-Regular.ttf', name='Droid Sans Tamil', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56968 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSans-ExtraLight.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=200, stretch='normal', size='scalable')) = 0.24\n", + " 56968 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/C059-Italic.otf', name='C059', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56968 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusSansNarrow-Regular.otf', name='Nimbus Sans Narrow', style='normal', variant='normal', weight=400, stretch='condensed', size='scalable')) = 10.25\n", + " 56969 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/abattis-cantarell/Cantarell-BoldOblique.otf', name='Cantarell', style='oblique', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56969 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf', name='DejaVu Sans', style='oblique', variant='normal', weight=400, stretch='normal', size='scalable')) = 1.05\n", + " 56969 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusSans-Bold.otf', name='Nimbus Sans', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56969 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-crosextra-carlito/Carlito-Italic.ttf', name='Carlito', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56969 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/URWGothic-BookOblique.otf', name='URW Gothic', style='oblique', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56969 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSans.ttf', name='Droid Sans', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56970 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusMonoPS-BoldItalic.otf', name='Nimbus Mono PS', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56970 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusSans-Regular.otf', name='Nimbus Sans', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56970 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/C059-Bold.otf', name='C059', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56970 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSerifCondensed-Italic.ttf', name='DejaVu Serif', style='italic', variant='normal', weight=400, stretch='condensed', size='scalable')) = 11.25\n", + " 56970 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSansCondensed-Bold.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=700, stretch='condensed', size='scalable')) = 0.5349999999999999\n", + " 56970 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansThai.ttf', name='Droid Sans Thai', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56970 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-sans/LiberationSans-Italic.ttf', name='Liberation Sans', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56971 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-crosextra-carlito/Carlito-BoldItalic.ttf', name='Carlito', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56971 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/P052-Italic.otf', name='P052', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56971 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusSansNarrow-Oblique.otf', name='Nimbus Sans Narrow', style='oblique', variant='normal', weight=400, stretch='condensed', size='scalable')) = 11.25\n", + " 56971 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/P052-BoldItalic.otf', name='P052', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56971 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-sans/LiberationSans-BoldItalic.ttf', name='Liberation Sans', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56971 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-SemiboldItalic.ttf', name='Lato', style='italic', variant='normal', weight=600, stretch='normal', size='scalable')) = 11.24\n", + " 56971 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-Hairline.ttf', name='Lato', style='normal', variant='normal', weight=250, stretch='normal', size='scalable')) = 10.1925\n", + " 56972 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-Light.ttf', name='Lato', style='normal', variant='normal', weight=300, stretch='normal', size='scalable')) = 10.145\n", + " 56972 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/abattis-cantarell/Cantarell-Oblique.otf', name='Cantarell', style='oblique', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56972 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusRoman-Bold.otf', name='Nimbus Roman', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56972 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusMonoPS-Italic.otf', name='Nimbus Mono PS', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56972 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansFallback.ttf', name='Droid Sans Fallback', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56972 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-ThinItalic.ttf', name='Lato', style='italic', variant='normal', weight=275, stretch='normal', size='scalable')) = 11.16875\n", + " 56972 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-roboto-slab/RobotoSlab-Regular.ttf', name='Roboto Slab', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56973 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSerifCondensed.ttf', name='DejaVu Serif', style='normal', variant='normal', weight=400, stretch='condensed', size='scalable')) = 10.25\n", + " 56973 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-mono/LiberationMono-Italic.ttf', name='Liberation Mono', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56973 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSerif-BoldItalic.ttf', name='DejaVu Serif', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56973 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/abattis-cantarell/Cantarell-Regular.otf', name='Cantarell', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56973 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/P052-Bold.otf', name='P052', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56973 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/dejavu/DejaVuSansCondensed.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=400, stretch='condensed', size='scalable')) = 0.25\n", + " 56973 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/C059-Roman.otf', name='C059', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56974 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-crosextra-caladea/Caladea-Bold.ttf', name='Caladea', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56974 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-LightItalic.ttf', name='Lato', style='italic', variant='normal', weight=300, stretch='normal', size='scalable')) = 11.145\n", + " 56974 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/NimbusRoman-Regular.otf', name='Nimbus Roman', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56974 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-Medium.ttf', name='Lato', style='normal', variant='normal', weight=500, stretch='normal', size='scalable')) = 10.145\n", + " 56974 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansTamil-Bold.ttf', name='Droid Sans Tamil', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56974 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-crosextra-caladea/Caladea-BoldItalic.ttf', name='Caladea', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56974 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansArmenian.ttf', name='Droid Sans Armenian', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56975 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-Regular.ttf', name='Lato', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56975 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansEthiopic-Bold.ttf', name='Droid Sans Ethiopic', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56975 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/URWBookman-DemiItalic.otf', name='URW Bookman', style='italic', variant='normal', weight=600, stretch='normal', size='scalable')) = 11.24\n", + " 56975 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSansJapanese.ttf', name='Droid Sans Japanese', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56975 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-MediumItalic.ttf', name='Lato', style='italic', variant='normal', weight=500, stretch='normal', size='scalable')) = 11.145\n", + " 56975 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-droid/DroidSans-Bold.ttf', name='Droid Sans', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56975 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-sans/LiberationSans-Regular.ttf', name='Liberation Sans', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56975 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-serif/LiberationSerif-Italic.ttf', name='Liberation Serif', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05\n", + " 56976 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/lato/Lato-BoldItalic.ttf', name='Lato', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335\n", + " 56976 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-roboto-slab/RobotoSlab-Thin.ttf', name='Roboto Slab', style='normal', variant='normal', weight=250, stretch='normal', size='scalable')) = 10.1925\n", + " 56976 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/google-crosextra-carlito/Carlito-Regular.ttf', name='Carlito', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05\n", + " 56976 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/Z003-MediumItalic.otf', name='Z003', style='italic', variant='normal', weight=500, stretch='normal', size='scalable')) = 11.145\n", + " 56976 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/liberation-serif/LiberationSerif-Bold.ttf', name='Liberation Serif', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335\n", + " 56976 [font_manager.py: _findfont_cached():1428] [1655335] findfont: score(FontEntry(fname='/usr/share/fonts/urw-base35/URWBookman-Demi.otf', name='URW Bookman', style='normal', variant='normal', weight=600, stretch='normal', size='scalable')) = 10.24\n", + " 56976 [font_manager.py: _findfont_cached():1460] [1655335] findfont: Matching sans\\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to DejaVu Sans ('/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf') with score of 0.050000.\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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tbW1OHfu3CFK8nuVY0kVtlqtuO222yIiavu6BuVwGcjnpctAPi9dBvJ56TKQz/cuLyWj2dnZI9X5A+3jGpRBGZRBGZRBebnLIHANyqAMyqAMyrEqxzZwjY+Px0c/+tFDL3YblIMykM9Ll4F8XroM5PPSZSCf713+NmV0LBdnDMqgDMqgDMqtW45txjUogzIogzIot2YZBK5BGZRBGZRBOVZlELgGZVAGZVAG5ViVQeAalEEZlEEZlGNVjmXg+g//4T/EHXfcEe12O+699974n//zf/6wm/SylK9+9avxC7/wC3Hu3LkYGhqK//pf/2vt+6qq4mMf+1icO3cuJiYm4qd/+qfjySefrF2zs7MT73//++PUqVMxOTkZv/iLvxgXL158GXvxt1cefPDB+If/8B/G9PR0vOIVr4h/+k//aTz11FO1a25lGf3H//gf4w1veEPZEPqWt7wl/uzP/qx8fyvLpqk8+OCDMTR08Lomyq0so4997GOHTpbnBcIRL7NsqmNWHnrooWp0dLT6zGc+U33rW9+qPvCBD1STk5PVs88++8Nu2t96+dM//dPqIx/5SPWFL3yhiojqi1/8Yu37T3ziE9X09HT1hS98obpw4UL1z//5P6/Onj1bra6ulmve+973Vrfddlv18MMPV9/4xjeqn/mZn6nuueeean9//2Xuzf//8k/+yT+pfv/3f7964oknqscff7x6xzveUd1+++3V+vp6ueZWltGXvvSl6k/+5E+qp556qnrqqaeq3/qt36pGR0erJ554oqqqW1s2ufzVX/1V9epXv7p6wxveUH3gAx8on9/KMvroRz9a/fiP/3h16dKl8nPlypXy/cspm2MXuH7yJ3+yeu9731v77PWvf331r//1v/4hteiHU3Lg6vV61cLCQvWJT3yifLa9vV3Nzs5W/+k//aeqqqpqeXm5Gh0drR566KFyzXe/+92q1WpV/+2//beXre0vV7ly5UoVEdUjjzxSVdVARk3lxIkT1X/5L/9lIBuVtbW16s4776wefvjh6q1vfWsJXLe6jD760Y9W99xzT+N3L7dsjhVVuLu7G4899li8/e1vr33+9re/Pb7+9a//kFr1d6M888wzcfny5ZpsxsfH461vfWuRzWOPPRZ7e3u1a86dOxd33XXXj6T8VlZWIiJifn4+IgYycul2u/HQQw/FxsZGvOUtbxnIRuU3fuM34h3veMeht7IPZBTx9NNPx7lz5+KOO+6IX/7lX47vfOc7EfHyy+ZYHbJ77dq16Ha7cebMmdrnZ86cicuXL/+QWvV3o9D/Jtk8++yz5ZqxsbE4ceLEoWt+1ORXVVX8q3/1r+If/aN/FHfddVdEDGQUEXHhwoV4y1veEtvb2zE1NRVf/OIX48d+7MeK47iVZRMR8dBDD8U3vvGNePTRRw99d6vrz5vf/Ob4wz/8w3jd614XL774Yvz2b/923HffffHkk0++7LI5VoGL4tdLR/RfMT0oR5PNj6L83ve+98Vf//Vfx9e+9rVD393KMvr7f//vx+OPPx7Ly8vxhS98Id7znvfEI488Ur6/lWXz/PPPxwc+8IH48pe/XHtjcy63qox+/ud/vvx99913x1ve8pb4e3/v78XnPve5+Kmf+qmIePlkc6yowlOnTsXw8PCh6HzlypVDkf5WK6zueSnZLCwsxO7ubiwtLd3wmh+F8v73vz++9KUvxZ//+Z/XXlA3kFHE2NhYvPa1r403velN8eCDD8Y999wT//bf/tuBbOKAyrpy5Urce++95U3njzzySPy7f/fvYmRkpPTxVpaRy+TkZNx9993x9NNPv+z6c6wC19jYWNx7773x8MMP1z5/+OGH47777vshtervRrnjjjtiYWGhJpvd3d145JFHimzuvffeGB0drV1z6dKleOKJJ34k5FdVVbzvfe+LP/7jP47/8T/+R9xxxx217wcyOlyqqoqdnZ2BbCLi/vvvjwsXLsTjjz9eft70pjfFu9/97nj88cfjNa95zS0vI5ednZ349re/HWfPnn359eemlnL8HSgsh//sZz9bfetb36oeeOCBanJysvq///f//rCb9rde1tbWqm9+85vVN7/5zSoiqk996lPVN7/5zbIV4BOf+EQ1Oztb/fEf/3F14cKF6ld+5Vcal6OeP3+++spXvlJ94xvfqH72Z3/2R2KpblVV1b/8l/+ymp2drf7iL/6itmR3c3OzXHMry+jDH/5w9dWvfrV65plnqr/+67+ufuu3fqtqtVrVl7/85aqqbm3Z3Kh4VWFV3doy+uAHP1j9xV/8RfWd73yn+su//Mvqne98ZzU9PV1878spm2MXuKqqqv79v//31ate9apqbGys+omf+Imy3PlHvfz5n/95FRGHft7znvdUVXWwJPWjH/1otbCwUI2Pj1f/+B//4+rChQu1Ora2tqr3ve991fz8fDUxMVG9853vrJ577rkfQm/+/5cm2URE9fu///vlmltZRv/iX/yLYjenT5+u7r///hK0qurWls2NSg5ct7KM2Jc1OjpanTt3rnrXu95VPfnkk+X7l1M2g9eaDMqgDMqgDMqxKsdqjmtQBmVQBmVQBmUQuAZlUAZlUAblWJVB4BqUQRmUQRmUY1UGgWtQBmVQBmVQjlUZBK5BGZRBGZRBOVZlELgGZVAGZVAG5ViVQeAalEEZlEEZlGNVBoFrUAZlUAZlUI5VGQSuQRmUQRmUQTlWZRC4BmVQBmVQBuVYlUHgGpRBGZRBGZRjVQaBa1AGZVAGZVCOVfl/lOVaga3Sy4QAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 62280 [map_reduce.py: cnmf_patches():78] [1655470] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20490_41010START\n", + " 62281 [map_reduce.py: cnmf_patches():78] [1655472] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35850_56370START\n", + " 62284 [map_reduce.py: cnmf_patches():78] [1655474] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66570_87090START\n", + " 62285 [map_reduce.py: cnmf_patches():78] [1655475] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 81930_102450START\n", + " 62286 [map_reduce.py: cnmf_patches():78] [1655476] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97290_117810START\n", + " 62287 [map_reduce.py: cnmf_patches():78] [1655477] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112650_133170START\n", + " 62289 [map_reduce.py: cnmf_patches():78] [1655478] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128010_148530START\n", + " 62290 [map_reduce.py: cnmf_patches():78] [1655479] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143370_163890START\n", + " 62291 [map_reduce.py: cnmf_patches():78] [1655480] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158730_179250START\n", + " 62292 [map_reduce.py: cnmf_patches():78] [1655481] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174090_194610START\n", + " 62283 [map_reduce.py: cnmf_patches():78] [1655473] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51210_71730START\n", + " 62294 [map_reduce.py: cnmf_patches():78] [1655482] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189450_209970START\n", + " 62295 [map_reduce.py: cnmf_patches():78] [1655483] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204810_225330START\n", + " 62297 [map_reduce.py: cnmf_patches():78] [1655484] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220170_240690START\n", + " 62298 [map_reduce.py: cnmf_patches():78] [1655485] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235530_256050START\n", + " 62299 [map_reduce.py: cnmf_patches():78] [1655486] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236554_256562START\n", + " 62300 [map_reduce.py: cnmf_patches():78] [1655487] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5160_25680START\n", + " 62302 [map_reduce.py: cnmf_patches():78] [1655488] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20520_41040START\n", + " 62303 [map_reduce.py: cnmf_patches():78] [1655489] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35880_56400START\n", + " 62304 [map_reduce.py: cnmf_patches():78] [1655490] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51240_71760START\n", + " 62305 [map_reduce.py: cnmf_patches():78] [1655491] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66600_87120START\n", + " 62307 [map_reduce.py: cnmf_patches():78] [1655492] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 81960_102480START\n", + " 62308 [map_reduce.py: cnmf_patches():78] [1655493] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97320_117840START\n", + " 62309 [map_reduce.py: cnmf_patches():78] [1655494] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112680_133200START\n", + " 62311 [map_reduce.py: cnmf_patches():78] [1655495] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128040_148560START\n", + " 62312 [map_reduce.py: cnmf_patches():78] [1655496] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143400_163920START\n", + " 62313 [map_reduce.py: cnmf_patches():78] [1655497] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158760_179280START\n", + " 62316 [map_reduce.py: cnmf_patches():78] [1655500] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204840_225360START\n", + " 62318 [map_reduce.py: cnmf_patches():78] [1655501] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220200_240720START\n", + " 62319 [map_reduce.py: cnmf_patches():78] [1655502] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235560_256080START\n", + " 62320 [map_reduce.py: cnmf_patches():78] [1655503] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236584_256592START\n", + " 62321 [map_reduce.py: cnmf_patches():78] [1655504] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5190_25710START\n", + " 62323 [map_reduce.py: cnmf_patches():78] [1655505] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20550_41070START\n", + " 62324 [map_reduce.py: cnmf_patches():78] [1655506] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35910_56430START\n", + " 62326 [map_reduce.py: cnmf_patches():78] [1655507] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51270_71790START\n", + " 62327 [map_reduce.py: cnmf_patches():78] [1655508] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66630_87150START\n", + " 62329 [map_reduce.py: cnmf_patches():78] [1655509] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 81990_102510START\n", + " 62330 [map_reduce.py: cnmf_patches():78] [1655510] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97350_117870START\n", + " 62332 [map_reduce.py: cnmf_patches():78] [1655511] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112710_133230START\n", + " 62333 [map_reduce.py: cnmf_patches():78] [1655512] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128070_148590START\n", + " 62334 [map_reduce.py: cnmf_patches():78] [1655513] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143430_163950START\n", + " 62336 [map_reduce.py: cnmf_patches():78] [1655514] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158790_179310START\n", + " 62337 [map_reduce.py: cnmf_patches():78] [1655515] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174150_194670START\n", + " 62338 [map_reduce.py: cnmf_patches():78] [1655516] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189510_210030START\n", + " 62339 [map_reduce.py: cnmf_patches():78] [1655517] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204870_225390START\n", + " 62315 [map_reduce.py: cnmf_patches():78] [1655499] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189480_210000START\n", + " 62341 [map_reduce.py: cnmf_patches():78] [1655518] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220230_240750START\n", + " 62342 [map_reduce.py: cnmf_patches():78] [1655519] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235590_256110START\n", + " 62343 [map_reduce.py: cnmf_patches():78] [1655520] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236614_256622START\n", + " 62344 [map_reduce.py: cnmf_patches():78] [1655521] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5220_25740START\n", + " 62346 [map_reduce.py: cnmf_patches():78] [1655522] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20580_41100START\n", + " 62347 [map_reduce.py: cnmf_patches():78] [1655523] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35940_56460START\n", + " 62348 [map_reduce.py: cnmf_patches():78] [1655524] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51300_71820START\n", + " 62349 [map_reduce.py: cnmf_patches():78] [1655525] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66660_87180START\n", + " 62350 [map_reduce.py: cnmf_patches():78] [1655526] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82020_102540START\n", + " 62352 [map_reduce.py: cnmf_patches():78] [1655527] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97380_117900START\n", + " 62353 [map_reduce.py: cnmf_patches():78] [1655528] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112740_133260START\n", + " 62354 [map_reduce.py: cnmf_patches():78] [1655529] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128100_148620START\n", + " 62356 [map_reduce.py: cnmf_patches():78] [1655530] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143460_163980START\n", + " 62357 [map_reduce.py: cnmf_patches():78] [1655531] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158820_179340START\n", + " 62358 [map_reduce.py: cnmf_patches():78] [1655532] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174180_194700START\n", + " 62359 [map_reduce.py: cnmf_patches():78] [1655533] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189540_210060START\n", + " 62360 [map_reduce.py: cnmf_patches():78] [1655534] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204900_225420START\n", + " 62361 [map_reduce.py: cnmf_patches():78] [1655535] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220260_240780START\n", + " 62362 [map_reduce.py: cnmf_patches():78] [1655536] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235620_256140START\n", + " 62364 [map_reduce.py: cnmf_patches():78] [1655537] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236644_256652START\n", + " 62365 [map_reduce.py: cnmf_patches():78] [1655538] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5250_25770START\n", + " 62366 [map_reduce.py: cnmf_patches():78] [1655539] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20610_41130START\n", + " 62367 [map_reduce.py: cnmf_patches():78] [1655540] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35970_56490START\n", + " 62368 [map_reduce.py: cnmf_patches():78] [1655541] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51330_71850START\n", + " 62370 [map_reduce.py: cnmf_patches():78] [1655542] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66690_87210START\n", + " 62371 [map_reduce.py: cnmf_patches():78] [1655543] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82050_102570START\n", + " 62372 [map_reduce.py: cnmf_patches():78] [1655544] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97410_117930START\n", + " 62373 [map_reduce.py: cnmf_patches():78] [1655545] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112770_133290START\n", + " 62374 [map_reduce.py: cnmf_patches():78] [1655546] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128130_148650START\n", + " 62375 [map_reduce.py: cnmf_patches():78] [1655547] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143490_164010START\n", + " 62377 [map_reduce.py: cnmf_patches():78] [1655548] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158850_179370START\n", + " 62378 [map_reduce.py: cnmf_patches():78] [1655549] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174210_194730START\n", + " 62379 [map_reduce.py: cnmf_patches():78] [1655550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189570_210090START\n", + " 62380 [map_reduce.py: cnmf_patches():78] [1655551] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204930_225450START\n", + " 62381 [map_reduce.py: cnmf_patches():78] [1655552] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220290_240810START\n", + " 62383 [map_reduce.py: cnmf_patches():78] [1655553] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235650_256170START\n", + " 62384 [map_reduce.py: cnmf_patches():78] [1655554] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236674_256682START\n", + " 62385 [map_reduce.py: cnmf_patches():78] [1655555] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5280_25800START\n", + " 62386 [map_reduce.py: cnmf_patches():78] [1655556] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20640_41160START\n", + " 62388 [map_reduce.py: cnmf_patches():78] [1655557] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36000_56520START\n", + " 62389 [map_reduce.py: cnmf_patches():78] [1655558] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51360_71880START\n", + " 62390 [map_reduce.py: cnmf_patches():78] [1655559] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66720_87240START\n", + " 62391 [map_reduce.py: cnmf_patches():78] [1655560] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82080_102600START\n", + " 62392 [map_reduce.py: cnmf_patches():78] [1655561] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97440_117960START\n", + " 62396 [map_reduce.py: cnmf_patches():78] [1655564] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143520_164040START\n", + " 62314 [map_reduce.py: cnmf_patches():78] [1655498] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174120_194640START\n", + " 62394 [map_reduce.py: cnmf_patches():78] [1655562] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112800_133320START\n", + " 62278 [map_reduce.py: cnmf_patches():78] [1655469] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5130_25650START\n", + " 62395 [map_reduce.py: cnmf_patches():78] [1655563] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128160_148680START\n", + " 62440 [map_reduce.py: cnmf_patches():80] [1655560] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82080_102600Read file\n", + " 62440 [map_reduce.py: cnmf_patches():80] [1655549] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174210_194730Read file\n", + " 62440 [map_reduce.py: cnmf_patches():80] [1655561] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97440_117960Read file\n", + " 62441 [map_reduce.py: cnmf_patches():80] [1655548] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158850_179370Read file\n", + " 62441 [map_reduce.py: cnmf_patches():80] [1655526] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82020_102540Read file\n", + " 62442 [map_reduce.py: cnmf_patches():80] [1655547] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143490_164010Read file\n", + " 62442 [map_reduce.py: cnmf_patches():80] [1655552] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220290_240810Read file\n", + " 62443 [map_reduce.py: cnmf_patches():80] [1655529] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128100_148620Read file\n", + " 62443 [map_reduce.py: cnmf_patches():80] [1655535] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220260_240780Read file\n", + " 62443 [map_reduce.py: cnmf_patches():80] [1655550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189570_210090Read file\n", + " 62444 [map_reduce.py: cnmf_patches():80] [1655516] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189510_210030Read file\n", + " 62445 [map_reduce.py: cnmf_patches():80] [1655559] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66720_87240Read file\n", + " 62445 [map_reduce.py: cnmf_patches():80] [1655553] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235650_256170Read file\n", + " 62445 [map_reduce.py: cnmf_patches():80] [1655514] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158790_179310Read file\n", + " 62446 [map_reduce.py: cnmf_patches():80] [1655527] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97380_117900Read file\n", + " 62446 [map_reduce.py: cnmf_patches():80] [1655509] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 81990_102510Read file\n", + " 62446 [map_reduce.py: cnmf_patches():80] [1655551] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204930_225450Read file\n", + " 62447 [map_reduce.py: cnmf_patches():80] [1655534] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204900_225420Read file\n", + " 62447 [map_reduce.py: cnmf_patches():80] [1655513] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143430_163950Read file\n", + " 62447 [map_reduce.py: cnmf_patches():80] [1655556] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20640_41160Read file\n", + " 62448 [map_reduce.py: cnmf_patches():80] [1655536] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235620_256140Read file\n", + " 62448 [map_reduce.py: cnmf_patches():80] [1655558] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51360_71880Read file\n", + " 62449 [map_reduce.py: cnmf_patches():80] [1655542] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66690_87210Read file\n", + " 62449 [map_reduce.py: cnmf_patches():80] [1655525] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66660_87180Read file\n", + " 62449 [map_reduce.py: cnmf_patches():80] [1655528] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112740_133260Read file\n", + " 62450 [map_reduce.py: cnmf_patches():80] [1655543] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82050_102570Read file\n", + " 62450 [map_reduce.py: cnmf_patches():80] [1655520] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236614_256622Read file\n", + " 62451 [map_reduce.py: cnmf_patches():80] [1655530] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143460_163980Read file\n", + " 62451 [map_reduce.py: cnmf_patches():80] [1655521] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5220_25740Read file\n", + " 62452 [map_reduce.py: cnmf_patches():80] [1655541] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51330_71850Read file\n", + " 62452 [map_reduce.py: cnmf_patches():80] [1655515] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174150_194670Read file\n", + " 62453 [map_reduce.py: cnmf_patches():80] [1655540] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35970_56490Read file\n", + " 62453 [map_reduce.py: cnmf_patches():80] [1655544] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97410_117930Read file\n", + " 62453 [map_reduce.py: cnmf_patches():80] [1655537] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236644_256652Read file\n", + " 62454 [map_reduce.py: cnmf_patches():80] [1655555] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5280_25800Read file\n", + " 62454 [map_reduce.py: cnmf_patches():80] [1655538] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5250_25770Read file\n", + " 62454 [map_reduce.py: cnmf_patches():80] [1655546] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128130_148650Read file\n", + " 62455 [map_reduce.py: cnmf_patches():80] [1655557] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36000_56520Read file\n", + " 62455 [map_reduce.py: cnmf_patches():80] [1655545] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112770_133290Read file\n", + " 62456 [map_reduce.py: cnmf_patches():80] [1655510] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97350_117870Read file\n", + " 62456 [map_reduce.py: cnmf_patches():80] [1655531] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158820_179340Read file\n", + " 62457 [map_reduce.py: cnmf_patches():80] [1655519] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235590_256110Read file\n", + " 62457 [map_reduce.py: cnmf_patches():80] [1655508] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66630_87150Read file\n", + " 62458 [map_reduce.py: cnmf_patches():80] [1655506] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35910_56430Read file\n", + " 62458 [map_reduce.py: cnmf_patches():80] [1655507] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51270_71790Read file\n", + " 62458 [map_reduce.py: cnmf_patches():80] [1655524] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51300_71820Read file\n", + " 62459 [map_reduce.py: cnmf_patches():80] [1655564] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143520_164040Read file\n", + " 62459 [map_reduce.py: cnmf_patches():80] [1655523] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35940_56460Read file\n", + " 62459 [map_reduce.py: cnmf_patches():80] [1655532] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174180_194700Read file\n", + " 62460 [map_reduce.py: cnmf_patches():80] [1655511] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112710_133230Read file\n", + " 62460 [map_reduce.py: cnmf_patches():80] [1655533] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189540_210060Read file\n", + " 62460 [map_reduce.py: cnmf_patches():80] [1655539] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20610_41130Read file\n", + " 62461 [map_reduce.py: cnmf_patches():80] [1655517] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204870_225390Read file\n", + " 62461 [map_reduce.py: cnmf_patches():80] [1655512] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128070_148590Read file\n", + " 62462 [map_reduce.py: cnmf_patches():80] [1655518] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220230_240750Read file\n", + " 62462 [map_reduce.py: cnmf_patches():80] [1655554] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236674_256682Read file\n", + " 62462 [map_reduce.py: cnmf_patches():80] [1655522] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20580_41100Read file\n", + " 62463 [map_reduce.py: cnmf_patches():80] [1655505] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20550_41070Read file\n", + " 62463 [map_reduce.py: cnmf_patches():80] [1655500] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204840_225360Read file\n", + " 62463 [map_reduce.py: cnmf_patches():80] [1655497] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158760_179280Read file\n", + " 62464 [map_reduce.py: cnmf_patches():80] [1655503] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236584_256592Read file\n", + " 62464 [map_reduce.py: cnmf_patches():80] [1655482] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189450_209970Read file\n", + " 62464 [map_reduce.py: cnmf_patches():80] [1655504] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5190_25710Read file\n", + " 62465 [map_reduce.py: cnmf_patches():80] [1655496] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143400_163920Read file\n", + " 62465 [map_reduce.py: cnmf_patches():80] [1655478] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128010_148530Read file\n", + " 62465 [map_reduce.py: cnmf_patches():80] [1655481] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174090_194610Read file\n", + " 62466 [map_reduce.py: cnmf_patches():80] [1655487] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5160_25680Read file\n", + " 62466 [map_reduce.py: cnmf_patches():80] [1655485] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235530_256050Read file\n", + " 62466 [map_reduce.py: cnmf_patches():80] [1655492] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 81960_102480Read file\n", + " 62467 [map_reduce.py: cnmf_patches():80] [1655483] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204810_225330Read file\n", + " 62467 [map_reduce.py: cnmf_patches():80] [1655490] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51240_71760Read file\n", + " 62468 [map_reduce.py: cnmf_patches():80] [1655480] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158730_179250Read file\n", + " 62468 [map_reduce.py: cnmf_patches():80] [1655488] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20520_41040Read file\n", + " 62468 [map_reduce.py: cnmf_patches():80] [1655474] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66570_87090Read file\n", + " 62469 [map_reduce.py: cnmf_patches():80] [1655499] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189480_210000Read file\n", + " 62469 [map_reduce.py: cnmf_patches():80] [1655493] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97320_117840Read file\n", + " 62469 [map_reduce.py: cnmf_patches():80] [1655495] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128040_148560Read file\n", + " 62470 [map_reduce.py: cnmf_patches():80] [1655484] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220170_240690Read file\n", + " 62470 [map_reduce.py: cnmf_patches():80] [1655477] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112650_133170Read file\n", + " 62470 [map_reduce.py: cnmf_patches():80] [1655502] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235560_256080Read file\n", + " 62471 [map_reduce.py: cnmf_patches():80] [1655494] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112680_133200Read file\n", + " 62471 [map_reduce.py: cnmf_patches():80] [1655475] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 81930_102450Read file\n", + " 62471 [map_reduce.py: cnmf_patches():80] [1655501] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220200_240720Read file\n", + " 62472 [map_reduce.py: cnmf_patches():80] [1655479] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143370_163890Read file\n", + " 62472 [map_reduce.py: cnmf_patches():80] [1655491] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66600_87120Read file\n", + " 62472 [map_reduce.py: cnmf_patches():80] [1655486] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236554_256562Read file\n", + " 62473 [map_reduce.py: cnmf_patches():80] [1655489] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35880_56400Read file\n", + " 62473 [map_reduce.py: cnmf_patches():80] [1655473] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51210_71730Read file\n", + " 62473 [map_reduce.py: cnmf_patches():80] [1655472] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35850_56370Read file\n", + " 62474 [map_reduce.py: cnmf_patches():80] [1655476] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97290_117810Read file\n", + " 62484 [map_reduce.py: cnmf_patches():80] [1655469] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5130_25650Read file\n", + " 62484 [map_reduce.py: cnmf_patches():80] [1655470] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20490_41010Read file\n", + " 62475 [map_reduce.py: cnmf_patches():80] [1655498] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174120_194640Read file\n", + " 62474 [map_reduce.py: cnmf_patches():80] [1655562] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112800_133320Read file\n", + " 62557 [map_reduce.py: cnmf_patches():100] [1655558] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51360_71880file loaded\n", + " 62596 [map_reduce.py: cnmf_patches():100] [1655509] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 81990_102510file loaded\n", + " 62598 [map_reduce.py: cnmf_patches():100] [1655515] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174150_194670file loaded\n", + " 62600 [map_reduce.py: cnmf_patches():100] [1655543] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82050_102570file loaded\n", + " 62601 [map_reduce.py: cnmf_patches():100] [1655525] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66660_87180file loaded\n", + " 62602 [map_reduce.py: cnmf_patches():100] [1655551] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204930_225450file loaded\n", + " 62603 [map_reduce.py: cnmf_patches():100] [1655549] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174210_194730file loaded\n", + " 62604 [map_reduce.py: cnmf_patches():100] [1655514] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158790_179310file loaded\n", + " 62605 [map_reduce.py: cnmf_patches():100] [1655547] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143490_164010file loaded\n", + " 62605 [map_reduce.py: cnmf_patches():100] [1655536] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235620_256140file loaded\n", + " 62646 [map_reduce.py: cnmf_patches():100] [1655535] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220260_240780file loaded\n", + " 62649 [map_reduce.py: cnmf_patches():100] [1655519] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235590_256110file loaded\n", + " 62650 [map_reduce.py: cnmf_patches():100] [1655552] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220290_240810file loaded\n", + " 62651 [map_reduce.py: cnmf_patches():100] [1655516] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189510_210030file loaded\n", + " 62668 [map_reduce.py: cnmf_patches():100] [1655531] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158820_179340file loaded\n", + " 62681 [map_reduce.py: cnmf_patches():100] [1655555] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5280_25800file loaded\n", + " 62682 [map_reduce.py: cnmf_patches():100] [1655529] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128100_148620file loaded\n", + " 62760 [map_reduce.py: cnmf_patches():100] [1655545] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112770_133290file loaded\n", + " 62762 [map_reduce.py: cnmf_patches():100] [1655546] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128130_148650file loaded\n", + " 62763 [map_reduce.py: cnmf_patches():100] [1655530] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143460_163980file loaded\n", + " 62765 [map_reduce.py: cnmf_patches():100] [1655557] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36000_56520file loaded\n", + " 62766 [map_reduce.py: cnmf_patches():100] [1655541] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51330_71850file loaded\n", + " 62767 [map_reduce.py: cnmf_patches():100] [1655553] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235650_256170file loaded\n", + " 62767 [map_reduce.py: cnmf_patches():100] [1655520] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236614_256622file loaded\n", + " 62759 [map_reduce.py: cnmf_patches():100] [1655503] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236584_256592file loaded\n", + " 62768 [map_reduce.py: cnmf_patches():100] [1655550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189570_210090file loaded\n", + " 62854 [map_reduce.py: cnmf_patches():100] [1655542] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66690_87210file loaded\n", + " 62891 [map_reduce.py: cnmf_patches():100] [1655540] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35970_56490file loaded\n", + " 62904 [map_reduce.py: cnmf_patches():100] [1655507] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51270_71790file loaded\n", + " 62905 [map_reduce.py: cnmf_patches():100] [1655534] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204900_225420file loaded\n", + " 62908 [map_reduce.py: cnmf_patches():100] [1655526] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82020_102540file loaded\n", + " 62909 [map_reduce.py: cnmf_patches():100] [1655510] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97350_117870file loaded\n", + " 62911 [map_reduce.py: cnmf_patches():100] [1655524] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51300_71820file loaded\n", + " 62912 [map_reduce.py: cnmf_patches():100] [1655508] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66630_87150file loaded\n", + " 62914 [map_reduce.py: cnmf_patches():100] [1655506] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35910_56430file loaded\n", + " 62914 [map_reduce.py: cnmf_patches():100] [1655500] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204840_225360file loaded\n", + " 62916 [map_reduce.py: cnmf_patches():100] [1655513] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143430_163950file loaded\n", + " 62916 [map_reduce.py: cnmf_patches():100] [1655533] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189540_210060file loaded\n", + " 62918 [map_reduce.py: cnmf_patches():100] [1655560] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82080_102600file loaded\n", + " 62921 [map_reduce.py: cnmf_patches():100] [1655538] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5250_25770file loaded\n", + " 62949 [map_reduce.py: cnmf_patches():100] [1655496] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143400_163920file loaded\n", + " 62963 [map_reduce.py: cnmf_patches():100] [1655511] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112710_133230file loaded\n", + " 63049 [map_reduce.py: cnmf_patches():100] [1655554] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236674_256682file loaded\n", + " 63033 [map_reduce.py: cnmf_patches():100] [1655523] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35940_56460file loaded\n", + " 62950 [map_reduce.py: cnmf_patches():100] [1655537] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236644_256652file loaded\n", + " 63035 [map_reduce.py: cnmf_patches():100] [1655518] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220230_240750file loaded\n", + " 63036 [map_reduce.py: cnmf_patches():100] [1655485] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235530_256050file loaded\n", + " 63036 [map_reduce.py: cnmf_patches():100] [1655478] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128010_148530file loaded\n", + " 63038 [map_reduce.py: cnmf_patches():100] [1655532] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174180_194700file loaded\n", + " 63036 [map_reduce.py: cnmf_patches():100] [1655512] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128070_148590file loaded\n", + " 63050 [map_reduce.py: cnmf_patches():100] [1655522] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20580_41100file loaded\n", + " 63037 [map_reduce.py: cnmf_patches():100] [1655527] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97380_117900file loaded\n", + " 62950 [map_reduce.py: cnmf_patches():100] [1655548] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158850_179370file loaded\n", + " 63202 [map_reduce.py: cnmf_patches():100] [1655481] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174090_194610file loaded\n", + " 63209 [map_reduce.py: cnmf_patches():100] [1655517] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204870_225390file loaded\n", + " 63209 [map_reduce.py: cnmf_patches():100] [1655544] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97410_117930file loaded\n", + " 63208 [map_reduce.py: cnmf_patches():100] [1655561] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97440_117960file loaded\n", + " 63204 [map_reduce.py: cnmf_patches():100] [1655497] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158760_179280file loaded\n", + " 63214 [map_reduce.py: cnmf_patches():100] [1655491] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66600_87120file loaded\n", + " 63220 [map_reduce.py: cnmf_patches():100] [1655528] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112740_133260file loaded\n", + " 63207 [map_reduce.py: cnmf_patches():100] [1655564] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143520_164040file loaded\n", + " 63206 [map_reduce.py: cnmf_patches():100] [1655482] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189450_209970file loaded\n", + " 63205 [map_reduce.py: cnmf_patches():100] [1655493] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97320_117840file loaded\n", + " 63110 [map_reduce.py: cnmf_patches():100] [1655492] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 81960_102480file loaded\n", + " 63119 [map_reduce.py: cnmf_patches():100] [1655483] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204810_225330file loaded\n", + " 63231 [map_reduce.py: cnmf_patches():100] [1655487] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5160_25680file loaded\n", + " 63105 [map_reduce.py: cnmf_patches():100] [1655480] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158730_179250file loaded\n", + " 63219 [map_reduce.py: cnmf_patches():100] [1655502] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235560_256080file loaded\n", + " 63317 [map_reduce.py: cnmf_patches():100] [1655472] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35850_56370file loaded\n", + " 63355 [map_reduce.py: cnmf_patches():100] [1655479] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143370_163890file loaded\n", + " 63345 [map_reduce.py: cnmf_patches():100] [1655486] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236554_256562file loaded\n", + " 63350 [map_reduce.py: cnmf_patches():100] [1655477] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112650_133170file loaded\n", + " 63332 [map_reduce.py: cnmf_patches():100] [1655494] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112680_133200file loaded\n", + " 63362 [map_reduce.py: cnmf_patches():100] [1655499] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189480_210000file loaded\n", + " 63364 [map_reduce.py: cnmf_patches():100] [1655476] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97290_117810file loaded\n", + " 63327 [map_reduce.py: cnmf_patches():100] [1655475] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 81930_102450file loaded\n", + " 63323 [map_reduce.py: cnmf_patches():100] [1655489] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 35880_56400file loaded\n", + " 63341 [map_reduce.py: cnmf_patches():100] [1655559] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66720_87240file loaded\n", + " 63365 [map_reduce.py: cnmf_patches():100] [1655473] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51210_71730file loaded\n", + " 63336 [map_reduce.py: cnmf_patches():100] [1655501] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220200_240720file loaded\n", + " 63312 [map_reduce.py: cnmf_patches():100] [1655484] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220170_240690file loaded\n", + " 63308 [map_reduce.py: cnmf_patches():100] [1655495] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128040_148560file loaded\n", + " 63366 [map_reduce.py: cnmf_patches():80] [1655563] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128160_148680Read file\n", + " 63381 [map_reduce.py: cnmf_patches():100] [1655474] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66570_87090file loaded\n", + " 63403 [map_reduce.py: cnmf_patches():100] [1655562] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112800_133320file loaded\n", + " 63406 [map_reduce.py: cnmf_patches():100] [1655504] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5190_25710file loaded\n", + " 63399 [map_reduce.py: cnmf_patches():100] [1655498] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174120_194640file loaded\n", + " 63429 [map_reduce.py: cnmf_patches():100] [1655521] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5220_25740file loaded\n", + " 63433 [map_reduce.py: cnmf_patches():100] [1655470] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20490_41010file loaded\n", + " 63418 [map_reduce.py: cnmf_patches():100] [1655539] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20610_41130file loaded\n", + " 63423 [map_reduce.py: cnmf_patches():100] [1655490] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51240_71760file loaded\n", + " 63437 [map_reduce.py: cnmf_patches():100] [1655505] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20550_41070file loaded\n", + " 63451 [map_reduce.py: cnmf_patches():100] [1655469] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5130_25650file loaded\n", + " 63453 [map_reduce.py: cnmf_patches():100] [1655556] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20640_41160file loaded\n", + " 63458 [map_reduce.py: cnmf_patches():100] [1655488] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20520_41040file loaded\n", + " 66055 [map_reduce.py: cnmf_patches():100] [1655563] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128160_148680file loaded\n", + " 67830 [params.py: set():1006] [1655515] Changing key rf in group patch from 20 to None\n", + " 68162 [params.py: set():1006] [1655515] Changing key stride in group patch from 10 to None\n", + " 68202 [params.py: set():1006] [1655531] Changing key rf in group patch from 20 to None\n", + " 68176 [params.py: set():1006] [1655535] Changing key rf in group patch from 20 to None\n", + " 68206 [params.py: set():1006] [1655549] Changing key rf in group patch from 20 to None\n", + " 68337 [params.py: set():1006] [1655553] Changing key rf in group patch from 20 to None\n", + " 68509 [params.py: set():1006] [1655515] Changing key nb in group init from 2 to 1\n", + " 68527 [params.py: set():1006] [1655531] Changing key stride in group patch from 10 to None\n", + " 68517 [params.py: set():1006] [1655552] Changing key rf in group patch from 20 to None\n", + " 68539 [params.py: set():1006] [1655535] Changing key stride in group patch from 10 to None\n", + " 68597 [params.py: set():1006] [1655549] Changing key stride in group patch from 10 to None\n", + " 68601 [params.py: set():1006] [1655530] Changing key rf in group patch from 20 to None\n", + " 68602 [params.py: set():1006] [1655550] Changing key rf in group patch from 20 to None\n", + " 68683 [params.py: set():1006] [1655553] Changing key stride in group patch from 10 to None\n", + " 68693 [params.py: set():1006] [1655546] Changing key rf in group patch from 20 to None\n", + " 68843 [params.py: set():1006] [1655515] Changing key nb in group temporal from 2 to 1\n", + " 68807 [params.py: set():1006] [1655551] Changing key rf in group patch from 20 to None\n", + " 68880 [params.py: set():1006] [1655531] Changing key nb in group init from 2 to 1\n", + " 68888 [params.py: set():1006] [1655535] Changing key nb in group init from 2 to 1\n", + " 68888 [params.py: set():1006] [1655552] Changing key stride in group patch from 10 to None\n", + " 68916 [params.py: set():1006] [1655549] Changing key nb in group init from 2 to 1\n", + " 68925 [params.py: set():1006] [1655550] Changing key stride in group patch from 10 to None\n", + " 68926 [params.py: set():1006] [1655530] Changing key stride in group patch from 10 to None\n", + " 68947 [params.py: set():1006] [1655546] Changing key stride in group patch from 10 to None\n", + " 68948 [params.py: set():1006] [1655553] Changing key nb in group init from 2 to 1\n", + " 68714 [params.py: set():1006] [1655536] Changing key rf in group patch from 20 to None\n", + " 68956 [params.py: set():1006] [1655470] Changing key rf in group patch from 20 to None\n", + " 68981 [params.py: set():1006] [1655473] Changing key rf in group patch from 20 to None\n", + " 68983 [params.py: set():1006] [1655537] Changing key rf in group patch from 20 to None\n", + " 68988 [params.py: set():1006] [1655494] Changing key rf in group patch from 20 to None\n", + " 68989 [params.py: set():1006] [1655490] Changing key rf in group patch from 20 to None\n", + " 68997 [params.py: set():1006] [1655543] Changing key rf in group patch from 20 to None\n", + " 69000 [params.py: set():1006] [1655525] Changing key rf in group patch from 20 to None\n", + " 69017 [params.py: set():1006] [1655522] Changing key rf in group patch from 20 to None\n", + " 69028 [params.py: set():1006] [1655519] Changing key rf in group patch from 20 to None\n", + " 69053 [params.py: set():1006] [1655557] Changing key rf in group patch from 20 to None\n", + " 69063 [params.py: set():1006] [1655540] Changing key rf in group patch from 20 to None\n", + " 69084 [params.py: set():1006] [1655500] Changing key rf in group patch from 20 to None\n", + " 69085 [params.py: set():1006] [1655515] Changing key nb in group spatial from 2 to 1\n", + " 69104 [params.py: set():1006] [1655529] Changing key rf in group patch from 20 to None\n", + " 69175 [params.py: set():1006] [1655551] Changing key stride in group patch from 10 to None\n", + " 69178 [params.py: set():1006] [1655534] Changing key rf in group patch from 20 to None\n", + " 69179 [params.py: set():1006] [1655531] Changing key nb in group temporal from 2 to 1\n", + " 68953 [params.py: set():1006] [1655489] Changing key rf in group patch from 20 to None\n", + " 69089 [params.py: set():1006] [1655480] Changing key rf in group patch from 20 to None\n", + " 69191 [params.py: set():1006] [1655535] Changing key nb in group temporal from 2 to 1\n", + " 69146 [params.py: set():1006] [1655482] Changing key rf in group patch from 20 to None\n", + " 69192 [params.py: set():1006] [1655552] Changing key nb in group init from 2 to 1\n", + " 69005 [params.py: set():1006] [1655526] Changing key rf in group patch from 20 to None\n", + " 69186 [params.py: set():1006] [1655533] Changing key rf in group patch from 20 to None\n", + " 69213 [params.py: set():1006] [1655512] Changing key rf in group patch from 20 to None\n", + " 69214 [params.py: set():1006] [1655511] Changing key rf in group patch from 20 to None\n", + " 69224 [params.py: set():1006] [1655508] Changing key rf in group patch from 20 to None\n", + " 69225 [params.py: set():1006] [1655549] Changing key nb in group temporal from 2 to 1\n", + " 69228 [params.py: set():1006] [1655507] Changing key rf in group patch from 20 to None\n", + " 69228 [params.py: set():1006] [1655530] Changing key nb in group init from 2 to 1\n", + " 69229 [params.py: set():1006] [1655550] Changing key nb in group init from 2 to 1\n", + " 69190 [params.py: set():1006] [1655497] Changing key rf in group patch from 20 to None\n", + " 68995 [params.py: set():1006] [1655558] Changing key rf in group patch from 20 to None\n", + " 69202 [params.py: set():1006] [1655524] Changing key rf in group patch from 20 to None\n", + " 69232 [params.py: set():1006] [1655513] Changing key rf in group patch from 20 to None\n", + " 69239 [params.py: set():1006] [1655546] Changing key nb in group init from 2 to 1\n", + " 69244 [params.py: set():1006] [1655560] Changing key rf in group patch from 20 to None\n", + " 69245 [params.py: set():1006] [1655553] Changing key nb in group temporal from 2 to 1\n", + " 69094 [params.py: set():1006] [1655509] Changing key rf in group patch from 20 to None\n", + " 69252 [params.py: set():1006] [1655470] Changing key stride in group patch from 10 to None\n", + " 69252 [params.py: set():1006] [1655536] Changing key stride in group patch from 10 to None\n", + " 69254 [params.py: set():1006] [1655520] Changing key rf in group patch from 20 to None\n", + " 69259 [params.py: set():1006] [1655547] Changing key rf in group patch from 20 to None\n", + " 69259 [params.py: set():1006] [1655537] Changing key stride in group patch from 10 to None\n", + " 69260 [params.py: set():1006] [1655494] Changing key stride in group patch from 10 to None\n", + " 69257 [params.py: set():1006] [1655517] Changing key rf in group patch from 20 to None\n", + " 69261 [params.py: set():1006] [1655490] Changing key stride in group patch from 10 to None\n", + " 69261 [params.py: set():1006] [1655473] Changing key stride in group patch from 10 to None\n", + " 69265 [params.py: set():1006] [1655543] Changing key stride in group patch from 10 to None\n", + " 69271 [params.py: set():1006] [1655525] Changing key stride in group patch from 10 to None\n", + " 69264 [params.py: set():1006] [1655523] Changing key rf in group patch from 20 to None\n", + " 69272 [params.py: set():1006] [1655522] Changing key stride in group patch from 10 to None\n", + " 69274 [params.py: set():1006] [1655518] Changing key rf in group patch from 20 to None\n", + " 69274 [params.py: set():1006] [1655519] Changing key stride in group patch from 10 to None\n", + " 69275 [params.py: set():1006] [1655557] Changing key stride in group patch from 10 to None\n", + " 69279 [params.py: set():1006] [1655540] Changing key stride in group patch from 10 to None\n", + " 69281 [params.py: set():1006] [1655500] Changing key stride in group patch from 10 to None\n", + " 69281 [params.py: set():1006] [1655515] Changing key p in group preprocess from 1 to 0\n", + " 69282 [params.py: set():1006] [1655486] Changing key rf in group patch from 20 to None\n", + " 69283 [params.py: set():1006] [1655514] Changing key rf in group patch from 20 to None\n", + " 69284 [params.py: set():1006] [1655529] Changing key stride in group patch from 10 to None\n", + " 69285 [params.py: set():1006] [1655541] Changing key rf in group patch from 20 to None\n", + " 69302 [params.py: set():1006] [1655554] Changing key rf in group patch from 20 to None\n", + " 69303 [params.py: set():1006] [1655488] Changing key rf in group patch from 20 to None\n", + " 69305 [params.py: set():1006] [1655506] Changing key rf in group patch from 20 to None\n", + " 69306 [params.py: set():1006] [1655531] Changing key nb in group spatial from 2 to 1\n", + " 69306 [params.py: set():1006] [1655551] Changing key nb in group init from 2 to 1\n", + " 69306 [params.py: set():1006] [1655534] Changing key stride in group patch from 10 to None\n", + " 69308 [params.py: set():1006] [1655489] Changing key stride in group patch from 10 to None\n", + " 69308 [params.py: set():1006] [1655535] Changing key nb in group spatial from 2 to 1\n", + " 69311 [params.py: set():1006] [1655479] Changing key rf in group patch from 20 to None\n", + " 69312 [params.py: set():1006] [1655527] Changing key rf in group patch from 20 to None\n", + " 69312 [params.py: set():1006] [1655480] Changing key stride in group patch from 10 to None\n", + " 69315 [params.py: set():1006] [1655492] Changing key rf in group patch from 20 to None\n", + " 69325 [params.py: set():1006] [1655499] Changing key rf in group patch from 20 to None\n", + " 69326 [params.py: set():1006] [1655552] Changing key nb in group temporal from 2 to 1\n", + " 69332 [params.py: set():1006] [1655521] Changing key rf in group patch from 20 to None\n", + " 69339 [params.py: set():1006] [1655482] Changing key stride in group patch from 10 to None\n", + " 69341 [params.py: set():1006] [1655562] Changing key rf in group patch from 20 to None\n", + " 69198 [params.py: set():1006] [1655532] Changing key rf in group patch from 20 to None\n", + " 69343 [params.py: set():1006] [1655481] Changing key rf in group patch from 20 to None\n", + " 69343 [params.py: set():1006] [1655526] Changing key stride in group patch from 10 to None\n", + " 69348 [params.py: set():1006] [1655564] Changing key rf in group patch from 20 to None\n", + " 69351 [params.py: set():1006] [1655487] Changing key rf in group patch from 20 to None\n", + " 69356 [params.py: set():1006] [1655533] Changing key stride in group patch from 10 to None\n", + " 69361 [params.py: set():1006] [1655511] Changing key stride in group patch from 10 to None\n", + " 69364 [params.py: set():1006] [1655483] Changing key rf in group patch from 20 to None\n", + " 69364 [params.py: set():1006] [1655512] Changing key stride in group patch from 10 to None\n", + " 69347 [params.py: set():1006] [1655485] Changing key rf in group patch from 20 to None\n", + " 69375 [params.py: set():1006] [1655549] Changing key nb in group spatial from 2 to 1\n", + " 69376 [params.py: set():1006] [1655508] Changing key stride in group patch from 10 to None\n", + " 69383 [params.py: set():1006] [1655530] Changing key nb in group temporal from 2 to 1\n", + " 69329 [params.py: set():1006] [1655516] Changing key rf in group patch from 20 to None\n", + " 69387 [params.py: set():1006] [1655507] Changing key stride in group patch from 10 to None\n", + " 69388 [params.py: set():1006] [1655550] Changing key nb in group temporal from 2 to 1\n", + " 69398 [params.py: set():1006] [1655469] Changing key rf in group patch from 20 to None\n", + " 69399 [params.py: set():1006] [1655497] Changing key stride in group patch from 10 to None\n", + " 69400 [params.py: set():1006] [1655498] Changing key rf in group patch from 20 to None\n", + " 69400 [params.py: set():1006] [1655513] Changing key stride in group patch from 10 to None\n", + " 69401 [params.py: set():1006] [1655558] Changing key stride in group patch from 10 to None\n", + " 69401 [params.py: set():1006] [1655524] Changing key stride in group patch from 10 to None\n", + " 69238 [params.py: set():1006] [1655495] Changing key rf in group patch from 20 to None\n", + " 69402 [params.py: set():1006] [1655546] Changing key nb in group temporal from 2 to 1\n", + " 69403 [params.py: set():1006] [1655560] Changing key stride in group patch from 10 to None\n", + " 69403 [params.py: set():1006] [1655553] Changing key nb in group spatial from 2 to 1\n", + " 68923 [params.py: set():1006] [1655476] Changing key rf in group patch from 20 to None\n", + " 69404 [params.py: set():1006] [1655509] Changing key stride in group patch from 10 to None\n", + " 69405 [params.py: set():1006] [1655470] Changing key nb in group init from 2 to 1\n", + " 69405 [params.py: set():1006] [1655536] Changing key nb in group init from 2 to 1\n", + " 69059 [params.py: set():1006] [1655542] Changing key rf in group patch from 20 to None\n", + " 69360 [params.py: set():1006] [1655555] Changing key rf in group patch from 20 to None\n", + " 69415 [params.py: set():1006] [1655561] Changing key rf in group patch from 20 to None\n", + " 69415 [params.py: set():1006] [1655504] Changing key rf in group patch from 20 to None\n", + " 69290 [params.py: set():1006] [1655474] Changing key rf in group patch from 20 to None\n", + " 69417 [params.py: set():1006] [1655502] Changing key rf in group patch from 20 to None\n", + " 69417 [params.py: set():1006] [1655520] Changing key stride in group patch from 10 to None\n", + " 69011 [params.py: set():1006] [1655544] Changing key rf in group patch from 20 to None\n", + " 69419 [params.py: set():1006] [1655537] Changing key nb in group init from 2 to 1\n", + " 69420 [params.py: set():1006] [1655494] Changing key nb in group init from 2 to 1\n", + " 69420 [params.py: set():1006] [1655547] Changing key stride in group patch from 10 to None\n", + " 69421 [params.py: set():1006] [1655490] Changing key nb in group init from 2 to 1\n", + " 69421 [params.py: set():1006] [1655473] Changing key nb in group init from 2 to 1\n", + " 69422 [params.py: set():1006] [1655517] Changing key stride in group patch from 10 to None\n", + " 69422 [params.py: set():1006] [1655543] Changing key nb in group init from 2 to 1\n", + " 69423 [params.py: set():1006] [1655525] Changing key nb in group init from 2 to 1\n", + " 69424 [params.py: set():1006] [1655522] Changing key nb in group init from 2 to 1\n", + " 69431 [params.py: set():1006] [1655519] Changing key nb in group init from 2 to 1\n", + " 69432 [params.py: set():1006] [1655518] Changing key stride in group patch from 10 to None\n", + " 69435 [params.py: set():1006] [1655472] Changing key rf in group patch from 20 to None\n", + " 69431 [params.py: set():1006] [1655523] Changing key stride in group patch from 10 to None\n", + " 69439 [params.py: set():1006] [1655557] Changing key nb in group init from 2 to 1\n", + " 69443 [params.py: set():1006] [1655559] Changing key rf in group patch from 20 to None\n", + " 69443 [params.py: set():1006] [1655540] Changing key nb in group init from 2 to 1\n", + " 69444 [params.py: set():1006] [1655500] Changing key nb in group init from 2 to 1\n", + " 69445 [params.py: set():1006] [1655515] Changing key p in group temporal from 1 to 0\n", + " 69446 [params.py: set():1006] [1655486] Changing key stride in group patch from 10 to None\n", + " 69446 [params.py: set():1006] [1655514] Changing key stride in group patch from 10 to None\n", + " 69447 [params.py: set():1006] [1655529] Changing key nb in group init from 2 to 1\n", + " 69438 [params.py: set():1006] [1655545] Changing key rf in group patch from 20 to None\n", + " 69447 [params.py: set():1006] [1655541] Changing key stride in group patch from 10 to None\n", + " 69449 [params.py: set():1006] [1655484] Changing key rf in group patch from 20 to None\n", + " 69451 [params.py: set():1006] [1655554] Changing key stride in group patch from 10 to None\n", + " 69111 [params.py: set():1006] [1655538] Changing key rf in group patch from 20 to None\n", + " 69451 [params.py: set():1006] [1655488] Changing key stride in group patch from 10 to None\n", + " 69452 [params.py: set():1006] [1655506] Changing key stride in group patch from 10 to None\n", + " 69453 [params.py: set():1006] [1655531] Changing key p in group preprocess from 1 to 0\n", + " 69453 [params.py: set():1006] [1655551] Changing key nb in group temporal from 2 to 1\n", + " 69370 [params.py: set():1006] [1655477] Changing key rf in group patch from 20 to None\n", + " 69453 [params.py: set():1006] [1655534] Changing key nb in group init from 2 to 1\n", + " 69457 [params.py: set():1006] [1655480] Changing key nb in group init from 2 to 1\n", + " 69456 [params.py: set():1006] [1655527] Changing key stride in group patch from 10 to None\n", + " 69455 [params.py: set():1006] [1655489] Changing key nb in group init from 2 to 1\n", + " 69455 [params.py: set():1006] [1655535] Changing key p in group preprocess from 1 to 0\n", + " 69456 [params.py: set():1006] [1655479] Changing key stride in group patch from 10 to None\n", + " 69458 [params.py: set():1006] [1655492] Changing key stride in group patch from 10 to None\n", + " 69467 [params.py: set():1006] [1655533] Changing key nb in group init from 2 to 1\n", + " 69458 [params.py: set():1006] [1655499] Changing key stride in group patch from 10 to None\n", + " 69461 [params.py: set():1006] [1655496] Changing key rf in group patch from 20 to None\n", + " 69461 [params.py: set():1006] [1655552] Changing key nb in group spatial from 2 to 1\n", + " 69462 [params.py: set():1006] [1655521] Changing key stride in group patch from 10 to None\n", + " 69462 [params.py: set():1006] [1655482] Changing key nb in group init from 2 to 1\n", + " 69463 [params.py: set():1006] [1655562] Changing key stride in group patch from 10 to None\n", + " 69464 [params.py: set():1006] [1655481] Changing key stride in group patch from 10 to None\n", + " 69465 [params.py: set():1006] [1655526] Changing key nb in group init from 2 to 1\n", + " 69466 [params.py: set():1006] [1655564] Changing key stride in group patch from 10 to None\n", + " 69466 [params.py: set():1006] [1655532] Changing key stride in group patch from 10 to None\n", + " 69466 [params.py: set():1006] [1655487] Changing key stride in group patch from 10 to None\n", + " 69468 [params.py: set():1006] [1655511] Changing key nb in group init from 2 to 1\n", + " 69469 [params.py: set():1006] [1655483] Changing key stride in group patch from 10 to None\n", + " 69469 [params.py: set():1006] [1655512] Changing key nb in group init from 2 to 1\n", + " 69471 [params.py: set():1006] [1655549] Changing key p in group preprocess from 1 to 0\n", + " 69471 [params.py: set():1006] [1655508] Changing key nb in group init from 2 to 1\n", + " 69471 [params.py: set():1006] [1655485] Changing key stride in group patch from 10 to None\n", + " 69472 [params.py: set():1006] [1655530] Changing key nb in group spatial from 2 to 1\n", + " 69473 [params.py: set():1006] [1655507] Changing key nb in group init from 2 to 1\n", + " 69474 [params.py: set():1006] [1655505] Changing key rf in group patch from 20 to None\n", + " 69474 [params.py: set():1006] [1655550] Changing key nb in group spatial from 2 to 1\n", + " 69475 [params.py: set():1006] [1655516] Changing key stride in group patch from 10 to None\n", + " 69476 [params.py: set():1006] [1655469] Changing key stride in group patch from 10 to None\n", + " 69476 [params.py: set():1006] [1655497] Changing key nb in group init from 2 to 1\n", + " 69477 [params.py: set():1006] [1655498] Changing key stride in group patch from 10 to None\n", + " 69479 [params.py: set():1006] [1655510] Changing key rf in group patch from 20 to None\n", + " 69479 [params.py: set():1006] [1655558] Changing key nb in group init from 2 to 1\n", + " 69480 [params.py: set():1006] [1655513] Changing key nb in group init from 2 to 1\n", + " 69480 [params.py: set():1006] [1655524] Changing key nb in group init from 2 to 1\n", + " 69481 [params.py: set():1006] [1655546] Changing key nb in group spatial from 2 to 1\n", + " 69482 [params.py: set():1006] [1655560] Changing key nb in group init from 2 to 1\n", + " 69487 [params.py: set():1006] [1655495] Changing key stride in group patch from 10 to None\n", + " 69488 [params.py: set():1006] [1655553] Changing key p in group preprocess from 1 to 0\n", + " 69491 [params.py: set():1006] [1655478] Changing key rf in group patch from 20 to None\n", + " 69491 [params.py: set():1006] [1655476] Changing key stride in group patch from 10 to None\n", + " 69492 [params.py: set():1006] [1655509] Changing key nb in group init from 2 to 1\n", + " 69493 [params.py: set():1006] [1655470] Changing key nb in group temporal from 2 to 1\n", + " 69493 [params.py: set():1006] [1655536] Changing key nb in group temporal from 2 to 1\n", + " 69496 [params.py: set():1006] [1655539] Changing key rf in group patch from 20 to None\n", + " 69497 [params.py: set():1006] [1655542] Changing key stride in group patch from 10 to None\n", + " 69497 [params.py: set():1006] [1655504] Changing key stride in group patch from 10 to None\n", + " 69498 [params.py: set():1006] [1655561] Changing key stride in group patch from 10 to None\n", + " 69499 [params.py: set():1006] [1655493] Changing key rf in group patch from 20 to None\n", + " 69500 [params.py: set():1006] [1655555] Changing key stride in group patch from 10 to None\n", + " 69430 [params.py: set():1006] [1655548] Changing key rf in group patch from 20 to None\n", + " 69501 [params.py: set():1006] [1655502] Changing key stride in group patch from 10 to None\n", + " 69501 [params.py: set():1006] [1655520] Changing key nb in group init from 2 to 1\n", + " 69502 [params.py: set():1006] [1655503] Changing key rf in group patch from 20 to None\n", + " 69503 [params.py: set():1006] [1655474] Changing key stride in group patch from 10 to None\n", + " 69504 [params.py: set():1006] [1655544] Changing key stride in group patch from 10 to None\n", + " 69505 [params.py: set():1006] [1655537] Changing key nb in group temporal from 2 to 1\n", + " 69505 [params.py: set():1006] [1655547] Changing key nb in group init from 2 to 1\n", + " 69506 [params.py: set():1006] [1655494] Changing key nb in group temporal from 2 to 1\n", + " 69506 [params.py: set():1006] [1655490] Changing key nb in group temporal from 2 to 1\n", + " 69507 [params.py: set():1006] [1655491] Changing key rf in group patch from 20 to None\n", + " 69507 [params.py: set():1006] [1655473] Changing key nb in group temporal from 2 to 1\n", + " 69508 [params.py: set():1006] [1655517] Changing key nb in group init from 2 to 1\n", + " 69509 [params.py: set():1006] [1655543] Changing key nb in group temporal from 2 to 1\n", + " 69509 [params.py: set():1006] [1655525] Changing key nb in group temporal from 2 to 1\n", + " 69510 [params.py: set():1006] [1655522] Changing key nb in group temporal from 2 to 1\n", + " 69510 [params.py: set():1006] [1655519] Changing key nb in group temporal from 2 to 1\n", + " 69511 [params.py: set():1006] [1655518] Changing key nb in group init from 2 to 1\n", + " 69512 [params.py: set():1006] [1655475] Changing key rf in group patch from 20 to None\n", + " 69412 [params.py: set():1006] [1655501] Changing key rf in group patch from 20 to None\n", + " 69512 [params.py: set():1006] [1655472] Changing key stride in group patch from 10 to None\n", + " 69513 [params.py: set():1006] [1655523] Changing key nb in group init from 2 to 1\n", + " 69514 [params.py: set():1006] [1655557] Changing key nb in group temporal from 2 to 1\n", + " 69514 [params.py: set():1006] [1655559] Changing key stride in group patch from 10 to None\n", + " 69515 [params.py: set():1006] [1655540] Changing key nb in group temporal from 2 to 1\n", + " 69516 [cnmf.py: fit():436] [1655515] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69516 [params.py: set():1006] [1655500] Changing key nb in group temporal from 2 to 1\n", + " 69517 [params.py: set():1006] [1655486] Changing key nb in group init from 2 to 1\n", + " 69518 [params.py: set():1006] [1655514] Changing key nb in group init from 2 to 1\n", + " 69518 [params.py: set():1006] [1655529] Changing key nb in group temporal from 2 to 1\n", + " 69519 [params.py: set():1006] [1655541] Changing key nb in group init from 2 to 1\n", + " 69520 [params.py: set():1006] [1655484] Changing key stride in group patch from 10 to None\n", + " 69519 [params.py: set():1006] [1655545] Changing key stride in group patch from 10 to None\n", + " 69522 [params.py: set():1006] [1655554] Changing key nb in group init from 2 to 1\n", + " 69522 [params.py: set():1006] [1655538] Changing key stride in group patch from 10 to None\n", + " 69523 [params.py: set():1006] [1655506] Changing key nb in group init from 2 to 1\n", + " 69523 [params.py: set():1006] [1655488] Changing key nb in group init from 2 to 1\n", + " 69524 [params.py: set():1006] [1655531] Changing key p in group temporal from 1 to 0\n", + " 69524 [params.py: set():1006] [1655551] Changing key nb in group spatial from 2 to 1\n", + " 69525 [params.py: set():1006] [1655534] Changing key nb in group temporal from 2 to 1\n", + " 69525 [params.py: set():1006] [1655477] Changing key stride in group patch from 10 to None\n", + " 69526 [params.py: set():1006] [1655489] Changing key nb in group temporal from 2 to 1\n", + " 69526 [params.py: set():1006] [1655535] Changing key p in group temporal from 1 to 0\n", + " 69526 [params.py: set():1006] [1655479] Changing key nb in group init from 2 to 1\n", + " 69528 [params.py: set():1006] [1655527] Changing key nb in group init from 2 to 1\n", + " 69528 [params.py: set():1006] [1655480] Changing key nb in group temporal from 2 to 1\n", + " 69529 [params.py: set():1006] [1655492] Changing key nb in group init from 2 to 1\n", + " 69529 [params.py: set():1006] [1655499] Changing key nb in group init from 2 to 1\n", + " 69530 [params.py: set():1006] [1655552] Changing key p in group preprocess from 1 to 0\n", + " 69530 [params.py: set():1006] [1655496] Changing key stride in group patch from 10 to None\n", + " 69531 [params.py: set():1006] [1655521] Changing key nb in group init from 2 to 1\n", + " 69531 [params.py: set():1006] [1655482] Changing key nb in group temporal from 2 to 1\n", + " 69531 [params.py: set():1006] [1655562] Changing key nb in group init from 2 to 1\n", + " 69532 [params.py: set():1006] [1655481] Changing key nb in group init from 2 to 1\n", + " 69533 [params.py: set():1006] [1655526] Changing key nb in group temporal from 2 to 1\n", + " 69533 [params.py: set():1006] [1655532] Changing key nb in group init from 2 to 1\n", + " 69534 [params.py: set():1006] [1655487] Changing key nb in group init from 2 to 1\n", + " 69534 [params.py: set():1006] [1655564] Changing key nb in group init from 2 to 1\n", + " 69535 [params.py: set():1006] [1655533] Changing key nb in group temporal from 2 to 1\n", + " 69535 [params.py: set():1006] [1655483] Changing key nb in group init from 2 to 1\n", + " 69536 [params.py: set():1006] [1655511] Changing key nb in group temporal from 2 to 1\n", + " 69536 [params.py: set():1006] [1655512] Changing key nb in group temporal from 2 to 1\n", + " 69537 [params.py: set():1006] [1655549] Changing key p in group temporal from 1 to 0\n", + " 69538 [params.py: set():1006] [1655508] Changing key nb in group temporal from 2 to 1\n", + " 69538 [params.py: set():1006] [1655485] Changing key nb in group init from 2 to 1\n", + " 69538 [params.py: set():1006] [1655530] Changing key p in group preprocess from 1 to 0\n", + " 69539 [params.py: set():1006] [1655505] Changing key stride in group patch from 10 to None\n", + " 69539 [params.py: set():1006] [1655507] Changing key nb in group temporal from 2 to 1\n", + " 69540 [params.py: set():1006] [1655550] Changing key p in group preprocess from 1 to 0\n", + " 69540 [params.py: set():1006] [1655516] Changing key nb in group init from 2 to 1\n", + " 69541 [params.py: set():1006] [1655469] Changing key nb in group init from 2 to 1\n", + " 69542 [params.py: set():1006] [1655497] Changing key nb in group temporal from 2 to 1\n", + " 69542 [params.py: set():1006] [1655498] Changing key nb in group init from 2 to 1\n", + " 69543 [params.py: set():1006] [1655510] Changing key stride in group patch from 10 to None\n", + " 69543 [params.py: set():1006] [1655513] Changing key nb in group temporal from 2 to 1\n", + " 69544 [params.py: set():1006] [1655558] Changing key nb in group temporal from 2 to 1\n", + " 69547 [params.py: set():1006] [1655556] Changing key rf in group patch from 20 to None\n", + " 69548 [params.py: set():1006] [1655524] Changing key nb in group temporal from 2 to 1\n", + " 69548 [params.py: set():1006] [1655546] Changing key p in group preprocess from 1 to 0\n", + " 69549 [params.py: set():1006] [1655560] Changing key nb in group temporal from 2 to 1\n", + " 69549 [params.py: set():1006] [1655495] Changing key nb in group init from 2 to 1\n", + " 69550 [params.py: set():1006] [1655553] Changing key p in group temporal from 1 to 0\n", + " 69551 [params.py: set():1006] [1655478] Changing key stride in group patch from 10 to None\n", + " 69551 [params.py: set():1006] [1655476] Changing key nb in group init from 2 to 1\n", + " 69552 [params.py: set():1006] [1655509] Changing key nb in group temporal from 2 to 1\n", + " 69552 [params.py: set():1006] [1655470] Changing key nb in group spatial from 2 to 1\n", + " 69553 [params.py: set():1006] [1655528] Changing key rf in group patch from 20 to None\n", + " 69554 [params.py: set():1006] [1655536] Changing key nb in group spatial from 2 to 1\n", + " 69554 [params.py: set():1006] [1655542] Changing key nb in group init from 2 to 1\n", + " 69555 [params.py: set():1006] [1655539] Changing key stride in group patch from 10 to None\n", + " 69555 [params.py: set():1006] [1655561] Changing key nb in group init from 2 to 1\n", + " 69556 [params.py: set():1006] [1655504] Changing key nb in group init from 2 to 1\n", + " 69556 [params.py: set():1006] [1655493] Changing key stride in group patch from 10 to None\n", + " 69557 [params.py: set():1006] [1655555] Changing key nb in group init from 2 to 1\n", + " 69557 [params.py: set():1006] [1655502] Changing key nb in group init from 2 to 1\n", + " 69558 [params.py: set():1006] [1655520] Changing key nb in group temporal from 2 to 1\n", + " 69559 [params.py: set():1006] [1655503] Changing key stride in group patch from 10 to None\n", + " 69559 [params.py: set():1006] [1655474] Changing key nb in group init from 2 to 1\n", + " 69560 [params.py: set():1006] [1655544] Changing key nb in group init from 2 to 1\n", + " 69561 [params.py: set():1006] [1655547] Changing key nb in group temporal from 2 to 1\n", + " 69561 [params.py: set():1006] [1655494] Changing key nb in group spatial from 2 to 1\n", + " 69561 [params.py: set():1006] [1655537] Changing key nb in group spatial from 2 to 1\n", + " 69562 [params.py: set():1006] [1655490] Changing key nb in group spatial from 2 to 1\n", + " 69562 [params.py: set():1006] [1655491] Changing key stride in group patch from 10 to None\n", + " 69563 [params.py: set():1006] [1655473] Changing key nb in group spatial from 2 to 1\n", + " 69563 [params.py: set():1006] [1655517] Changing key nb in group temporal from 2 to 1\n", + " 69564 [params.py: set():1006] [1655543] Changing key nb in group spatial from 2 to 1\n", + " 69559 [params.py: set():1006] [1655548] Changing key stride in group patch from 10 to None\n", + " 69564 [params.py: set():1006] [1655525] Changing key nb in group spatial from 2 to 1\n", + " 69565 [params.py: set():1006] [1655522] Changing key nb in group spatial from 2 to 1\n", + " 69566 [params.py: set():1006] [1655519] Changing key nb in group spatial from 2 to 1\n", + " 69566 [params.py: set():1006] [1655518] Changing key nb in group temporal from 2 to 1\n", + " 69567 [params.py: set():1006] [1655475] Changing key stride in group patch from 10 to None\n", + " 69568 [params.py: set():1006] [1655472] Changing key nb in group init from 2 to 1\n", + " 69568 [params.py: set():1006] [1655501] Changing key stride in group patch from 10 to None\n", + " 69568 [params.py: set():1006] [1655523] Changing key nb in group temporal from 2 to 1\n", + " 69569 [params.py: set():1006] [1655557] Changing key nb in group spatial from 2 to 1\n", + " 69570 [params.py: set():1006] [1655559] Changing key nb in group init from 2 to 1\n", + " 69570 [params.py: set():1006] [1655540] Changing key nb in group spatial from 2 to 1\n", + " 69571 [cnmf.py: fit():449] [1655515] (8000, 41, 41)\n", + " 69571 [params.py: set():1006] [1655500] Changing key nb in group spatial from 2 to 1\n", + " 69572 [params.py: set():1006] [1655486] Changing key nb in group temporal from 2 to 1\n", + " 69572 [params.py: set():1006] [1655514] Changing key nb in group temporal from 2 to 1\n", + " 69573 [params.py: set():1006] [1655529] Changing key nb in group spatial from 2 to 1\n", + " 69574 [params.py: set():1006] [1655541] Changing key nb in group temporal from 2 to 1\n", + " 69574 [params.py: set():1006] [1655563] Changing key rf in group patch from 20 to None\n", + " 69575 [params.py: set():1006] [1655545] Changing key nb in group init from 2 to 1\n", + " 69575 [params.py: set():1006] [1655484] Changing key nb in group init from 2 to 1\n", + " 69577 [params.py: set():1006] [1655538] Changing key nb in group init from 2 to 1\n", + " 69577 [params.py: set():1006] [1655554] Changing key nb in group temporal from 2 to 1\n", + " 69577 [params.py: set():1006] [1655506] Changing key nb in group temporal from 2 to 1\n", + " 69578 [params.py: set():1006] [1655488] Changing key nb in group temporal from 2 to 1\n", + " 69578 [cnmf.py: fit():436] [1655531] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69579 [params.py: set():1006] [1655551] Changing key p in group preprocess from 1 to 0\n", + " 69579 [params.py: set():1006] [1655534] Changing key nb in group spatial from 2 to 1\n", + " 69580 [params.py: set():1006] [1655477] Changing key nb in group init from 2 to 1\n", + " 69581 [params.py: set():1006] [1655479] Changing key nb in group temporal from 2 to 1\n", + " 69581 [cnmf.py: fit():436] [1655535] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69582 [params.py: set():1006] [1655489] Changing key nb in group spatial from 2 to 1\n", + " 69583 [params.py: set():1006] [1655480] Changing key nb in group spatial from 2 to 1\n", + " 69582 [params.py: set():1006] [1655527] Changing key nb in group temporal from 2 to 1\n", + " 69583 [params.py: set():1006] [1655492] Changing key nb in group temporal from 2 to 1\n", + " 69584 [params.py: set():1006] [1655499] Changing key nb in group temporal from 2 to 1\n", + " 69584 [params.py: set():1006] [1655496] Changing key nb in group init from 2 to 1\n", + " 69584 [params.py: set():1006] [1655552] Changing key p in group temporal from 1 to 0\n", + " 69585 [params.py: set():1006] [1655521] Changing key nb in group temporal from 2 to 1\n", + " 69586 [params.py: set():1006] [1655482] Changing key nb in group spatial from 2 to 1\n", + " 69586 [params.py: set():1006] [1655562] Changing key nb in group temporal from 2 to 1\n", + " 69587 [params.py: set():1006] [1655481] Changing key nb in group temporal from 2 to 1\n", + " 69587 [params.py: set():1006] [1655526] Changing key nb in group spatial from 2 to 1\n", + " 69588 [params.py: set():1006] [1655487] Changing key nb in group temporal from 2 to 1\n", + " 69589 [params.py: set():1006] [1655564] Changing key nb in group temporal from 2 to 1\n", + " 69589 [params.py: set():1006] [1655532] Changing key nb in group temporal from 2 to 1\n", + " 69589 [params.py: set():1006] [1655533] Changing key nb in group spatial from 2 to 1\n", + " 69590 [params.py: set():1006] [1655511] Changing key nb in group spatial from 2 to 1\n", + " 69590 [params.py: set():1006] [1655483] Changing key nb in group temporal from 2 to 1\n", + " 69591 [params.py: set():1006] [1655512] Changing key nb in group spatial from 2 to 1\n", + " 69593 [cnmf.py: fit():436] [1655549] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69592 [params.py: set():1006] [1655508] Changing key nb in group spatial from 2 to 1\n", + " 69593 [params.py: set():1006] [1655485] Changing key nb in group temporal from 2 to 1\n", + " 69593 [params.py: set():1006] [1655530] Changing key p in group temporal from 1 to 0\n", + " 69594 [params.py: set():1006] [1655507] Changing key nb in group spatial from 2 to 1\n", + " 69594 [params.py: set():1006] [1655505] Changing key nb in group init from 2 to 1\n", + " 69595 [params.py: set():1006] [1655550] Changing key p in group temporal from 1 to 0\n", + " 69595 [params.py: set():1006] [1655516] Changing key nb in group temporal from 2 to 1\n", + " 69596 [params.py: set():1006] [1655469] Changing key nb in group temporal from 2 to 1\n", + " 69597 [params.py: set():1006] [1655497] Changing key nb in group spatial from 2 to 1\n", + " 69597 [params.py: set():1006] [1655498] Changing key nb in group temporal from 2 to 1\n", + " 69603 [params.py: set():1006] [1655510] Changing key nb in group init from 2 to 1\n", + " 69604 [params.py: set():1006] [1655558] Changing key nb in group spatial from 2 to 1\n", + " 69604 [params.py: set():1006] [1655513] Changing key nb in group spatial from 2 to 1\n", + " 69605 [params.py: set():1006] [1655556] Changing key stride in group patch from 10 to None\n", + " 69605 [params.py: set():1006] [1655524] Changing key nb in group spatial from 2 to 1\n", + " 69606 [params.py: set():1006] [1655546] Changing key p in group temporal from 1 to 0\n", + " 69606 [params.py: set():1006] [1655560] Changing key nb in group spatial from 2 to 1\n", + " 69607 [params.py: set():1006] [1655495] Changing key nb in group temporal from 2 to 1\n", + " 69608 [cnmf.py: fit():436] [1655553] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69609 [params.py: set():1006] [1655476] Changing key nb in group temporal from 2 to 1\n", + " 69608 [params.py: set():1006] [1655478] Changing key nb in group init from 2 to 1\n", + " 69609 [params.py: set():1006] [1655470] Changing key p in group preprocess from 1 to 0\n", + " 69610 [params.py: set():1006] [1655509] Changing key nb in group spatial from 2 to 1\n", + " 69611 [params.py: set():1006] [1655528] Changing key stride in group patch from 10 to None\n", + " 69611 [params.py: set():1006] [1655536] Changing key p in group preprocess from 1 to 0\n", + " 69612 [params.py: set():1006] [1655542] Changing key nb in group temporal from 2 to 1\n", + " 69612 [params.py: set():1006] [1655539] Changing key nb in group init from 2 to 1\n", + " 69613 [params.py: set():1006] [1655561] Changing key nb in group temporal from 2 to 1\n", + " 69613 [params.py: set():1006] [1655504] Changing key nb in group temporal from 2 to 1\n", + " 69614 [params.py: set():1006] [1655555] Changing key nb in group temporal from 2 to 1\n", + " 69613 [params.py: set():1006] [1655493] Changing key nb in group init from 2 to 1\n", + " 69615 [params.py: set():1006] [1655502] Changing key nb in group temporal from 2 to 1\n", + " 69615 [params.py: set():1006] [1655520] Changing key nb in group spatial from 2 to 1\n", + " 69616 [params.py: set():1006] [1655503] Changing key nb in group init from 2 to 1\n", + " 69616 [params.py: set():1006] [1655474] Changing key nb in group temporal from 2 to 1\n", + " 69617 [params.py: set():1006] [1655544] Changing key nb in group temporal from 2 to 1\n", + " 69617 [params.py: set():1006] [1655494] Changing key p in group preprocess from 1 to 0\n", + " 69618 [params.py: set():1006] [1655547] Changing key nb in group spatial from 2 to 1\n", + " 69619 [params.py: set():1006] [1655491] Changing key nb in group init from 2 to 1\n", + " 69619 [params.py: set():1006] [1655473] Changing key p in group preprocess from 1 to 0\n", + " 69618 [params.py: set():1006] [1655537] Changing key p in group preprocess from 1 to 0\n", + " 69619 [params.py: set():1006] [1655490] Changing key p in group preprocess from 1 to 0\n", + " 69620 [params.py: set():1006] [1655517] Changing key nb in group spatial from 2 to 1\n", + " 69621 [params.py: set():1006] [1655543] Changing key p in group preprocess from 1 to 0\n", + " 69621 [params.py: set():1006] [1655548] Changing key nb in group init from 2 to 1\n", + " 69622 [params.py: set():1006] [1655525] Changing key p in group preprocess from 1 to 0\n", + " 69622 [params.py: set():1006] [1655522] Changing key p in group preprocess from 1 to 0\n", + " 69623 [params.py: set():1006] [1655519] Changing key p in group preprocess from 1 to 0\n", + " 69623 [params.py: set():1006] [1655518] Changing key nb in group spatial from 2 to 1\n", + " 69624 [params.py: set():1006] [1655475] Changing key nb in group init from 2 to 1\n", + " 69625 [params.py: set():1006] [1655472] Changing key nb in group temporal from 2 to 1\n", + " 69626 [params.py: set():1006] [1655557] Changing key p in group preprocess from 1 to 0\n", + " 69625 [params.py: set():1006] [1655523] Changing key nb in group spatial from 2 to 1\n", + " 69626 [params.py: set():1006] [1655501] Changing key nb in group init from 2 to 1\n", + " 69627 [params.py: set():1006] [1655559] Changing key nb in group temporal from 2 to 1\n", + " 69627 [params.py: set():1006] [1655540] Changing key p in group preprocess from 1 to 0\n", + " 69628 [cnmf.py: fit():466] [1655515] Using 1 processes\n", + " 69628 [params.py: set():1006] [1655500] Changing key p in group preprocess from 1 to 0\n", + " 69629 [params.py: set():1006] [1655486] Changing key nb in group spatial from 2 to 1\n", + " 69630 [params.py: set():1006] [1655514] Changing key nb in group spatial from 2 to 1\n", + " 69630 [params.py: set():1006] [1655529] Changing key p in group preprocess from 1 to 0\n", + " 69631 [params.py: set():1006] [1655541] Changing key nb in group spatial from 2 to 1\n", + " 69632 [params.py: set():1006] [1655484] Changing key nb in group temporal from 2 to 1\n", + " 69631 [params.py: set():1006] [1655563] Changing key stride in group patch from 10 to None\n", + " 69632 [params.py: set():1006] [1655545] Changing key nb in group temporal from 2 to 1\n", + " 69634 [params.py: set():1006] [1655506] Changing key nb in group spatial from 2 to 1\n", + " 69634 [params.py: set():1006] [1655538] Changing key nb in group temporal from 2 to 1\n", + " 69633 [params.py: set():1006] [1655554] Changing key nb in group spatial from 2 to 1\n", + " 69634 [params.py: set():1006] [1655488] Changing key nb in group spatial from 2 to 1\n", + " 69635 [cnmf.py: fit():449] [1655531] (8000, 41, 41)\n", + " 69635 [params.py: set():1006] [1655551] Changing key p in group temporal from 1 to 0\n", + " 69636 [params.py: set():1006] [1655534] Changing key p in group preprocess from 1 to 0\n", + " 69640 [cnmf.py: fit():449] [1655535] (8000, 41, 41)\n", + " 69640 [params.py: set():1006] [1655477] Changing key nb in group temporal from 2 to 1\n", + " 69640 [params.py: set():1006] [1655479] Changing key nb in group spatial from 2 to 1\n", + " 69641 [params.py: set():1006] [1655489] Changing key p in group preprocess from 1 to 0\n", + " 69641 [params.py: set():1006] [1655480] Changing key p in group preprocess from 1 to 0\n", + " 69642 [params.py: set():1006] [1655527] Changing key nb in group spatial from 2 to 1\n", + " 69642 [params.py: set():1006] [1655492] Changing key nb in group spatial from 2 to 1\n", + " 69643 [cnmf.py: fit():436] [1655552] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69643 [params.py: set():1006] [1655499] Changing key nb in group spatial from 2 to 1\n", + " 69644 [params.py: set():1006] [1655496] Changing key nb in group temporal from 2 to 1\n", + " 69644 [params.py: set():1006] [1655521] Changing key nb in group spatial from 2 to 1\n", + " 69645 [params.py: set():1006] [1655482] Changing key p in group preprocess from 1 to 0\n", + " 69645 [params.py: set():1006] [1655562] Changing key nb in group spatial from 2 to 1\n", + " 69646 [params.py: set():1006] [1655481] Changing key nb in group spatial from 2 to 1\n", + " 69646 [params.py: set():1006] [1655526] Changing key p in group preprocess from 1 to 0\n", + " 69647 [params.py: set():1006] [1655487] Changing key nb in group spatial from 2 to 1\n", + " 69647 [params.py: set():1006] [1655564] Changing key nb in group spatial from 2 to 1\n", + " 69648 [params.py: set():1006] [1655532] Changing key nb in group spatial from 2 to 1\n", + " 69648 [params.py: set():1006] [1655533] Changing key p in group preprocess from 1 to 0\n", + " 69649 [params.py: set():1006] [1655511] Changing key p in group preprocess from 1 to 0\n", + " 69649 [params.py: set():1006] [1655483] Changing key nb in group spatial from 2 to 1\n", + " 69650 [params.py: set():1006] [1655512] Changing key p in group preprocess from 1 to 0\n", + " 69651 [params.py: set():1006] [1655508] Changing key p in group preprocess from 1 to 0\n", + " 69650 [cnmf.py: fit():449] [1655549] (8000, 41, 41)\n", + " 69652 [cnmf.py: fit():436] [1655530] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69651 [params.py: set():1006] [1655485] Changing key nb in group spatial from 2 to 1\n", + " 69652 [params.py: set():1006] [1655507] Changing key p in group preprocess from 1 to 0\n", + " 69653 [params.py: set():1006] [1655505] Changing key nb in group temporal from 2 to 1\n", + " 69653 [cnmf.py: fit():436] [1655550] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69653 [params.py: set():1006] [1655516] Changing key nb in group spatial from 2 to 1\n", + " 69654 [params.py: set():1006] [1655469] Changing key nb in group spatial from 2 to 1\n", + " 69655 [params.py: set():1006] [1655498] Changing key nb in group spatial from 2 to 1\n", + " 69655 [params.py: set():1006] [1655497] Changing key p in group preprocess from 1 to 0\n", + " 69656 [params.py: set():1006] [1655510] Changing key nb in group temporal from 2 to 1\n", + " 69656 [params.py: set():1006] [1655558] Changing key p in group preprocess from 1 to 0\n", + " 69657 [params.py: set():1006] [1655513] Changing key p in group preprocess from 1 to 0\n", + " 69657 [params.py: set():1006] [1655556] Changing key nb in group init from 2 to 1\n", + " 69658 [params.py: set():1006] [1655524] Changing key p in group preprocess from 1 to 0\n", + " 69658 [cnmf.py: fit():436] [1655546] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69659 [params.py: set():1006] [1655560] Changing key p in group preprocess from 1 to 0\n", + " 69659 [params.py: set():1006] [1655495] Changing key nb in group spatial from 2 to 1\n", + " 69660 [cnmf.py: fit():449] [1655553] (8000, 41, 41)\n", + " 69661 [params.py: set():1006] [1655476] Changing key nb in group spatial from 2 to 1\n", + " 69660 [params.py: set():1006] [1655478] Changing key nb in group temporal from 2 to 1\n", + " 69661 [params.py: set():1006] [1655509] Changing key p in group preprocess from 1 to 0\n", + " 69661 [params.py: set():1006] [1655470] Changing key p in group temporal from 1 to 0\n", + " 69662 [params.py: set():1006] [1655536] Changing key p in group temporal from 1 to 0\n", + " 69662 [params.py: set():1006] [1655528] Changing key nb in group init from 2 to 1\n", + " 69663 [params.py: set():1006] [1655539] Changing key nb in group temporal from 2 to 1\n", + " 69663 [params.py: set():1006] [1655542] Changing key nb in group spatial from 2 to 1\n", + " 69664 [params.py: set():1006] [1655504] Changing key nb in group spatial from 2 to 1\n", + " 69664 [params.py: set():1006] [1655561] Changing key nb in group spatial from 2 to 1\n", + " 69665 [params.py: set():1006] [1655493] Changing key nb in group temporal from 2 to 1\n", + " 69665 [params.py: set():1006] [1655555] Changing key nb in group spatial from 2 to 1\n", + " 69666 [params.py: set():1006] [1655502] Changing key nb in group spatial from 2 to 1\n", + " 69667 [params.py: set():1006] [1655503] Changing key nb in group temporal from 2 to 1\n", + " 69666 [params.py: set():1006] [1655520] Changing key p in group preprocess from 1 to 0\n", + " 69667 [params.py: set():1006] [1655474] Changing key nb in group spatial from 2 to 1\n", + " 69668 [params.py: set():1006] [1655544] Changing key nb in group spatial from 2 to 1\n", + " 69669 [params.py: set():1006] [1655547] Changing key p in group preprocess from 1 to 0\n", + " 69668 [params.py: set():1006] [1655494] Changing key p in group temporal from 1 to 0\n", + " 69670 [params.py: set():1006] [1655491] Changing key nb in group temporal from 2 to 1\n", + " 69669 [params.py: set():1006] [1655473] Changing key p in group temporal from 1 to 0\n", + " 69670 [params.py: set():1006] [1655537] Changing key p in group temporal from 1 to 0\n", + " 69671 [params.py: set():1006] [1655490] Changing key p in group temporal from 1 to 0\n", + " 69671 [params.py: set():1006] [1655517] Changing key p in group preprocess from 1 to 0\n", + " 69672 [params.py: set():1006] [1655543] Changing key p in group temporal from 1 to 0\n", + " 69672 [params.py: set():1006] [1655548] Changing key nb in group temporal from 2 to 1\n", + " 69672 [params.py: set():1006] [1655525] Changing key p in group temporal from 1 to 0\n", + " 69673 [params.py: set():1006] [1655522] Changing key p in group temporal from 1 to 0\n", + " 69673 [params.py: set():1006] [1655519] Changing key p in group temporal from 1 to 0\n", + " 69674 [params.py: set():1006] [1655518] Changing key p in group preprocess from 1 to 0\n", + " 69674 [params.py: set():1006] [1655475] Changing key nb in group temporal from 2 to 1\n", + " 69675 [params.py: set():1006] [1655472] Changing key nb in group spatial from 2 to 1\n", + " 69676 [params.py: set():1006] [1655523] Changing key p in group preprocess from 1 to 0\n", + " 69675 [params.py: set():1006] [1655557] Changing key p in group temporal from 1 to 0\n", + " 69676 [params.py: set():1006] [1655501] Changing key nb in group temporal from 2 to 1\n", + " 69677 [params.py: set():1006] [1655559] Changing key nb in group spatial from 2 to 1\n", + " 69677 [params.py: set():1006] [1655540] Changing key p in group temporal from 1 to 0\n", + " 69678 [cnmf.py: fit():477] [1655515] using 400 pixels per process\n", + " 69678 [params.py: set():1006] [1655500] Changing key p in group temporal from 1 to 0\n", + " 69678 [params.py: set():1006] [1655486] Changing key p in group preprocess from 1 to 0\n", + " 69679 [params.py: set():1006] [1655529] Changing key p in group temporal from 1 to 0\n", + " 69679 [params.py: set():1006] [1655514] Changing key p in group preprocess from 1 to 0\n", + " 69684 [params.py: set():1006] [1655541] Changing key p in group preprocess from 1 to 0\n", + " 69685 [params.py: set():1006] [1655563] Changing key nb in group init from 2 to 1\n", + " 69685 [params.py: set():1006] [1655545] Changing key nb in group spatial from 2 to 1\n", + " 69684 [params.py: set():1006] [1655484] Changing key nb in group spatial from 2 to 1\n", + " 69686 [params.py: set():1006] [1655506] Changing key p in group preprocess from 1 to 0\n", + " 69686 [params.py: set():1006] [1655538] Changing key nb in group spatial from 2 to 1\n", + " 69687 [params.py: set():1006] [1655554] Changing key p in group preprocess from 1 to 0\n", + " 69687 [params.py: set():1006] [1655488] Changing key p in group preprocess from 1 to 0\n", + " 69688 [cnmf.py: fit():466] [1655531] Using 1 processes\n", + " 69689 [params.py: set():1006] [1655534] Changing key p in group temporal from 1 to 0\n", + " 69688 [cnmf.py: fit():436] [1655551] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69690 [params.py: set():1006] [1655477] Changing key nb in group spatial from 2 to 1\n", + " 69689 [cnmf.py: fit():466] [1655535] Using 1 processes\n", + " 69690 [params.py: set():1006] [1655489] Changing key p in group temporal from 1 to 0\n", + " 69690 [params.py: set():1006] [1655479] Changing key p in group preprocess from 1 to 0\n", + " 69691 [params.py: set():1006] [1655480] Changing key p in group temporal from 1 to 0\n", + " 69691 [params.py: set():1006] [1655527] Changing key p in group preprocess from 1 to 0\n", + " 69692 [params.py: set():1006] [1655492] Changing key p in group preprocess from 1 to 0\n", + " 69692 [cnmf.py: fit():449] [1655552] (8000, 41, 41)\n", + " 69693 [params.py: set():1006] [1655499] Changing key p in group preprocess from 1 to 0\n", + " 69698 [params.py: set():1006] [1655496] Changing key nb in group spatial from 2 to 1\n", + " 69699 [params.py: set():1006] [1655521] Changing key p in group preprocess from 1 to 0\n", + " 69699 [params.py: set():1006] [1655482] Changing key p in group temporal from 1 to 0\n", + " 69700 [params.py: set():1006] [1655562] Changing key p in group preprocess from 1 to 0\n", + " 69700 [params.py: set():1006] [1655481] Changing key p in group preprocess from 1 to 0\n", + " 69701 [params.py: set():1006] [1655526] Changing key p in group temporal from 1 to 0\n", + " 69701 [params.py: set():1006] [1655487] Changing key p in group preprocess from 1 to 0\n", + " 69702 [params.py: set():1006] [1655564] Changing key p in group preprocess from 1 to 0\n", + " 69702 [params.py: set():1006] [1655532] Changing key p in group preprocess from 1 to 0\n", + " 69702 [params.py: set():1006] [1655533] Changing key p in group temporal from 1 to 0\n", + " 69703 [params.py: set():1006] [1655511] Changing key p in group temporal from 1 to 0\n", + " 69703 [params.py: set():1006] [1655483] Changing key p in group preprocess from 1 to 0\n", + " 69704 [params.py: set():1006] [1655512] Changing key p in group temporal from 1 to 0\n", + " 69704 [params.py: set():1006] [1655508] Changing key p in group temporal from 1 to 0\n", + " 69705 [cnmf.py: fit():466] [1655549] Using 1 processes\n", + " 69705 [cnmf.py: fit():449] [1655530] (8000, 41, 41)\n", + " 69706 [params.py: set():1006] [1655485] Changing key p in group preprocess from 1 to 0\n", + " 69706 [params.py: set():1006] [1655507] Changing key p in group temporal from 1 to 0\n", + " 69707 [params.py: set():1006] [1655505] Changing key nb in group spatial from 2 to 1\n", + " 69707 [cnmf.py: fit():449] [1655550] (8000, 41, 41)\n", + " 69708 [params.py: set():1006] [1655516] Changing key p in group preprocess from 1 to 0\n", + " 69709 [params.py: set():1006] [1655469] Changing key p in group preprocess from 1 to 0\n", + " 69709 [params.py: set():1006] [1655497] Changing key p in group temporal from 1 to 0\n", + " 69708 [params.py: set():1006] [1655498] Changing key p in group preprocess from 1 to 0\n", + " 69710 [params.py: set():1006] [1655510] Changing key nb in group spatial from 2 to 1\n", + " 69710 [params.py: set():1006] [1655558] Changing key p in group temporal from 1 to 0\n", + " 69711 [params.py: set():1006] [1655513] Changing key p in group temporal from 1 to 0\n", + " 69711 [params.py: set():1006] [1655556] Changing key nb in group temporal from 2 to 1\n", + " 69711 [params.py: set():1006] [1655524] Changing key p in group temporal from 1 to 0\n", + " 69712 [cnmf.py: fit():449] [1655546] (8000, 41, 41)\n", + " 69712 [params.py: set():1006] [1655560] Changing key p in group temporal from 1 to 0\n", + " 69713 [params.py: set():1006] [1655495] Changing key p in group preprocess from 1 to 0\n", + " 69713 [cnmf.py: fit():466] [1655553] Using 1 processes\n", + " 69714 [params.py: set():1006] [1655478] Changing key nb in group spatial from 2 to 1\n", + " 69714 [params.py: set():1006] [1655476] Changing key p in group preprocess from 1 to 0\n", + " 69715 [cnmf.py: fit():436] [1655470] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69715 [params.py: set():1006] [1655509] Changing key p in group temporal from 1 to 0\n", + " 69716 [cnmf.py: fit():436] [1655536] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69716 [params.py: set():1006] [1655528] Changing key nb in group temporal from 2 to 1\n", + " 69717 [params.py: set():1006] [1655539] Changing key nb in group spatial from 2 to 1\n", + " 69717 [params.py: set():1006] [1655542] Changing key p in group preprocess from 1 to 0\n", + " 69718 [params.py: set():1006] [1655504] Changing key p in group preprocess from 1 to 0\n", + " 69718 [params.py: set():1006] [1655561] Changing key p in group preprocess from 1 to 0\n", + " 69719 [params.py: set():1006] [1655555] Changing key p in group preprocess from 1 to 0\n", + " 69719 [params.py: set():1006] [1655493] Changing key nb in group spatial from 2 to 1\n", + " 69721 [params.py: set():1006] [1655503] Changing key nb in group spatial from 2 to 1\n", + " 69720 [params.py: set():1006] [1655502] Changing key p in group preprocess from 1 to 0\n", + " 69721 [params.py: set():1006] [1655520] Changing key p in group temporal from 1 to 0\n", + " 69722 [params.py: set():1006] [1655544] Changing key p in group preprocess from 1 to 0\n", + " 69722 [params.py: set():1006] [1655474] Changing key p in group preprocess from 1 to 0\n", + " 69723 [params.py: set():1006] [1655547] Changing key p in group temporal from 1 to 0\n", + " 69723 [cnmf.py: fit():436] [1655494] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69724 [cnmf.py: fit():436] [1655473] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69724 [params.py: set():1006] [1655491] Changing key nb in group spatial from 2 to 1\n", + " 69725 [cnmf.py: fit():436] [1655537] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69725 [cnmf.py: fit():436] [1655490] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69726 [params.py: set():1006] [1655517] Changing key p in group temporal from 1 to 0\n", + " 69726 [cnmf.py: fit():436] [1655543] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69727 [params.py: set():1006] [1655548] Changing key nb in group spatial from 2 to 1\n", + " 69727 [cnmf.py: fit():436] [1655525] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69728 [cnmf.py: fit():436] [1655522] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69729 [cnmf.py: fit():436] [1655519] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69729 [params.py: set():1006] [1655518] Changing key p in group temporal from 1 to 0\n", + " 69729 [params.py: set():1006] [1655475] Changing key nb in group spatial from 2 to 1\n", + " 69730 [params.py: set():1006] [1655472] Changing key p in group preprocess from 1 to 0\n", + " 69731 [cnmf.py: fit():436] [1655557] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69731 [params.py: set():1006] [1655523] Changing key p in group temporal from 1 to 0\n", + " 69731 [params.py: set():1006] [1655501] Changing key nb in group spatial from 2 to 1\n", + " 69732 [params.py: set():1006] [1655559] Changing key p in group preprocess from 1 to 0\n", + " 69732 [cnmf.py: fit():436] [1655540] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69734 [cnmf.py: fit():436] [1655500] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69733 [cnmf.py: fit():478] [1655515] using 5000 block_size_temp\n", + " 69734 [params.py: set():1006] [1655486] Changing key p in group temporal from 1 to 0\n", + " 69735 [params.py: set():1006] [1655514] Changing key p in group temporal from 1 to 0\n", + " 69735 [cnmf.py: fit():436] [1655529] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69736 [params.py: set():1006] [1655541] Changing key p in group temporal from 1 to 0\n", + " 69737 [params.py: set():1006] [1655563] Changing key nb in group temporal from 2 to 1\n", + " 69736 [params.py: set():1006] [1655545] Changing key p in group preprocess from 1 to 0\n", + " 69737 [params.py: set():1006] [1655484] Changing key p in group preprocess from 1 to 0\n", + " 69738 [params.py: set():1006] [1655538] Changing key p in group preprocess from 1 to 0\n", + " 69738 [params.py: set():1006] [1655506] Changing key p in group temporal from 1 to 0\n", + " 69738 [params.py: set():1006] [1655488] Changing key p in group temporal from 1 to 0\n", + " 69739 [params.py: set():1006] [1655554] Changing key p in group temporal from 1 to 0\n", + " 69739 [cnmf.py: fit():477] [1655531] using 400 pixels per process\n", + " 69740 [cnmf.py: fit():436] [1655534] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69740 [cnmf.py: fit():449] [1655551] (8000, 41, 41)\n", + " 69748 [params.py: set():1006] [1655477] Changing key p in group preprocess from 1 to 0\n", + " 69748 [cnmf.py: fit():477] [1655535] using 400 pixels per process\n", + " 69749 [params.py: set():1006] [1655479] Changing key p in group temporal from 1 to 0\n", + " 69749 [cnmf.py: fit():436] [1655489] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69750 [cnmf.py: fit():436] [1655480] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69750 [params.py: set():1006] [1655527] Changing key p in group temporal from 1 to 0\n", + " 69751 [params.py: set():1006] [1655492] Changing key p in group temporal from 1 to 0\n", + " 69752 [cnmf.py: fit():466] [1655552] Using 1 processes\n", + " 69752 [params.py: set():1006] [1655496] Changing key p in group preprocess from 1 to 0\n", + " 69752 [params.py: set():1006] [1655499] Changing key p in group temporal from 1 to 0\n", + " 69753 [params.py: set():1006] [1655521] Changing key p in group temporal from 1 to 0\n", + " 69753 [cnmf.py: fit():436] [1655482] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69754 [params.py: set():1006] [1655562] Changing key p in group temporal from 1 to 0\n", + " 69754 [params.py: set():1006] [1655481] Changing key p in group temporal from 1 to 0\n", + " 69755 [cnmf.py: fit():436] [1655526] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69756 [params.py: set():1006] [1655487] Changing key p in group temporal from 1 to 0\n", + " 69756 [params.py: set():1006] [1655564] Changing key p in group temporal from 1 to 0\n", + " 69757 [params.py: set():1006] [1655532] Changing key p in group temporal from 1 to 0\n", + " 69757 [cnmf.py: fit():436] [1655533] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69758 [cnmf.py: fit():436] [1655511] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69758 [params.py: set():1006] [1655483] Changing key p in group temporal from 1 to 0\n", + " 69759 [cnmf.py: fit():436] [1655512] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69760 [cnmf.py: fit():436] [1655508] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69759 [cnmf.py: fit():477] [1655549] using 400 pixels per process\n", + " 69760 [cnmf.py: fit():466] [1655530] Using 1 processes\n", + " 69762 [params.py: set():1006] [1655505] Changing key p in group preprocess from 1 to 0\n", + " 69761 [cnmf.py: fit():436] [1655507] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69761 [params.py: set():1006] [1655485] Changing key p in group temporal from 1 to 0\n", + " 69763 [params.py: set():1006] [1655516] Changing key p in group temporal from 1 to 0\n", + " 69762 [cnmf.py: fit():466] [1655550] Using 1 processes\n", + " 69763 [params.py: set():1006] [1655469] Changing key p in group temporal from 1 to 0\n", + " 69764 [cnmf.py: fit():436] [1655497] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69764 [params.py: set():1006] [1655498] Changing key p in group temporal from 1 to 0\n", + " 69765 [params.py: set():1006] [1655510] Changing key p in group preprocess from 1 to 0\n", + " 69766 [cnmf.py: fit():436] [1655558] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69765 [cnmf.py: fit():436] [1655513] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69766 [params.py: set():1006] [1655556] Changing key nb in group spatial from 2 to 1\n", + " 69767 [cnmf.py: fit():436] [1655524] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69767 [cnmf.py: fit():466] [1655546] Using 1 processes\n", + " 69768 [cnmf.py: fit():436] [1655560] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69769 [params.py: set():1006] [1655495] Changing key p in group temporal from 1 to 0\n", + " 69770 [params.py: set():1006] [1655476] Changing key p in group temporal from 1 to 0\n", + " 69769 [cnmf.py: fit():477] [1655553] using 400 pixels per process\n", + " 69770 [params.py: set():1006] [1655478] Changing key p in group preprocess from 1 to 0\n", + " 69771 [cnmf.py: fit():436] [1655509] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69771 [cnmf.py: fit():449] [1655470] (8000, 41, 41)\n", + " 69772 [params.py: set():1006] [1655528] Changing key nb in group spatial from 2 to 1\n", + " 69772 [cnmf.py: fit():449] [1655536] (8000, 41, 41)\n", + " 69773 [params.py: set():1006] [1655539] Changing key p in group preprocess from 1 to 0\n", + " 69773 [params.py: set():1006] [1655542] Changing key p in group temporal from 1 to 0\n", + " 69774 [params.py: set():1006] [1655504] Changing key p in group temporal from 1 to 0\n", + " 69774 [params.py: set():1006] [1655561] Changing key p in group temporal from 1 to 0\n", + " 69774 [params.py: set():1006] [1655555] Changing key p in group temporal from 1 to 0\n", + " 69775 [params.py: set():1006] [1655493] Changing key p in group preprocess from 1 to 0\n", + " 69776 [params.py: set():1006] [1655503] Changing key p in group preprocess from 1 to 0\n", + " 69776 [cnmf.py: fit():436] [1655520] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69775 [params.py: set():1006] [1655502] Changing key p in group temporal from 1 to 0\n", + " 69777 [params.py: set():1006] [1655544] Changing key p in group temporal from 1 to 0\n", + " 69777 [params.py: set():1006] [1655474] Changing key p in group temporal from 1 to 0\n", + " 69778 [cnmf.py: fit():436] [1655547] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69778 [cnmf.py: fit():449] [1655494] (8000, 41, 41)\n", + " 69779 [cnmf.py: fit():449] [1655473] (8000, 41, 41)\n", + " 69779 [params.py: set():1006] [1655491] Changing key p in group preprocess from 1 to 0\n", + " 69780 [cnmf.py: fit():449] [1655537] (8000, 41, 40)\n", + " 69780 [cnmf.py: fit():449] [1655490] (8000, 41, 41)\n", + " 69781 [cnmf.py: fit():436] [1655517] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69781 [cnmf.py: fit():449] [1655543] (8000, 41, 41)\n", + " 69782 [params.py: set():1006] [1655548] Changing key p in group preprocess from 1 to 0\n", + " 69782 [cnmf.py: fit():449] [1655525] (8000, 41, 41)\n", + " 69783 [cnmf.py: fit():449] [1655522] (8000, 41, 41)\n", + " 69783 [cnmf.py: fit():449] [1655519] (8000, 41, 41)\n", + " 69784 [cnmf.py: fit():436] [1655518] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69791 [params.py: set():1006] [1655475] Changing key p in group preprocess from 1 to 0\n", + " 69792 [params.py: set():1006] [1655472] Changing key p in group temporal from 1 to 0\n", + " 69793 [cnmf.py: fit():449] [1655557] (8000, 41, 41)\n", + " 69793 [cnmf.py: fit():436] [1655523] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69793 [params.py: set():1006] [1655501] Changing key p in group preprocess from 1 to 0\n", + " 69794 [params.py: set():1006] [1655559] Changing key p in group temporal from 1 to 0\n", + " 69794 [cnmf.py: fit():449] [1655540] (8000, 41, 41)\n", + " 69795 [cnmf.py: fit():481] [1655515] preprocessing ...\n", + " 69795 [cnmf.py: fit():449] [1655500] (8000, 41, 41)\n", + " 69796 [cnmf.py: fit():436] [1655486] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69797 [cnmf.py: fit():449] [1655529] (8000, 41, 41)\n", + " 69797 [cnmf.py: fit():436] [1655514] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69798 [cnmf.py: fit():436] [1655541] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69799 [params.py: set():1006] [1655545] Changing key p in group temporal from 1 to 0\n", + " 69798 [params.py: set():1006] [1655563] Changing key nb in group spatial from 2 to 1\n", + " 69799 [params.py: set():1006] [1655484] Changing key p in group temporal from 1 to 0\n", + " 69800 [cnmf.py: fit():436] [1655506] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69800 [params.py: set():1006] [1655538] Changing key p in group temporal from 1 to 0\n", + " 69801 [cnmf.py: fit():436] [1655488] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69801 [cnmf.py: fit():436] [1655554] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69802 [cnmf.py: fit():478] [1655531] using 5000 block_size_temp\n", + " 69802 [cnmf.py: fit():449] [1655534] (8000, 41, 41)\n", + " 69803 [cnmf.py: fit():466] [1655551] Using 1 processes\n", + " 69804 [cnmf.py: fit():478] [1655535] using 5000 block_size_temp\n", + " 69803 [params.py: set():1006] [1655477] Changing key p in group temporal from 1 to 0\n", + " 69804 [cnmf.py: fit():436] [1655479] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69805 [cnmf.py: fit():449] [1655489] (8000, 41, 41)\n", + " 69806 [cnmf.py: fit():436] [1655527] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69805 [cnmf.py: fit():449] [1655480] (8000, 41, 41)\n", + " 69807 [cnmf.py: fit():436] [1655492] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69807 [cnmf.py: fit():477] [1655552] using 400 pixels per process\n", + " 69807 [params.py: set():1006] [1655496] Changing key p in group temporal from 1 to 0\n", + " 69808 [cnmf.py: fit():436] [1655499] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69808 [cnmf.py: fit():436] [1655521] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69809 [cnmf.py: fit():449] [1655482] (8000, 41, 41)\n", + " 69810 [cnmf.py: fit():436] [1655562] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69810 [cnmf.py: fit():436] [1655481] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69811 [cnmf.py: fit():436] [1655487] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69811 [cnmf.py: fit():449] [1655526] (8000, 41, 41)\n", + " 69812 [cnmf.py: fit():436] [1655564] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69813 [cnmf.py: fit():436] [1655532] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69813 [cnmf.py: fit():449] [1655533] (8000, 41, 41)\n", + " 69814 [cnmf.py: fit():436] [1655483] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69814 [cnmf.py: fit():449] [1655511] (8000, 41, 41)\n", + " 69815 [cnmf.py: fit():449] [1655512] (8000, 41, 41)\n", + " 69815 [cnmf.py: fit():449] [1655508] (8000, 41, 41)\n", + " 69816 [cnmf.py: fit():478] [1655549] using 5000 block_size_temp\n", + " 69816 [cnmf.py: fit():477] [1655530] using 400 pixels per process\n", + " 69817 [cnmf.py: fit():449] [1655507] (8000, 41, 41)\n", + " 69817 [params.py: set():1006] [1655505] Changing key p in group temporal from 1 to 0\n", + " 69818 [cnmf.py: fit():436] [1655485] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69818 [cnmf.py: fit():436] [1655516] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69819 [cnmf.py: fit():477] [1655550] using 400 pixels per process\n", + " 69819 [cnmf.py: fit():436] [1655469] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69820 [cnmf.py: fit():436] [1655498] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69820 [cnmf.py: fit():449] [1655497] (8000, 41, 41)\n", + " 69821 [params.py: set():1006] [1655510] Changing key p in group temporal from 1 to 0\n", + " 69821 [cnmf.py: fit():449] [1655513] (8000, 41, 41)\n", + " 69822 [cnmf.py: fit():449] [1655558] (8000, 41, 41)\n", + " 69822 [params.py: set():1006] [1655556] Changing key p in group preprocess from 1 to 0\n", + " 69823 [cnmf.py: fit():449] [1655524] (8000, 41, 41)\n", + " 69823 [cnmf.py: fit():477] [1655546] using 400 pixels per process\n", + " 69824 [cnmf.py: fit():449] [1655560] (8000, 41, 41)\n", + " 69824 [cnmf.py: fit():436] [1655495] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69825 [params.py: set():1006] [1655478] Changing key p in group temporal from 1 to 0\n", + " 69826 [cnmf.py: fit():436] [1655476] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69825 [cnmf.py: fit():478] [1655553] using 5000 block_size_temp\n", + " 69826 [cnmf.py: fit():466] [1655470] Using 1 processes\n", + " 69827 [cnmf.py: fit():449] [1655509] (8000, 41, 41)\n", + " 69827 [params.py: set():1006] [1655528] Changing key p in group preprocess from 1 to 0\n", + " 69828 [cnmf.py: fit():466] [1655536] Using 1 processes\n", + " 69829 [cnmf.py: fit():436] [1655542] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69828 [params.py: set():1006] [1655539] Changing key p in group temporal from 1 to 0\n", + " 69830 [cnmf.py: fit():436] [1655561] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69830 [cnmf.py: fit():436] [1655504] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69830 [params.py: set():1006] [1655493] Changing key p in group temporal from 1 to 0\n", + " 69831 [cnmf.py: fit():436] [1655555] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69832 [cnmf.py: fit():449] [1655520] (8000, 41, 40)\n", + " 69832 [params.py: set():1006] [1655503] Changing key p in group temporal from 1 to 0\n", + " 69832 [cnmf.py: fit():436] [1655502] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69834 [cnmf.py: fit():449] [1655547] (8000, 41, 41)\n", + " 69834 [cnmf.py: fit():436] [1655474] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69833 [cnmf.py: fit():436] [1655544] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69835 [cnmf.py: fit():466] [1655494] Using 1 processes\n", + " 69835 [cnmf.py: fit():466] [1655473] Using 1 processes\n", + " 69836 [params.py: set():1006] [1655491] Changing key p in group temporal from 1 to 0\n", + " 69836 [cnmf.py: fit():466] [1655537] Using 1 processes\n", + " 69837 [cnmf.py: fit():466] [1655490] Using 1 processes\n", + " 69837 [cnmf.py: fit():449] [1655517] (8000, 41, 41)\n", + " 69837 [cnmf.py: fit():466] [1655543] Using 1 processes\n", + " 69838 [cnmf.py: fit():466] [1655525] Using 1 processes\n", + " 69838 [params.py: set():1006] [1655548] Changing key p in group temporal from 1 to 0\n", + " 69839 [cnmf.py: fit():466] [1655522] Using 1 processes\n", + " 69839 [cnmf.py: fit():466] [1655519] Using 1 processes\n", + " 69840 [cnmf.py: fit():449] [1655518] (8000, 41, 41)\n", + " 69840 [params.py: set():1006] [1655475] Changing key p in group temporal from 1 to 0\n", + " 69841 [cnmf.py: fit():436] [1655472] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69841 [cnmf.py: fit():449] [1655523] (8000, 41, 41)\n", + " 69842 [cnmf.py: fit():466] [1655557] Using 1 processes\n", + " 69842 [params.py: set():1006] [1655501] Changing key p in group temporal from 1 to 0\n", + " 69843 [cnmf.py: fit():436] [1655559] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69843 [cnmf.py: fit():466] [1655540] Using 1 processes\n", + " 69844 [cnmf.py: fit():466] [1655500] Using 1 processes\n", + " 69844 [pre_processing.py:interpolate_missing_data():41] [1655515] Checking for missing data entries (NaN)\n", + " 69844 [cnmf.py: fit():449] [1655486] (8000, 41, 40)\n", + " 69845 [cnmf.py: fit():449] [1655514] (8000, 41, 41)\n", + " 69845 [cnmf.py: fit():466] [1655529] Using 1 processes\n", + " 69846 [cnmf.py: fit():449] [1655541] (8000, 41, 41)\n", + " 69847 [cnmf.py: fit():436] [1655545] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69847 [params.py: set():1006] [1655563] Changing key p in group preprocess from 1 to 0\n", + " 69848 [cnmf.py: fit():436] [1655484] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69848 [cnmf.py: fit():449] [1655506] (8000, 41, 41)\n", + " 69849 [cnmf.py: fit():436] [1655538] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69850 [cnmf.py: fit():449] [1655488] (8000, 41, 41)\n", + " 69849 [cnmf.py: fit():449] [1655554] (8000, 41, 40)\n", + " 69850 [cnmf.py: fit():481] [1655531] preprocessing ...\n", + " 69851 [cnmf.py: fit():466] [1655534] Using 1 processes\n", + " 69851 [cnmf.py: fit():477] [1655551] using 400 pixels per process\n", + " 69852 [cnmf.py: fit():481] [1655535] preprocessing ...\n", + " 69852 [cnmf.py: fit():436] [1655477] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69853 [cnmf.py: fit():466] [1655489] Using 1 processes\n", + " 69853 [cnmf.py: fit():449] [1655479] (8000, 41, 41)\n", + " 69854 [cnmf.py: fit():449] [1655527] (8000, 41, 41)\n", + " 69854 [cnmf.py: fit():466] [1655480] Using 1 processes\n", + " 69855 [cnmf.py: fit():449] [1655492] (8000, 41, 41)\n", + " 69855 [cnmf.py: fit():478] [1655552] using 5000 block_size_temp\n", + " 69856 [cnmf.py: fit():436] [1655496] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69856 [cnmf.py: fit():449] [1655499] (8000, 41, 41)\n", + " 69864 [cnmf.py: fit():449] [1655521] (8000, 41, 41)\n", + " 69864 [cnmf.py: fit():466] [1655482] Using 1 processes\n", + " 69865 [cnmf.py: fit():449] [1655562] (8000, 41, 41)\n", + " 69865 [cnmf.py: fit():449] [1655481] (8000, 41, 41)\n", + " 69866 [cnmf.py: fit():466] [1655526] Using 1 processes\n", + " 69866 [cnmf.py: fit():449] [1655487] (8000, 41, 41)\n", + " 69867 [cnmf.py: fit():449] [1655564] (8000, 41, 41)\n", + " 69868 [cnmf.py: fit():466] [1655533] Using 1 processes\n", + " 69868 [cnmf.py: fit():449] [1655532] (8000, 41, 41)\n", + " 69868 [cnmf.py: fit():449] [1655483] (8000, 41, 41)\n", + " 69869 [cnmf.py: fit():466] [1655511] Using 1 processes\n", + " 69869 [cnmf.py: fit():466] [1655512] Using 1 processes\n", + " 69870 [cnmf.py: fit():466] [1655508] Using 1 processes\n", + " 69870 [cnmf.py: fit():481] [1655549] preprocessing ...\n", + " 69871 [cnmf.py: fit():478] [1655530] using 5000 block_size_temp\n", + " 69872 [cnmf.py: fit():436] [1655505] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69871 [cnmf.py: fit():449] [1655485] (8000, 41, 41)\n", + " 69872 [cnmf.py: fit():466] [1655507] Using 1 processes\n", + " 69872 [cnmf.py: fit():449] [1655516] (8000, 41, 41)\n", + " 69873 [cnmf.py: fit():478] [1655550] using 5000 block_size_temp\n", + " 69873 [cnmf.py: fit():449] [1655469] (8000, 41, 41)\n", + " 69874 [cnmf.py: fit():449] [1655498] (8000, 41, 41)\n", + " 69874 [cnmf.py: fit():466] [1655497] Using 1 processes\n", + " 69875 [cnmf.py: fit():436] [1655510] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69876 [cnmf.py: fit():466] [1655558] Using 1 processes\n", + " 69876 [cnmf.py: fit():466] [1655513] Using 1 processes\n", + " 69876 [params.py: set():1006] [1655556] Changing key p in group temporal from 1 to 0\n", + " 69877 [cnmf.py: fit():466] [1655524] Using 1 processes\n", + " 69877 [cnmf.py: fit():478] [1655546] using 5000 block_size_temp\n", + " 69878 [cnmf.py: fit():466] [1655560] Using 1 processes\n", + " 69878 [cnmf.py: fit():449] [1655495] (8000, 41, 41)\n", + " 69879 [cnmf.py: fit():481] [1655553] preprocessing ...\n", + " 69879 [cnmf.py: fit():449] [1655476] (8000, 41, 41)\n", + " 69880 [cnmf.py: fit():436] [1655478] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69880 [cnmf.py: fit():466] [1655509] Using 1 processes\n", + " 69881 [cnmf.py: fit():477] [1655470] using 400 pixels per process\n", + " 69882 [params.py: set():1006] [1655528] Changing key p in group temporal from 1 to 0\n", + " 69881 [cnmf.py: fit():477] [1655536] using 400 pixels per process\n", + " 69883 [cnmf.py: fit():449] [1655542] (8000, 41, 41)\n", + " 69882 [cnmf.py: fit():436] [1655539] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69883 [cnmf.py: fit():449] [1655561] (8000, 41, 41)\n", + " 69884 [cnmf.py: fit():449] [1655504] (8000, 41, 41)\n", + " 69884 [cnmf.py: fit():436] [1655493] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69885 [cnmf.py: fit():449] [1655555] (8000, 41, 41)\n", + " 69885 [cnmf.py: fit():466] [1655520] Using 1 processes\n", + " 69886 [cnmf.py: fit():436] [1655503] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69886 [cnmf.py: fit():449] [1655502] (8000, 41, 41)\n", + " 69887 [cnmf.py: fit():466] [1655547] Using 1 processes\n", + " 69888 [cnmf.py: fit():449] [1655544] (8000, 41, 41)\n", + " 69887 [cnmf.py: fit():449] [1655474] (8000, 41, 41)\n", + " 69889 [cnmf.py: fit():477] [1655473] using 400 pixels per process\n", + " 69888 [cnmf.py: fit():477] [1655494] using 400 pixels per process\n", + " 69889 [cnmf.py: fit():436] [1655491] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69890 [cnmf.py: fit():477] [1655537] using 400 pixels per process\n", + " 69891 [cnmf.py: fit():477] [1655543] using 400 pixels per process\n", + " 69891 [cnmf.py: fit():477] [1655490] using 400 pixels per process\n", + " 69890 [cnmf.py: fit():466] [1655517] Using 1 processes\n", + " 69892 [cnmf.py: fit():477] [1655525] using 400 pixels per process\n", + " 69892 [cnmf.py: fit():436] [1655548] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69893 [cnmf.py: fit():477] [1655522] using 400 pixels per process\n", + " 69893 [cnmf.py: fit():477] [1655519] using 400 pixels per process\n", + " 69893 [cnmf.py: fit():466] [1655518] Using 1 processes\n", + " 69894 [cnmf.py: fit():436] [1655475] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69895 [cnmf.py: fit():449] [1655472] (8000, 41, 41)\n", + " 69895 [cnmf.py: fit():466] [1655523] Using 1 processes\n", + " 69896 [cnmf.py: fit():477] [1655557] using 400 pixels per process\n", + " 69896 [cnmf.py: fit():436] [1655501] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69897 [cnmf.py: fit():449] [1655559] (8000, 41, 41)\n", + " 69897 [cnmf.py: fit():477] [1655540] using 400 pixels per process\n", + " 69898 [cnmf.py: fit():477] [1655500] using 400 pixels per process\n", + " 69907 [cnmf.py: fit():466] [1655486] Using 1 processes\n", + " 69907 [cnmf.py: fit():466] [1655514] Using 1 processes\n", + " 69908 [cnmf.py: fit():477] [1655529] using 400 pixels per process\n", + " 69908 [cnmf.py: fit():466] [1655541] Using 1 processes\n", + " 69912 [cnmf.py: fit():449] [1655545] (8000, 41, 41)\n", + " 69913 [cnmf.py: fit():449] [1655484] (8000, 41, 41)\n", + " 69912 [params.py: set():1006] [1655563] Changing key p in group temporal from 1 to 0\n", + " 69913 [cnmf.py: fit():449] [1655538] (8000, 41, 41)\n", + " 69914 [cnmf.py: fit():466] [1655506] Using 1 processes\n", + " 69919 [cnmf.py: fit():466] [1655488] Using 1 processes\n", + " 69920 [cnmf.py: fit():466] [1655554] Using 1 processes\n", + " 69920 [pre_processing.py:interpolate_missing_data():41] [1655531] Checking for missing data entries (NaN)\n", + " 69921 [cnmf.py: fit():477] [1655534] using 400 pixels per process\n", + " 69921 [cnmf.py: fit():478] [1655551] using 5000 block_size_temp\n", + " 69922 [cnmf.py: fit():449] [1655477] (8000, 41, 41)\n", + " 69922 [pre_processing.py:interpolate_missing_data():41] [1655535] Checking for missing data entries (NaN)\n", + " 69923 [cnmf.py: fit():466] [1655479] Using 1 processes\n", + " 69923 [cnmf.py: fit():477] [1655489] using 400 pixels per process\n", + " 69924 [cnmf.py: fit():477] [1655480] using 400 pixels per process\n", + " 69924 [cnmf.py: fit():466] [1655492] Using 1 processes\n", + " 69924 [cnmf.py: fit():466] [1655527] Using 1 processes\n", + " 69925 [cnmf.py: fit():481] [1655552] preprocessing ...\n", + " 69926 [cnmf.py: fit():449] [1655496] (8000, 41, 41)\n", + " 69925 [cnmf.py: fit():466] [1655499] Using 1 processes\n", + " 69926 [cnmf.py: fit():466] [1655521] Using 1 processes\n", + " 69927 [cnmf.py: fit():477] [1655482] using 400 pixels per process\n", + " 69927 [cnmf.py: fit():466] [1655562] Using 1 processes\n", + " 69928 [cnmf.py: fit():466] [1655481] Using 1 processes\n", + " 69928 [cnmf.py: fit():477] [1655526] using 400 pixels per process\n", + " 69929 [cnmf.py: fit():466] [1655487] Using 1 processes\n", + " 69929 [cnmf.py: fit():466] [1655564] Using 1 processes\n", + " 69930 [cnmf.py: fit():477] [1655533] using 400 pixels per process\n", + " 69930 [cnmf.py: fit():466] [1655532] Using 1 processes\n", + " 69931 [cnmf.py: fit():477] [1655511] using 400 pixels per process\n", + " 69931 [cnmf.py: fit():466] [1655483] Using 1 processes\n", + " 69935 [cnmf.py: fit():477] [1655512] using 400 pixels per process\n", + " 69936 [pre_processing.py:interpolate_missing_data():41] [1655549] Checking for missing data entries (NaN)\n", + " 69936 [cnmf.py: fit():477] [1655508] using 400 pixels per process\n", + " 69937 [cnmf.py: fit():481] [1655530] preprocessing ...\n", + " 69938 [cnmf.py: fit():449] [1655505] (8000, 41, 41)\n", + " 69938 [cnmf.py: fit():477] [1655507] using 400 pixels per process\n", + " 69938 [cnmf.py: fit():466] [1655485] Using 1 processes\n", + " 69939 [cnmf.py: fit():481] [1655550] preprocessing ...\n", + " 69939 [cnmf.py: fit():466] [1655516] Using 1 processes\n", + " 69940 [cnmf.py: fit():466] [1655469] Using 1 processes\n", + " 69941 [cnmf.py: fit():477] [1655497] using 400 pixels per process\n", + " 69940 [cnmf.py: fit():466] [1655498] Using 1 processes\n", + " 69941 [cnmf.py: fit():449] [1655510] (8000, 41, 41)\n", + " 69942 [cnmf.py: fit():477] [1655513] using 400 pixels per process\n", + " 69942 [cnmf.py: fit():477] [1655558] using 400 pixels per process\n", + " 69943 [cnmf.py: fit():436] [1655556] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69943 [cnmf.py: fit():477] [1655524] using 400 pixels per process\n", + " 69944 [cnmf.py: fit():481] [1655546] preprocessing ...\n", + " 69944 [cnmf.py: fit():477] [1655560] using 400 pixels per process\n", + " 69945 [cnmf.py: fit():466] [1655495] Using 1 processes\n", + " 69946 [pre_processing.py:interpolate_missing_data():41] [1655553] Checking for missing data entries (NaN)\n", + " 69945 [cnmf.py: fit():466] [1655476] Using 1 processes\n", + " 69946 [cnmf.py: fit():449] [1655478] (8000, 41, 41)\n", + " 69947 [cnmf.py: fit():477] [1655509] using 400 pixels per process\n", + " 69947 [cnmf.py: fit():478] [1655470] using 5000 block_size_temp\n", + " 69948 [cnmf.py: fit():478] [1655536] using 5000 block_size_temp\n", + " 69948 [cnmf.py: fit():436] [1655528] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69949 [cnmf.py: fit():466] [1655542] Using 1 processes\n", + " 69949 [cnmf.py: fit():449] [1655539] (8000, 41, 41)\n", + " 69950 [cnmf.py: fit():466] [1655561] Using 1 processes\n", + " 69950 [cnmf.py: fit():466] [1655504] Using 1 processes\n", + " 69951 [cnmf.py: fit():449] [1655493] (8000, 41, 41)\n", + " 69951 [cnmf.py: fit():466] [1655555] Using 1 processes\n", + " 69952 [cnmf.py: fit():477] [1655520] using 400 pixels per process\n", + " 69952 [cnmf.py: fit():449] [1655503] (8000, 41, 40)\n", + " 69953 [cnmf.py: fit():466] [1655502] Using 1 processes\n", + " 69953 [cnmf.py: fit():477] [1655547] using 400 pixels per process\n", + " 69954 [cnmf.py: fit():466] [1655474] Using 1 processes\n", + " 69953 [cnmf.py: fit():466] [1655544] Using 1 processes\n", + " 69955 [cnmf.py: fit():478] [1655494] using 5000 block_size_temp\n", + " 69954 [cnmf.py: fit():478] [1655473] using 5000 block_size_temp\n", + " 69955 [cnmf.py: fit():449] [1655491] (8000, 41, 41)\n", + " 69956 [cnmf.py: fit():478] [1655537] using 5000 block_size_temp\n", + " 69956 [cnmf.py: fit():477] [1655517] using 400 pixels per process\n", + " 69957 [cnmf.py: fit():478] [1655490] using 5000 block_size_temp\n", + " 69957 [cnmf.py: fit():478] [1655543] using 5000 block_size_temp\n", + " 69958 [cnmf.py: fit():449] [1655548] (8000, 41, 41)\n", + " 69958 [cnmf.py: fit():478] [1655525] using 5000 block_size_temp\n", + " 69958 [cnmf.py: fit():478] [1655522] using 5000 block_size_temp\n", + " 69959 [cnmf.py: fit():478] [1655519] using 5000 block_size_temp\n", + " 69959 [cnmf.py: fit():477] [1655518] using 400 pixels per process\n", + " 69960 [cnmf.py: fit():449] [1655475] (8000, 41, 41)\n", + " 69961 [cnmf.py: fit():466] [1655472] Using 1 processes\n", + " 69961 [cnmf.py: fit():478] [1655557] using 5000 block_size_temp\n", + " 69961 [cnmf.py: fit():477] [1655523] using 400 pixels per process\n", + " 69962 [cnmf.py: fit():449] [1655501] (8000, 41, 41)\n", + " 69962 [cnmf.py: fit():466] [1655559] Using 1 processes\n", + " 69963 [cnmf.py: fit():478] [1655540] using 5000 block_size_temp\n", + " 69963 [cnmf.py: fit():478] [1655500] using 5000 block_size_temp\n", + " 69966 [cnmf.py: fit():477] [1655486] using 400 pixels per process\n", + " 69967 [cnmf.py: fit():477] [1655514] using 400 pixels per process\n", + " 69967 [cnmf.py: fit():478] [1655529] using 5000 block_size_temp\n", + " 69968 [cnmf.py: fit():477] [1655541] using 400 pixels per process\n", + " 69968 [cnmf.py: fit():466] [1655545] Using 1 processes\n", + " 69969 [cnmf.py: fit():436] [1655563] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 69969 [cnmf.py: fit():466] [1655484] Using 1 processes\n", + " 69970 [cnmf.py: fit():466] [1655538] Using 1 processes\n", + " 69970 [cnmf.py: fit():477] [1655506] using 400 pixels per process\n", + " 69971 [cnmf.py: fit():477] [1655488] using 400 pixels per process\n", + " 69971 [cnmf.py: fit():477] [1655554] using 400 pixels per process\n", + " 69988 [cnmf.py: fit():466] [1655477] Using 1 processes\n", + " 69988 [cnmf.py: fit():481] [1655551] preprocessing ...\n", + " 69987 [cnmf.py: fit():478] [1655534] using 5000 block_size_temp\n", + " 70003 [cnmf.py: fit():478] [1655489] using 5000 block_size_temp\n", + " 70004 [cnmf.py: fit():477] [1655479] using 400 pixels per process\n", + " 70005 [cnmf.py: fit():478] [1655480] using 5000 block_size_temp\n", + " 70005 [cnmf.py: fit():477] [1655492] using 400 pixels per process\n", + " 70006 [cnmf.py: fit():477] [1655527] using 400 pixels per process\n", + " 70006 [pre_processing.py:interpolate_missing_data():41] [1655552] Checking for missing data entries (NaN)\n", + " 70006 [cnmf.py: fit():466] [1655496] Using 1 processes\n", + " 70007 [cnmf.py: fit():477] [1655499] using 400 pixels per process\n", + " 70007 [cnmf.py: fit():477] [1655521] using 400 pixels per process\n", + " 70008 [cnmf.py: fit():478] [1655482] using 5000 block_size_temp\n", + " 70008 [cnmf.py: fit():477] [1655562] using 400 pixels per process\n", + " 70009 [cnmf.py: fit():478] [1655526] using 5000 block_size_temp\n", + " 70009 [cnmf.py: fit():477] [1655481] using 400 pixels per process\n", + " 70010 [cnmf.py: fit():477] [1655487] using 400 pixels per process\n", + " 70010 [cnmf.py: fit():477] [1655564] using 400 pixels per process\n", + " 70011 [cnmf.py: fit():478] [1655533] using 5000 block_size_temp\n", + " 70011 [cnmf.py: fit():477] [1655532] using 400 pixels per process\n", + " 70012 [cnmf.py: fit():478] [1655511] using 5000 block_size_temp\n", + " 70012 [cnmf.py: fit():477] [1655483] using 400 pixels per process\n", + " 70013 [cnmf.py: fit():478] [1655512] using 5000 block_size_temp\n", + " 70027 [cnmf.py: fit():478] [1655508] using 5000 block_size_temp\n", + " 70028 [cnmf.py: fit():466] [1655505] Using 1 processes\n", + " 70028 [pre_processing.py:interpolate_missing_data():41] [1655530] Checking for missing data entries (NaN)\n", + " 70029 [cnmf.py: fit():478] [1655507] using 5000 block_size_temp\n", + " 70036 [pre_processing.py:interpolate_missing_data():41] [1655550] Checking for missing data entries (NaN)\n", + " 70036 [cnmf.py: fit():477] [1655516] using 400 pixels per process\n", + " 70036 [cnmf.py: fit():477] [1655485] using 400 pixels per process\n", + " 70038 [cnmf.py: fit():478] [1655497] using 5000 block_size_temp\n", + " 70038 [cnmf.py: fit():477] [1655498] using 400 pixels per process\n", + " 70037 [cnmf.py: fit():477] [1655469] using 400 pixels per process\n", + " 70038 [cnmf.py: fit():466] [1655510] Using 1 processes\n", + " 70039 [cnmf.py: fit():478] [1655513] using 5000 block_size_temp\n", + " 70039 [cnmf.py: fit():478] [1655558] using 5000 block_size_temp\n", + " 70040 [cnmf.py: fit():449] [1655556] (8000, 41, 41)\n", + " 70041 [pre_processing.py:interpolate_missing_data():41] [1655546] Checking for missing data entries (NaN)\n", + " 70040 [cnmf.py: fit():478] [1655524] using 5000 block_size_temp\n", + " 70042 [cnmf.py: fit():477] [1655495] using 400 pixels per process\n", + " 70041 [cnmf.py: fit():478] [1655560] using 5000 block_size_temp\n", + " 70063 [cnmf.py: fit():477] [1655476] using 400 pixels per process\n", + " 70064 [cnmf.py: fit():466] [1655478] Using 1 processes\n", + " 70065 [cnmf.py: fit():481] [1655470] preprocessing ...\n", + " 70065 [cnmf.py: fit():478] [1655509] using 5000 block_size_temp\n", + " 70066 [cnmf.py: fit():449] [1655528] (8000, 41, 41)\n", + " 70066 [cnmf.py: fit():477] [1655542] using 400 pixels per process\n", + " 70067 [cnmf.py: fit():466] [1655539] Using 1 processes\n", + " 70066 [cnmf.py: fit():481] [1655536] preprocessing ...\n", + " 70069 [cnmf.py: fit():478] [1655520] using 5000 block_size_temp\n", + " 70069 [cnmf.py: fit():466] [1655493] Using 1 processes\n", + " 70068 [cnmf.py: fit():477] [1655561] using 400 pixels per process\n", + " 70068 [cnmf.py: fit():477] [1655555] using 400 pixels per process\n", + " 70068 [cnmf.py: fit():477] [1655504] using 400 pixels per process\n", + " 70069 [cnmf.py: fit():466] [1655503] Using 1 processes\n", + " 70071 [cnmf.py: fit():478] [1655547] using 5000 block_size_temp\n", + " 70071 [cnmf.py: fit():477] [1655474] using 400 pixels per process\n", + " 70071 [cnmf.py: fit():477] [1655544] using 400 pixels per process\n", + " 70070 [cnmf.py: fit():477] [1655502] using 400 pixels per process\n", + " 70073 [cnmf.py: fit():481] [1655490] preprocessing ...\n", + " 70073 [cnmf.py: fit():481] [1655537] preprocessing ...\n", + " 70074 [cnmf.py: fit():478] [1655517] using 5000 block_size_temp\n", + " 70073 [cnmf.py: fit():466] [1655491] Using 1 processes\n", + " 70074 [cnmf.py: fit():481] [1655543] preprocessing ...\n", + " 70072 [cnmf.py: fit():481] [1655473] preprocessing ...\n", + " 70072 [cnmf.py: fit():481] [1655494] preprocessing ...\n", + " 70075 [cnmf.py: fit():481] [1655525] preprocessing ...\n", + " 70075 [cnmf.py: fit():481] [1655522] preprocessing ...\n", + " 70075 [cnmf.py: fit():466] [1655548] Using 1 processes\n", + " 70076 [cnmf.py: fit():478] [1655518] using 5000 block_size_temp\n", + " 70076 [cnmf.py: fit():481] [1655519] preprocessing ...\n", + " 70079 [cnmf.py: fit():466] [1655475] Using 1 processes\n", + " 70084 [cnmf.py: fit():478] [1655523] using 5000 block_size_temp\n", + " 70084 [cnmf.py: fit():481] [1655557] preprocessing ...\n", + " 70083 [cnmf.py: fit():477] [1655472] using 400 pixels per process\n", + " 70085 [cnmf.py: fit():466] [1655501] Using 1 processes\n", + " 70085 [cnmf.py: fit():477] [1655559] using 400 pixels per process\n", + " 70085 [cnmf.py: fit():481] [1655540] preprocessing ...\n", + " 70086 [cnmf.py: fit():481] [1655500] preprocessing ...\n", + " 70092 [cnmf.py: fit():478] [1655514] using 5000 block_size_temp\n", + " 70091 [cnmf.py: fit():478] [1655486] using 5000 block_size_temp\n", + " 70092 [cnmf.py: fit():481] [1655529] preprocessing ...\n", + " 70093 [cnmf.py: fit():478] [1655541] using 5000 block_size_temp\n", + " 70093 [cnmf.py: fit():477] [1655545] using 400 pixels per process\n", + " 70094 [cnmf.py: fit():449] [1655563] (8000, 41, 41)\n", + " 70094 [cnmf.py: fit():477] [1655484] using 400 pixels per process\n", + " 70095 [cnmf.py: fit():477] [1655538] using 400 pixels per process\n", + " 70095 [cnmf.py: fit():478] [1655506] using 5000 block_size_temp\n", + " 70096 [cnmf.py: fit():478] [1655554] using 5000 block_size_temp\n", + " 70096 [cnmf.py: fit():478] [1655488] using 5000 block_size_temp\n", + " 70097 [cnmf.py: fit():477] [1655477] using 400 pixels per process\n", + " 70097 [pre_processing.py:interpolate_missing_data():41] [1655551] Checking for missing data entries (NaN)\n", + " 70097 [cnmf.py: fit():481] [1655534] preprocessing ...\n", + " 70103 [cnmf.py: fit():481] [1655489] preprocessing ...\n", + " 70104 [cnmf.py: fit():478] [1655479] using 5000 block_size_temp\n", + " 70104 [cnmf.py: fit():481] [1655480] preprocessing ...\n", + " 70105 [cnmf.py: fit():478] [1655492] using 5000 block_size_temp\n", + " 70105 [cnmf.py: fit():478] [1655527] using 5000 block_size_temp\n", + " 70119 [cnmf.py: fit():477] [1655496] using 400 pixels per process\n", + " 70120 [cnmf.py: fit():478] [1655499] using 5000 block_size_temp\n", + " 70120 [cnmf.py: fit():478] [1655521] using 5000 block_size_temp\n", + " 70121 [cnmf.py: fit():481] [1655482] preprocessing ...\n", + " 70121 [cnmf.py: fit():478] [1655562] using 5000 block_size_temp\n", + " 70122 [cnmf.py: fit():478] [1655481] using 5000 block_size_temp\n", + " 70122 [cnmf.py: fit():481] [1655526] preprocessing ...\n", + " 70123 [cnmf.py: fit():478] [1655487] using 5000 block_size_temp\n", + " 70124 [cnmf.py: fit():478] [1655564] using 5000 block_size_temp\n", + " 70123 [cnmf.py: fit():481] [1655533] preprocessing ...\n", + " 70124 [cnmf.py: fit():481] [1655511] preprocessing ...\n", + " 70124 [cnmf.py: fit():478] [1655532] using 5000 block_size_temp\n", + " 70125 [cnmf.py: fit():481] [1655512] preprocessing ...\n", + " 70125 [cnmf.py: fit():478] [1655483] using 5000 block_size_temp\n", + " 70126 [cnmf.py: fit():481] [1655508] preprocessing ...\n", + " 70126 [cnmf.py: fit():477] [1655505] using 400 pixels per process\n", + " 70155 [cnmf.py: fit():478] [1655516] using 5000 block_size_temp\n", + " 70140 [cnmf.py: fit():481] [1655507] preprocessing ...\n", + " 70156 [cnmf.py: fit():478] [1655485] using 5000 block_size_temp\n", + " 70158 [cnmf.py: fit():481] [1655558] preprocessing ...\n", + " 70159 [cnmf.py: fit():481] [1655513] preprocessing ...\n", + " 70158 [cnmf.py: fit():477] [1655510] using 400 pixels per process\n", + " 70157 [cnmf.py: fit():478] [1655498] using 5000 block_size_temp\n", + " 70158 [cnmf.py: fit():478] [1655469] using 5000 block_size_temp\n", + " 70157 [cnmf.py: fit():481] [1655497] preprocessing ...\n", + " 70160 [cnmf.py: fit():481] [1655524] preprocessing ...\n", + " 70175 [cnmf.py: fit():481] [1655560] preprocessing ...\n", + " 70159 [cnmf.py: fit():466] [1655556] Using 1 processes\n", + " 70176 [cnmf.py: fit():478] [1655495] using 5000 block_size_temp\n", + " 70180 [cnmf.py: fit():477] [1655478] using 400 pixels per process\n", + " 70179 [cnmf.py: fit():478] [1655476] using 5000 block_size_temp\n", + " 70188 [cnmf.py: fit():481] [1655509] preprocessing ...\n", + " 70187 [pre_processing.py:interpolate_missing_data():41] [1655470] Checking for missing data entries (NaN)\n", + " 70199 [cnmf.py: fit():481] [1655520] preprocessing ...\n", + " 70198 [cnmf.py: fit():478] [1655504] using 5000 block_size_temp\n", + " 70197 [cnmf.py: fit():478] [1655555] using 5000 block_size_temp\n", + " 70198 [cnmf.py: fit():478] [1655561] using 5000 block_size_temp\n", + " 70198 [cnmf.py: fit():477] [1655503] using 400 pixels per process\n", + " 70197 [pre_processing.py:interpolate_missing_data():41] [1655536] Checking for missing data entries (NaN)\n", + " 70197 [cnmf.py: fit():477] [1655493] using 400 pixels per process\n", + " 70196 [cnmf.py: fit():478] [1655542] using 5000 block_size_temp\n", + " 70196 [cnmf.py: fit():466] [1655528] Using 1 processes\n", + " 70196 [cnmf.py: fit():477] [1655539] using 400 pixels per process\n", + " 70204 [cnmf.py: fit():478] [1655544] using 5000 block_size_temp\n", + " 70204 [cnmf.py: fit():478] [1655474] using 5000 block_size_temp\n", + " 70204 [cnmf.py: fit():478] [1655502] using 5000 block_size_temp\n", + " 70203 [cnmf.py: fit():481] [1655547] preprocessing ...\n", + " 70207 [pre_processing.py:interpolate_missing_data():41] [1655543] Checking for missing data entries (NaN)\n", + " 70207 [pre_processing.py:interpolate_missing_data():41] [1655473] Checking for missing data entries (NaN)\n", + " 70206 [cnmf.py: fit():477] [1655491] using 400 pixels per process\n", + " 70207 [pre_processing.py:interpolate_missing_data():41] [1655494] Checking for missing data entries (NaN)\n", + " 70206 [pre_processing.py:interpolate_missing_data():41] [1655537] Checking for missing data entries (NaN)\n", + " 70206 [pre_processing.py:interpolate_missing_data():41] [1655490] Checking for missing data entries (NaN)\n", + " 70205 [cnmf.py: fit():481] [1655517] preprocessing ...\n", + " 70210 [cnmf.py: fit():477] [1655475] using 400 pixels per process\n", + " 70209 [cnmf.py: fit():477] [1655548] using 400 pixels per process\n", + " 70209 [pre_processing.py:interpolate_missing_data():41] [1655519] Checking for missing data entries (NaN)\n", + " 70210 [cnmf.py: fit():481] [1655518] preprocessing ...\n", + " 70209 [pre_processing.py:interpolate_missing_data():41] [1655522] Checking for missing data entries (NaN)\n", + " 70208 [pre_processing.py:interpolate_missing_data():41] [1655525] Checking for missing data entries (NaN)\n", + " 70216 [cnmf.py: fit():478] [1655472] using 5000 block_size_temp\n", + " 70216 [cnmf.py: fit():477] [1655501] using 400 pixels per process\n", + " 70216 [pre_processing.py:interpolate_missing_data():41] [1655557] Checking for missing data entries (NaN)\n", + " 70215 [cnmf.py: fit():481] [1655523] preprocessing ...\n", + " 70217 [cnmf.py: fit():478] [1655559] using 5000 block_size_temp\n", + " 70218 [pre_processing.py:interpolate_missing_data():41] [1655500] Checking for missing data entries (NaN)\n", + " 70217 [pre_processing.py:interpolate_missing_data():41] [1655540] Checking for missing data entries (NaN)\n", + " 70219 [pre_processing.py:interpolate_missing_data():41] [1655529] Checking for missing data entries (NaN)\n", + " 70218 [cnmf.py: fit():481] [1655486] preprocessing ...\n", + " 70219 [cnmf.py: fit():481] [1655514] preprocessing ...\n", + " 70220 [cnmf.py: fit():481] [1655541] preprocessing ...\n", + " 70221 [cnmf.py: fit():478] [1655484] using 5000 block_size_temp\n", + " 70220 [cnmf.py: fit():466] [1655563] Using 1 processes\n", + " 70220 [cnmf.py: fit():478] [1655545] using 5000 block_size_temp\n", + " 70221 [cnmf.py: fit():478] [1655538] using 5000 block_size_temp\n", + " 70222 [cnmf.py: fit():481] [1655506] preprocessing ...\n", + " 70222 [cnmf.py: fit():481] [1655554] preprocessing ...\n", + " 70223 [cnmf.py: fit():481] [1655488] preprocessing ...\n", + " 70223 [cnmf.py: fit():478] [1655477] using 5000 block_size_temp\n", + " 70239 [pre_processing.py:interpolate_missing_data():41] [1655534] Checking for missing data entries (NaN)\n", + " 70240 [pre_processing.py:interpolate_missing_data():41] [1655489] Checking for missing data entries (NaN)\n", + " 70242 [pre_processing.py:interpolate_missing_data():41] [1655480] Checking for missing data entries (NaN)\n", + " 70242 [cnmf.py: fit():481] [1655527] preprocessing ...\n", + " 70241 [cnmf.py: fit():481] [1655492] preprocessing ...\n", + " 70241 [cnmf.py: fit():481] [1655479] preprocessing ...\n", + " 70248 [cnmf.py: fit():481] [1655499] preprocessing ...\n", + " 70248 [cnmf.py: fit():478] [1655496] using 5000 block_size_temp\n", + " 70249 [pre_processing.py:interpolate_missing_data():41] [1655482] Checking for missing data entries (NaN)\n", + " 70249 [cnmf.py: fit():481] [1655521] preprocessing ...\n", + " 70256 [cnmf.py: fit():481] [1655481] preprocessing ...\n", + " 70256 [pre_processing.py:interpolate_missing_data():41] [1655526] Checking for missing data entries (NaN)\n", + " 70256 [cnmf.py: fit():481] [1655562] preprocessing ...\n", + " 70258 [pre_processing.py:interpolate_missing_data():41] [1655533] Checking for missing data entries (NaN)\n", + " 70257 [cnmf.py: fit():481] [1655564] preprocessing ...\n", + " 70260 [cnmf.py: fit():478] [1655505] using 5000 block_size_temp\n", + " 70258 [pre_processing.py:interpolate_missing_data():41] [1655511] Checking for missing data entries (NaN)\n", + " 70259 [cnmf.py: fit():481] [1655532] preprocessing ...\n", + " 70259 [cnmf.py: fit():481] [1655483] preprocessing ...\n", + " 70259 [pre_processing.py:interpolate_missing_data():41] [1655512] Checking for missing data entries (NaN)\n", + " 70260 [pre_processing.py:interpolate_missing_data():41] [1655508] Checking for missing data entries (NaN)\n", + " 70257 [cnmf.py: fit():481] [1655487] preprocessing ...\n", + " 70264 [pre_processing.py:interpolate_missing_data():41] [1655507] Checking for missing data entries (NaN)\n", + " 70263 [cnmf.py: fit():481] [1655516] preprocessing ...\n", + " 70264 [cnmf.py: fit():481] [1655485] preprocessing ...\n", + " 70276 [pre_processing.py:interpolate_missing_data():41] [1655513] Checking for missing data entries (NaN)\n", + " 70276 [pre_processing.py:interpolate_missing_data():41] [1655558] Checking for missing data entries (NaN)\n", + " 70276 [cnmf.py: fit():478] [1655510] using 5000 block_size_temp\n", + " 70277 [cnmf.py: fit():481] [1655469] preprocessing ...\n", + " 70277 [pre_processing.py:interpolate_missing_data():41] [1655497] Checking for missing data entries (NaN)\n", + " 70275 [cnmf.py: fit():481] [1655498] preprocessing ...\n", + " 70284 [pre_processing.py:interpolate_missing_data():41] [1655524] Checking for missing data entries (NaN)\n", + " 70283 [pre_processing.py:interpolate_missing_data():41] [1655560] Checking for missing data entries (NaN)\n", + " 70284 [cnmf.py: fit():477] [1655556] using 400 pixels per process\n", + " 70285 [cnmf.py: fit():481] [1655495] preprocessing ...\n", + " 70285 [cnmf.py: fit():481] [1655476] preprocessing ...\n", + " 70285 [cnmf.py: fit():478] [1655478] using 5000 block_size_temp\n", + " 70286 [pre_processing.py:interpolate_missing_data():41] [1655509] Checking for missing data entries (NaN)\n", + " 70301 [cnmf.py: fit():478] [1655503] using 5000 block_size_temp\n", + " 70301 [cnmf.py: fit():481] [1655542] preprocessing ...\n", + " 70315 [cnmf.py: fit():481] [1655555] preprocessing ...\n", + " 70316 [cnmf.py: fit():481] [1655561] preprocessing ...\n", + " 70300 [cnmf.py: fit():478] [1655493] using 5000 block_size_temp\n", + " 70316 [cnmf.py: fit():477] [1655528] using 400 pixels per process\n", + " 70316 [pre_processing.py:interpolate_missing_data():41] [1655520] Checking for missing data entries (NaN)\n", + " 70301 [cnmf.py: fit():481] [1655504] preprocessing ...\n", + " 70319 [pre_processing.py:interpolate_missing_data():41] [1655547] Checking for missing data entries (NaN)\n", + " 70318 [cnmf.py: fit():481] [1655502] preprocessing ...\n", + " 70318 [cnmf.py: fit():481] [1655474] preprocessing ...\n", + " 70318 [cnmf.py: fit():481] [1655544] preprocessing ...\n", + " 70317 [cnmf.py: fit():478] [1655539] using 5000 block_size_temp\n", + " 70383 [cnmf.py: fit():478] [1655491] using 5000 block_size_temp\n", + " 70403 [pre_processing.py:interpolate_missing_data():41] [1655517] Checking for missing data entries (NaN)\n", + " 70410 [cnmf.py: fit():478] [1655548] using 5000 block_size_temp\n", + " 70430 [cnmf.py: fit():478] [1655475] using 5000 block_size_temp\n", + " 70410 [pre_processing.py:interpolate_missing_data():41] [1655518] Checking for missing data entries (NaN)\n", + " 70468 [cnmf.py: fit():478] [1655501] using 5000 block_size_temp\n", + " 70485 [pre_processing.py:interpolate_missing_data():41] [1655523] Checking for missing data entries (NaN)\n", + " 70490 [cnmf.py: fit():481] [1655559] preprocessing ...\n", + " 70468 [cnmf.py: fit():481] [1655472] preprocessing ...\n", + " 70524 [pre_processing.py:interpolate_missing_data():41] [1655486] Checking for missing data entries (NaN)\n", + " 70523 [pre_processing.py:interpolate_missing_data():41] [1655514] Checking for missing data entries (NaN)\n", + " 70545 [pre_processing.py:interpolate_missing_data():41] [1655554] Checking for missing data entries (NaN)\n", + " 70544 [cnmf.py: fit():481] [1655545] preprocessing ...\n", + " 70544 [cnmf.py: fit():481] [1655484] preprocessing ...\n", + " 70545 [cnmf.py: fit():481] [1655538] preprocessing ...\n", + " 70543 [cnmf.py: fit():477] [1655563] using 400 pixels per process\n", + " 70546 [pre_processing.py:interpolate_missing_data():41] [1655488] Checking for missing data entries (NaN)\n", + " 70545 [pre_processing.py:interpolate_missing_data():41] [1655506] Checking for missing data entries (NaN)\n", + " 70543 [pre_processing.py:interpolate_missing_data():41] [1655541] Checking for missing data entries (NaN)\n", + " 70552 [cnmf.py: fit():481] [1655477] preprocessing ...\n", + " 70584 [pre_processing.py:interpolate_missing_data():41] [1655492] Checking for missing data entries (NaN)\n", + " 70602 [pre_processing.py:interpolate_missing_data():41] [1655479] Checking for missing data entries (NaN)\n", + " 70583 [pre_processing.py:interpolate_missing_data():41] [1655527] Checking for missing data entries (NaN)\n", + " 70607 [pre_processing.py:interpolate_missing_data():41] [1655499] Checking for missing data entries (NaN)\n", + " 70608 [cnmf.py: fit():481] [1655496] preprocessing ...\n", + " 70625 [pre_processing.py:interpolate_missing_data():41] [1655521] Checking for missing data entries (NaN)\n", + " 70651 [pre_processing.py:interpolate_missing_data():41] [1655562] Checking for missing data entries (NaN)\n", + " 70631 [pre_processing.py:interpolate_missing_data():41] [1655481] Checking for missing data entries (NaN)\n", + " 70735 [pre_processing.py:interpolate_missing_data():41] [1655487] Checking for missing data entries (NaN)\n", + " 70715 [pre_processing.py:interpolate_missing_data():41] [1655483] Checking for missing data entries (NaN)\n", + " 70736 [cnmf.py: fit():481] [1655505] preprocessing ...\n", + " 70695 [pre_processing.py:interpolate_missing_data():41] [1655532] Checking for missing data entries (NaN)\n", + " 70674 [pre_processing.py:interpolate_missing_data():41] [1655564] Checking for missing data entries (NaN)\n", + " 70753 [pre_processing.py:interpolate_missing_data():41] [1655516] Checking for missing data entries (NaN)\n", + " 70754 [pre_processing.py:interpolate_missing_data():41] [1655485] Checking for missing data entries (NaN)\n", + " 70795 [pre_processing.py:interpolate_missing_data():41] [1655498] Checking for missing data entries (NaN)\n", + " 70774 [cnmf.py: fit():481] [1655510] preprocessing ...\n", + " 70795 [pre_processing.py:interpolate_missing_data():41] [1655469] Checking for missing data entries (NaN)\n", + " 70856 [pre_processing.py:interpolate_missing_data():41] [1655476] Checking for missing data entries (NaN)\n", + " 70855 [cnmf.py: fit():481] [1655478] preprocessing ...\n", + " 70855 [pre_processing.py:interpolate_missing_data():41] [1655495] Checking for missing data entries (NaN)\n", + " 70854 [cnmf.py: fit():478] [1655556] using 5000 block_size_temp\n", + " 70897 [cnmf.py: fit():478] [1655528] using 5000 block_size_temp\n", + " 70897 [pre_processing.py:interpolate_missing_data():41] [1655561] Checking for missing data entries (NaN)\n", + " 70897 [cnmf.py: fit():481] [1655493] preprocessing ...\n", + " 70898 [pre_processing.py:interpolate_missing_data():41] [1655504] Checking for missing data entries (NaN)\n", + " 70897 [cnmf.py: fit():481] [1655503] preprocessing ...\n", + " 70896 [pre_processing.py:interpolate_missing_data():41] [1655542] Checking for missing data entries (NaN)\n", + " 70896 [pre_processing.py:interpolate_missing_data():41] [1655555] Checking for missing data entries (NaN)\n", + " 70941 [cnmf.py: fit():481] [1655539] preprocessing ...\n", + " 70925 [pre_processing.py:interpolate_missing_data():41] [1655544] Checking for missing data entries (NaN)\n", + " 70924 [pre_processing.py:interpolate_missing_data():41] [1655502] Checking for missing data entries (NaN)\n", + " 70924 [pre_processing.py:interpolate_missing_data():41] [1655474] Checking for missing data entries (NaN)\n", + " 70947 [cnmf.py: fit():481] [1655491] preprocessing ...\n", + " 70974 [cnmf.py: fit():481] [1655475] preprocessing ...\n", + " 70974 [cnmf.py: fit():481] [1655548] preprocessing ...\n", + " 71016 [pre_processing.py:interpolate_missing_data():41] [1655559] Checking for missing data entries (NaN)\n", + " 71015 [pre_processing.py:interpolate_missing_data():41] [1655472] Checking for missing data entries (NaN)\n", + " 71015 [cnmf.py: fit():481] [1655501] preprocessing ...\n", + " 71147 [pre_processing.py:interpolate_missing_data():41] [1655538] Checking for missing data entries (NaN)\n", + " 71107 [pre_processing.py:interpolate_missing_data():41] [1655484] Checking for missing data entries (NaN)\n", + " 71076 [cnmf.py: fit():478] [1655563] using 5000 block_size_temp\n", + " 71076 [pre_processing.py:interpolate_missing_data():41] [1655545] Checking for missing data entries (NaN)\n", + " 71155 [pre_processing.py:interpolate_missing_data():41] [1655477] Checking for missing data entries (NaN)\n", + " 71195 [pre_processing.py:interpolate_missing_data():41] [1655496] Checking for missing data entries (NaN)\n", + " 71319 [pre_processing.py:interpolate_missing_data():41] [1655505] Checking for missing data entries (NaN)\n", + " 71399 [pre_processing.py:interpolate_missing_data():41] [1655510] Checking for missing data entries (NaN)\n", + " 71423 [pre_processing.py:interpolate_missing_data():41] [1655478] Checking for missing data entries (NaN)\n", + " 71455 [cnmf.py: fit():481] [1655556] preprocessing ...\n", + " 71511 [cnmf.py: fit():481] [1655528] preprocessing ...\n", + " 71512 [pre_processing.py:interpolate_missing_data():41] [1655503] Checking for missing data entries (NaN)\n", + " 71464 [pre_processing.py:interpolate_missing_data():41] [1655493] Checking for missing data entries (NaN)\n", + " 71547 [pre_processing.py:interpolate_missing_data():41] [1655539] Checking for missing data entries (NaN)\n", + " 71592 [pre_processing.py:interpolate_missing_data():41] [1655491] Checking for missing data entries (NaN)\n", + " 71592 [pre_processing.py:interpolate_missing_data():41] [1655548] Checking for missing data entries (NaN)\n", + " 71592 [pre_processing.py:interpolate_missing_data():41] [1655475] Checking for missing data entries (NaN)\n", + " 71623 [pre_processing.py:interpolate_missing_data():41] [1655501] Checking for missing data entries (NaN)\n", + " 71640 [cnmf.py: fit():481] [1655563] preprocessing ...\n", + " 71895 [pre_processing.py:interpolate_missing_data():41] [1655556] Checking for missing data entries (NaN)\n", + " 71939 [pre_processing.py:interpolate_missing_data():41] [1655528] Checking for missing data entries (NaN)\n", + " 72162 [pre_processing.py:interpolate_missing_data():41] [1655563] Checking for missing data entries (NaN)\n", + " 74658 [cnmf.py: fit():484] [1655515] initializing ...\n", + " 75019 [initialization.py:initialize_components():292] [1655515] Variance Normalization\n", + " 75041 [cnmf.py: fit():484] [1655531] initializing ...\n", + " 75066 [cnmf.py: fit():484] [1655549] initializing ...\n", + " 75102 [cnmf.py: fit():484] [1655553] initializing ...\n", + " 75244 [cnmf.py: fit():484] [1655535] initializing ...\n", + " 75310 [cnmf.py: fit():484] [1655552] initializing ...\n", + " 75352 [initialization.py:initialize_components():292] [1655531] Variance Normalization\n", + " 75367 [initialization.py:initialize_components():292] [1655549] Variance Normalization\n", + " 75407 [initialization.py:initialize_components():292] [1655553] Variance Normalization\n", + " 75489 [cnmf.py: fit():484] [1655546] initializing ...\n", + " 75523 [initialization.py:initialize_components():292] [1655535] Variance Normalization\n", + " 75553 [cnmf.py: fit():484] [1655550] initializing ...\n", + " 75560 [cnmf.py: fit():484] [1655530] initializing ...\n", + " 75507 [cnmf.py: fit():484] [1655551] initializing ...\n", + " 75659 [initialization.py:initialize_components():292] [1655552] Variance Normalization\n", + " 75759 [initialization.py:initialize_components():292] [1655546] Variance Normalization\n", + " 75774 [cnmf.py: fit():484] [1655519] initializing ...\n", + " 75802 [cnmf.py: fit():484] [1655543] initializing ...\n", + " 75808 [initialization.py:initialize_components():292] [1655550] Variance Normalization\n", + " 75823 [initialization.py:initialize_components():292] [1655530] Variance Normalization\n", + " 75826 [cnmf.py: fit():484] [1655525] initializing ...\n", + " 75832 [cnmf.py: fit():484] [1655536] initializing ...\n", + " 75836 [cnmf.py: fit():484] [1655537] initializing ...\n", + " 75873 [cnmf.py: fit():484] [1655470] initializing ...\n", + " 75909 [cnmf.py: fit():484] [1655490] initializing ...\n", + " 75909 [initialization.py:initialize_components():292] [1655551] Variance Normalization\n", + " 75815 [cnmf.py: fit():484] [1655480] initializing ...\n", + " 75933 [cnmf.py: fit():484] [1655540] initializing ...\n", + " 75918 [cnmf.py: fit():484] [1655508] initializing ...\n", + " 75946 [cnmf.py: fit():484] [1655511] initializing ...\n", + " 75830 [cnmf.py: fit():484] [1655533] initializing ...\n", + " 75974 [cnmf.py: fit():484] [1655507] initializing ...\n", + " 76009 [cnmf.py: fit():484] [1655534] initializing ...\n", + " 75878 [cnmf.py: fit():484] [1655497] initializing ...\n", + " 76010 [cnmf.py: fit():484] [1655494] initializing ...\n", + " 76020 [cnmf.py: fit():484] [1655522] initializing ...\n", + " 76045 [cnmf.py: fit():484] [1655524] initializing ...\n", + " 75695 [cnmf.py: fit():484] [1655473] initializing ...\n", + " 76054 [cnmf.py: fit():484] [1655529] initializing ...\n", + " 76061 [cnmf.py: fit():484] [1655509] initializing ...\n", + " 76075 [cnmf.py: fit():484] [1655500] initializing ...\n", + " 76083 [initialization.py:initialize_components():292] [1655519] Variance Normalization\n", + " 76053 [cnmf.py: fit():484] [1655523] initializing ...\n", + " 75755 [cnmf.py: fit():484] [1655557] initializing ...\n", + " 76084 [initialization.py:initialize_components():292] [1655543] Variance Normalization\n", + " 76092 [cnmf.py: fit():484] [1655482] initializing ...\n", + " 76094 [initialization.py:initialize_components():292] [1655525] Variance Normalization\n", + " 76098 [initialization.py:initialize_components():292] [1655536] Variance Normalization\n", + " 76099 [initialization.py:initialize_components():292] [1655537] Variance Normalization\n", + " 76114 [cnmf.py: fit():484] [1655520] initializing ...\n", + " 76049 [cnmf.py: fit():484] [1655514] initializing ...\n", + " 76121 [cnmf.py: fit():484] [1655554] initializing ...\n", + " 76122 [initialization.py:initialize_components():292] [1655470] Variance Normalization\n", + " 76122 [cnmf.py: fit():484] [1655489] initializing ...\n", + " 76123 [cnmf.py: fit():484] [1655512] initializing ...\n", + " 76130 [cnmf.py: fit():484] [1655488] initializing ...\n", + " 76131 [cnmf.py: fit():484] [1655526] initializing ...\n", + " 76135 [initialization.py:initialize_components():292] [1655490] Variance Normalization\n", + " 76141 [cnmf.py: fit():484] [1655517] initializing ...\n", + " 76155 [initialization.py:initialize_components():292] [1655480] Variance Normalization\n", + " 76158 [cnmf.py: fit():484] [1655506] initializing ...\n", + " 76170 [initialization.py:initialize_components():292] [1655540] Variance Normalization\n", + " 76170 [cnmf.py: fit():484] [1655513] initializing ...\n", + " 76173 [cnmf.py: fit():484] [1655492] initializing ...\n", + " 76098 [cnmf.py: fit():484] [1655562] initializing ...\n", + " 76175 [cnmf.py: fit():484] [1655486] initializing ...\n", + " 76183 [initialization.py:initialize_components():292] [1655511] Variance Normalization\n", + " 76184 [initialization.py:initialize_components():292] [1655508] Variance Normalization\n", + " 76184 [initialization.py:initialize_components():292] [1655533] Variance Normalization\n", + " 76202 [cnmf.py: fit():484] [1655560] initializing ...\n", + " 76202 [cnmf.py: fit():484] [1655564] initializing ...\n", + " 75903 [cnmf.py: fit():484] [1655558] initializing ...\n", + " 76194 [cnmf.py: fit():484] [1655483] initializing ...\n", + " 76214 [cnmf.py: fit():484] [1655527] initializing ...\n", + " 76214 [initialization.py:initialize_components():292] [1655507] Variance Normalization\n", + " 76119 [cnmf.py: fit():484] [1655469] initializing ...\n", + " 76224 [initialization.py:initialize_components():292] [1655497] Variance Normalization\n", + " 76225 [initialization.py:initialize_components():292] [1655534] Variance Normalization\n", + " 76169 [cnmf.py: fit():484] [1655498] initializing ...\n", + " 76225 [initialization.py:initialize_components():292] [1655494] Variance Normalization\n", + " 76235 [initialization.py:initialize_components():292] [1655522] Variance Normalization\n", + " 75963 [cnmf.py: fit():484] [1655547] initializing ...\n", + " 76260 [cnmf.py: fit():484] [1655541] initializing ...\n", + " 76262 [map_reduce.py: cnmf_patches():78] [1655515] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158880_179400START\n", + " 76242 [cnmf.py: fit():484] [1655555] initializing ...\n", + " 76268 [cnmf.py: fit():484] [1655516] initializing ...\n", + " 76278 [initialization.py:initialize_components():292] [1655473] Variance Normalization\n", + " 76279 [cnmf.py: fit():484] [1655479] initializing ...\n", + " 76165 [cnmf.py: fit():484] [1655476] initializing ...\n", + " 76284 [initialization.py:initialize_components():292] [1655524] Variance Normalization\n", + " 76265 [cnmf.py: fit():484] [1655542] initializing ...\n", + " 76284 [initialization.py:initialize_components():292] [1655529] Variance Normalization\n", + " 76235 [cnmf.py: fit():484] [1655502] initializing ...\n", + " 76199 [cnmf.py: fit():484] [1655544] initializing ...\n", + " 76287 [cnmf.py: fit():484] [1655495] initializing ...\n", + " 76287 [initialization.py:initialize_components():292] [1655509] Variance Normalization\n", + " 76293 [cnmf.py: fit():484] [1655532] initializing ...\n", + " 76035 [cnmf.py: fit():484] [1655518] initializing ...\n", + " 76294 [initialization.py:initialize_components():292] [1655500] Variance Normalization\n", + " 76300 [initialization.py:initialize_components():292] [1655557] Variance Normalization\n", + " 76300 [initialization.py:initialize_components():292] [1655523] Variance Normalization\n", + " 76308 [cnmf.py: fit():484] [1655499] initializing ...\n", + " 76321 [cnmf.py: fit():484] [1655504] initializing ...\n", + " 76321 [initialization.py:initialize_components():292] [1655482] Variance Normalization\n", + " 76277 [cnmf.py: fit():484] [1655474] initializing ...\n", + " 76349 [cnmf.py: fit():484] [1655487] initializing ...\n", + " 76350 [initialization.py:initialize_components():292] [1655514] Variance Normalization\n", + " 76350 [initialization.py:initialize_components():292] [1655520] Variance Normalization\n", + " 76351 [initialization.py:initialize_components():292] [1655554] Variance Normalization\n", + " 76359 [initialization.py:initialize_components():292] [1655512] Variance Normalization\n", + " 76360 [initialization.py:initialize_components():292] [1655489] Variance Normalization\n", + " 76369 [cnmf.py: fit():484] [1655485] initializing ...\n", + " 76247 [cnmf.py: fit():484] [1655472] initializing ...\n", + " 76369 [initialization.py:initialize_components():292] [1655488] Variance Normalization\n", + " 76370 [initialization.py:initialize_components():292] [1655526] Variance Normalization\n", + " 76015 [cnmf.py: fit():484] [1655521] initializing ...\n", + " 76391 [initialization.py:initialize_components():292] [1655517] Variance Normalization\n", + " 76400 [initialization.py:initialize_components():292] [1655506] Variance Normalization\n", + " 76404 [cnmf.py: fit():484] [1655481] initializing ...\n", + " 76412 [initialization.py:initialize_components():292] [1655492] Variance Normalization\n", + " 76413 [initialization.py:initialize_components():292] [1655562] Variance Normalization\n", + " 76413 [initialization.py:initialize_components():292] [1655513] Variance Normalization\n", + " 76414 [initialization.py:initialize_components():292] [1655486] Variance Normalization\n", + " 76428 [map_reduce.py: cnmf_patches():78] [1655531] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174240_194760START\n", + " 76440 [map_reduce.py: cnmf_patches():78] [1655535] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189600_210120START\n", + " 76441 [initialization.py:initialize_components():292] [1655560] Variance Normalization\n", + " 76442 [initialization.py:initialize_components():292] [1655558] Variance Normalization\n", + " 76442 [initialization.py:initialize_components():292] [1655564] Variance Normalization\n", + " 76447 [initialization.py:initialize_components():292] [1655483] Variance Normalization\n", + " 76448 [initialization.py:initialize_components():292] [1655527] Variance Normalization\n", + " 76459 [cnmf.py: fit():484] [1655484] initializing ...\n", + " 76479 [initialization.py:initialize_components():292] [1655469] Variance Normalization\n", + " 76485 [cnmf.py: fit():484] [1655559] initializing ...\n", + " 76485 [initialization.py:initialize_components():292] [1655498] Variance Normalization\n", + " 76386 [cnmf.py: fit():484] [1655505] initializing ...\n", + " 76487 [map_reduce.py: cnmf_patches():78] [1655549] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204960_225480START\n", + " 76487 [cnmf.py: fit():484] [1655561] initializing ...\n", + " 76502 [cnmf.py: fit():484] [1655503] initializing ...\n", + " 76502 [initialization.py:initialize_components():292] [1655547] Variance Normalization\n", + " 76505 [cnmf.py: fit():484] [1655496] initializing ...\n", + " 76511 [initialization.py:initialize_components():292] [1655555] Variance Normalization\n", + " 76506 [initialization.py:initialize_components():292] [1655541] Variance Normalization\n", + " 76506 [map_reduce.py: cnmf_patches():80] [1655515] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158880_179400Read file\n", + " 76507 [initialization.py:initialize_components():292] [1655516] Variance Normalization\n", + " 76513 [cnmf.py: fit():484] [1655545] initializing ...\n", + " 76575 [initialization.py:initialize_components():292] [1655532] Variance Normalization\n", + " 76567 [initialization.py:initialize_components():292] [1655518] Variance Normalization\n", + " 76517 [initialization.py:initialize_components():292] [1655479] Variance Normalization\n", + " 76520 [cnmf.py: fit():484] [1655493] initializing ...\n", + " 76521 [map_reduce.py: cnmf_patches():78] [1655553] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220320_240840START\n", + " 76531 [initialization.py:initialize_components():292] [1655476] Variance Normalization\n", + " 76540 [initialization.py:initialize_components():292] [1655502] Variance Normalization\n", + " 76540 [initialization.py:initialize_components():292] [1655542] Variance Normalization\n", + " 76547 [initialization.py:initialize_components():292] [1655544] Variance Normalization\n", + " 76556 [initialization.py:initialize_components():292] [1655495] Variance Normalization\n", + " 76651 [cnmf.py: fit():484] [1655548] initializing ...\n", + " 76666 [initialization.py:initialize_components():292] [1655472] Variance Normalization\n", + " 76591 [initialization.py:initialize_components():292] [1655499] Variance Normalization\n", + " 76592 [initialization.py:initialize_components():292] [1655504] Variance Normalization\n", + " 76609 [initialization.py:initialize_components():292] [1655474] Variance Normalization\n", + " 76611 [cnmf.py: fit():484] [1655538] initializing ...\n", + " 76620 [initialization.py:initialize_components():292] [1655487] Variance Normalization\n", + " 76663 [initialization.py:initialize_components():292] [1655485] Variance Normalization\n", + " 76756 [map_reduce.py: cnmf_patches():80] [1655531] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174240_194760Read file\n", + " 76690 [cnmf.py: fit():484] [1655475] initializing ...\n", + " 76690 [initialization.py:initialize_components():292] [1655521] Variance Normalization\n", + " 76711 [initialization.py:initialize_components():292] [1655481] Variance Normalization\n", + " 76299 [cnmf.py: fit():484] [1655477] initializing ...\n", + " 76755 [cnmf.py: fit():484] [1655501] initializing ...\n", + " 76815 [initialization.py:initialize_components():292] [1655559] Variance Normalization\n", + " 76760 [map_reduce.py: cnmf_patches():80] [1655535] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189600_210120Read file\n", + " 76780 [map_reduce.py: cnmf_patches():78] [1655552] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235680_256200START\n", + " 76782 [cnmf.py: fit():484] [1655491] initializing ...\n", + " 76804 [cnmf.py: fit():484] [1655510] initializing ...\n", + " 76805 [initialization.py:initialize_components():292] [1655484] Variance Normalization\n", + " 76846 [map_reduce.py: cnmf_patches():78] [1655530] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236704_256712START\n", + " 76845 [initialization.py:initialize_components():292] [1655503] Variance Normalization\n", + " 76832 [initialization.py:initialize_components():292] [1655505] Variance Normalization\n", + " 76832 [initialization.py:initialize_components():292] [1655561] Variance Normalization\n", + " 76833 [cnmf.py: fit():484] [1655539] initializing ...\n", + " 76833 [map_reduce.py: cnmf_patches():80] [1655549] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204960_225480Read file\n", + " 76875 [initialization.py:initialize_components():292] [1655496] Variance Normalization\n", + " 76463 [cnmf.py: fit():484] [1655478] initializing ...\n", + " 76880 [initialization.py:initialize_components():292] [1655545] Variance Normalization\n", + " 76881 [map_reduce.py: cnmf_patches():78] [1655550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5310_25830START\n", + " 76888 [initialization.py:initialize_components():292] [1655493] Variance Normalization\n", + " 76889 [map_reduce.py: cnmf_patches():78] [1655546] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20670_41190START\n", + " 76890 [map_reduce.py: cnmf_patches():80] [1655553] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220320_240840Read file\n", + " 76950 [cnmf.py: fit():484] [1655528] initializing ...\n", + " 77003 [initialization.py:initialize_components():292] [1655538] Variance Normalization\n", + " 77059 [initialization.py:initialize_components():292] [1655548] Variance Normalization\n", + " 77069 [initialization.py:initialize_components():292] [1655475] Variance Normalization\n", + " 77098 [map_reduce.py: cnmf_patches():78] [1655551] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36030_56550START\n", + " 77107 [cnmf.py: fit():484] [1655556] initializing ...\n", + " 77109 [initialization.py:initialize_components():292] [1655477] Variance Normalization\n", + " 77110 [initialization.py:initialize_components():292] [1655501] Variance Normalization\n", + " 77132 [initialization.py:initialize_components():292] [1655491] Variance Normalization\n", + " 77133 [map_reduce.py: cnmf_patches():80] [1655552] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235680_256200Read file\n", + " 77143 [initialization.py:initialize_components():292] [1655510] Variance Normalization\n", + " 77147 [map_reduce.py: cnmf_patches():78] [1655537] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51390_71910START\n", + " 77168 [cnmf.py: fit():484] [1655563] initializing ...\n", + " 77186 [initialization.py:initialize_components():292] [1655539] Variance Normalization\n", + " 77202 [map_reduce.py: cnmf_patches():80] [1655530] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236704_256712Read file\n", + " 77228 [map_reduce.py: cnmf_patches():80] [1655550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5310_25830Read file\n", + " 77235 [initialization.py:initialize_components():292] [1655478] Variance Normalization\n", + " 77250 [map_reduce.py: cnmf_patches():80] [1655546] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20670_41190Read file\n", + " 77297 [map_reduce.py: cnmf_patches():78] [1655490] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128190_148710START\n", + " 77280 [map_reduce.py: cnmf_patches():78] [1655525] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66750_87270START\n", + " 77283 [map_reduce.py: cnmf_patches():78] [1655522] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82110_102630START\n", + " 77289 [map_reduce.py: cnmf_patches():78] [1655473] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97470_117990START\n", + " 77290 [map_reduce.py: cnmf_patches():78] [1655536] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112830_133350START\n", + " 77324 [map_reduce.py: cnmf_patches():78] [1655557] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220350_240870START\n", + " 77305 [map_reduce.py: cnmf_patches():78] [1655494] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143550_164070START\n", + " 77306 [map_reduce.py: cnmf_patches():78] [1655519] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158910_179430START\n", + " 77307 [map_reduce.py: cnmf_patches():78] [1655470] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174270_194790START\n", + " 77307 [initialization.py:initialize_components():292] [1655528] Variance Normalization\n", + " 77317 [map_reduce.py: cnmf_patches():78] [1655543] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189630_210150START\n", + " 77322 [map_reduce.py: cnmf_patches():78] [1655540] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204990_225510START\n", + " 77347 [map_reduce.py: cnmf_patches():78] [1655529] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235710_256230START\n", + " 77370 [map_reduce.py: cnmf_patches():78] [1655500] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236734_256742START\n", + " 77383 [map_reduce.py: cnmf_patches():78] [1655534] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5340_25860START\n", + " 77384 [map_reduce.py: cnmf_patches():80] [1655551] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36030_56550Read file\n", + " 77409 [map_reduce.py: cnmf_patches():78] [1655489] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20700_41220START\n", + " 77389 [initialization.py:initialize_components():292] [1655556] Variance Normalization\n", + " 77416 [map_reduce.py: cnmf_patches():78] [1655480] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36060_56580START\n", + " 77445 [map_reduce.py: cnmf_patches():78] [1655533] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143580_164100START\n", + " 77420 [map_reduce.py: cnmf_patches():78] [1655508] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51420_71940START\n", + " 77424 [map_reduce.py: cnmf_patches():78] [1655526] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66780_87300START\n", + " 77425 [map_reduce.py: cnmf_patches():78] [1655520] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82140_102660START\n", + " 77432 [map_reduce.py: cnmf_patches():78] [1655482] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97500_118020START\n", + " 77440 [map_reduce.py: cnmf_patches():78] [1655511] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112860_133380START\n", + " 77441 [map_reduce.py: cnmf_patches():78] [1655512] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128220_148740START\n", + " 77494 [map_reduce.py: cnmf_patches():78] [1655486] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235740_256260START\n", + " 77459 [map_reduce.py: cnmf_patches():80] [1655537] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51390_71910Read file\n", + " 77461 [map_reduce.py: cnmf_patches():78] [1655507] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158940_179460START\n", + " 77465 [map_reduce.py: cnmf_patches():78] [1655524] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174300_194820START\n", + " 77470 [map_reduce.py: cnmf_patches():78] [1655513] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189660_210180START\n", + " 77472 [map_reduce.py: cnmf_patches():78] [1655558] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205020_225540START\n", + " 77474 [initialization.py:initialize_components():292] [1655563] Variance Normalization\n", + " 77479 [map_reduce.py: cnmf_patches():78] [1655560] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220380_240900START\n", + " 77504 [map_reduce.py: cnmf_patches():78] [1655497] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236764_256772START\n", + " 77523 [map_reduce.py: cnmf_patches():78] [1655554] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5370_25890START\n", + " 77541 [map_reduce.py: cnmf_patches():78] [1655509] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20730_41250START\n", + " 77554 [map_reduce.py: cnmf_patches():80] [1655522] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82110_102630Read file\n", + " 77557 [map_reduce.py: cnmf_patches():80] [1655525] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66750_87270Read file\n", + " 77557 [map_reduce.py: cnmf_patches():80] [1655473] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97470_117990Read file\n", + " 77557 [map_reduce.py: cnmf_patches():80] [1655536] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112830_133350Read file\n", + " 77567 [map_reduce.py: cnmf_patches():78] [1655547] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36090_56610START\n", + " 77570 [map_reduce.py: cnmf_patches():80] [1655490] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128190_148710Read file\n", + " 77605 [map_reduce.py: cnmf_patches():78] [1655518] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82170_102690START\n", + " 77604 [map_reduce.py: cnmf_patches():78] [1655523] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66810_87330START\n", + " 77587 [map_reduce.py: cnmf_patches():80] [1655494] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143550_164070Read file\n", + " 77588 [map_reduce.py: cnmf_patches():80] [1655470] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174270_194790Read file\n", + " 77590 [map_reduce.py: cnmf_patches():80] [1655519] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158910_179430Read file\n", + " 77595 [map_reduce.py: cnmf_patches():80] [1655543] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189630_210150Read file\n", + " 77596 [map_reduce.py: cnmf_patches():80] [1655540] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204990_225510Read file\n", + " 77597 [map_reduce.py: cnmf_patches():78] [1655517] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51450_71970START\n", + " 77603 [map_reduce.py: cnmf_patches():80] [1655557] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220350_240870Read file\n", + " 77621 [map_reduce.py: cnmf_patches():78] [1655514] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97530_118050START\n", + " 77621 [map_reduce.py: cnmf_patches():80] [1655529] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235710_256230Read file\n", + " 77624 [map_reduce.py: cnmf_patches():78] [1655488] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112890_133410START\n", + " 77626 [map_reduce.py: cnmf_patches():78] [1655506] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128250_148770START\n", + " 77627 [map_reduce.py: cnmf_patches():80] [1655500] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236734_256742Read file\n", + " 77636 [map_reduce.py: cnmf_patches():78] [1655541] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143610_164130START\n", + " 77641 [map_reduce.py: cnmf_patches():80] [1655534] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5340_25860Read file\n", + " 77652 [map_reduce.py: cnmf_patches():78] [1655479] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158970_179490START\n", + " 77654 [map_reduce.py: cnmf_patches():78] [1655521] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174330_194850START\n", + " 77669 [map_reduce.py: cnmf_patches():80] [1655489] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20700_41220Read file\n", + " 77670 [map_reduce.py: cnmf_patches():80] [1655508] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51420_71940Read file\n", + " 77670 [map_reduce.py: cnmf_patches():80] [1655520] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82140_102660Read file\n", + " 77671 [map_reduce.py: cnmf_patches():80] [1655526] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66780_87300Read file\n", + " 77671 [map_reduce.py: cnmf_patches():80] [1655480] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36060_56580Read file\n", + " 77673 [map_reduce.py: cnmf_patches():78] [1655527] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189690_210210START\n", + " 77673 [map_reduce.py: cnmf_patches():80] [1655482] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97500_118020Read file\n", + " 77675 [map_reduce.py: cnmf_patches():78] [1655492] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205050_225570START\n", + " 77675 [map_reduce.py: cnmf_patches():80] [1655511] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112860_133380Read file\n", + " 77676 [map_reduce.py: cnmf_patches():80] [1655512] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128220_148740Read file\n", + " 77679 [map_reduce.py: cnmf_patches():78] [1655562] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220410_240930START\n", + " 77682 [map_reduce.py: cnmf_patches():80] [1655533] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143580_164100Read file\n", + " 77683 [map_reduce.py: cnmf_patches():78] [1655564] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235770_256290START\n", + " 77684 [map_reduce.py: cnmf_patches():80] [1655507] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158940_179460Read file\n", + " 77695 [map_reduce.py: cnmf_patches():78] [1655532] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236794_256802START\n", + " 77696 [map_reduce.py: cnmf_patches():78] [1655481] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5400_25920START\n", + " 77697 [map_reduce.py: cnmf_patches():78] [1655498] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20760_41280START\n", + " 77700 [map_reduce.py: cnmf_patches():78] [1655469] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36120_56640START\n", + " 77701 [map_reduce.py: cnmf_patches():78] [1655485] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51480_72000START\n", + " 77704 [map_reduce.py: cnmf_patches():80] [1655524] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174300_194820Read file\n", + " 77704 [map_reduce.py: cnmf_patches():80] [1655558] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205020_225540Read file\n", + " 77782 [map_reduce.py: cnmf_patches():78] [1655504] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205080_225600START\n", + " 77781 [map_reduce.py: cnmf_patches():78] [1655542] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189720_210240START\n", + " 77705 [map_reduce.py: cnmf_patches():80] [1655513] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189660_210180Read file\n", + " 77777 [map_reduce.py: cnmf_patches():80] [1655547] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36090_56610Read file\n", + " 77712 [map_reduce.py: cnmf_patches():78] [1655483] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66840_87360START\n", + " 77717 [map_reduce.py: cnmf_patches():80] [1655560] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220380_240900Read file\n", + " 77718 [map_reduce.py: cnmf_patches():78] [1655499] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82200_102720START\n", + " 77719 [map_reduce.py: cnmf_patches():78] [1655516] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97560_118080START\n", + " 77720 [map_reduce.py: cnmf_patches():80] [1655486] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235740_256260Read file\n", + " 77733 [map_reduce.py: cnmf_patches():80] [1655497] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236764_256772Read file\n", + " 77739 [map_reduce.py: cnmf_patches():78] [1655487] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112920_133440START\n", + " 77741 [map_reduce.py: cnmf_patches():80] [1655554] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5370_25890Read file\n", + " 77742 [map_reduce.py: cnmf_patches():80] [1655509] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20730_41250Read file\n", + " 77747 [map_reduce.py: cnmf_patches():78] [1655495] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128280_148800START\n", + " 77755 [map_reduce.py: cnmf_patches():78] [1655561] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143640_164160START\n", + " 77773 [map_reduce.py: cnmf_patches():78] [1655502] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159000_179520START\n", + " 77775 [map_reduce.py: cnmf_patches():78] [1655555] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174360_194880START\n", + " 77815 [map_reduce.py: cnmf_patches():78] [1655544] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220440_240960START\n", + " 77817 [map_reduce.py: cnmf_patches():78] [1655476] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235800_256320START\n", + " 77826 [map_reduce.py: cnmf_patches():80] [1655517] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51450_71970Read file\n", + " 77846 [map_reduce.py: cnmf_patches():80] [1655523] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66810_87330Read file\n", + " 77846 [map_reduce.py: cnmf_patches():80] [1655518] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82170_102690Read file\n", + " 77849 [map_reduce.py: cnmf_patches():100] [1655515] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158880_179400file loaded\n", + " 77854 [map_reduce.py: cnmf_patches():78] [1655474] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236824_256832START\n", + " 77861 [map_reduce.py: cnmf_patches():80] [1655514] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97530_118050Read file\n", + " 77867 [map_reduce.py: cnmf_patches():80] [1655488] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112890_133410Read file\n", + " 77869 [map_reduce.py: cnmf_patches():78] [1655472] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5430_25950START\n", + " 77874 [map_reduce.py: cnmf_patches():80] [1655506] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128250_148770Read file\n", + " 77886 [map_reduce.py: cnmf_patches():80] [1655541] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143610_164130Read file\n", + " 77896 [map_reduce.py: cnmf_patches():80] [1655479] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158970_179490Read file\n", + " 77896 [map_reduce.py: cnmf_patches():80] [1655521] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174330_194850Read file\n", + " 77899 [map_reduce.py: cnmf_patches():78] [1655538] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20790_41310START\n", + " 77902 [map_reduce.py: cnmf_patches():78] [1655559] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36150_56670START\n", + " 77913 [map_reduce.py: cnmf_patches():78] [1655503] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51510_72030START\n", + " 77930 [map_reduce.py: cnmf_patches():78] [1655545] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66870_87390START\n", + " 77932 [map_reduce.py: cnmf_patches():80] [1655527] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189690_210210Read file\n", + " 77958 [map_reduce.py: cnmf_patches():78] [1655484] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82230_102750START\n", + " 77959 [map_reduce.py: cnmf_patches():80] [1655492] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205050_225570Read file\n", + " 77962 [map_reduce.py: cnmf_patches():80] [1655562] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220410_240930Read file\n", + " 77977 [map_reduce.py: cnmf_patches():80] [1655564] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235770_256290Read file\n", + " 77986 [map_reduce.py: cnmf_patches():78] [1655496] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97590_118110START\n", + " 77987 [map_reduce.py: cnmf_patches():80] [1655481] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5400_25920Read file\n", + " 77988 [map_reduce.py: cnmf_patches():80] [1655498] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20760_41280Read file\n", + " 77993 [map_reduce.py: cnmf_patches():80] [1655532] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236794_256802Read file\n", + " 77994 [map_reduce.py: cnmf_patches():80] [1655469] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36120_56640Read file\n", + " 77997 [map_reduce.py: cnmf_patches():100] [1655531] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174240_194760file loaded\n", + " 77999 [map_reduce.py: cnmf_patches():80] [1655485] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51480_72000Read file\n", + " 78019 [map_reduce.py: cnmf_patches():100] [1655535] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189600_210120file loaded\n", + " 78022 [map_reduce.py: cnmf_patches():78] [1655477] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112950_133470START\n", + " 78022 [map_reduce.py: cnmf_patches():80] [1655483] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66840_87360Read file\n", + " 78025 [map_reduce.py: cnmf_patches():80] [1655499] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82200_102720Read file\n", + " 78026 [map_reduce.py: cnmf_patches():80] [1655516] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97560_118080Read file\n", + " 78061 [map_reduce.py: cnmf_patches():80] [1655487] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112920_133440Read file\n", + " 78064 [map_reduce.py: cnmf_patches():78] [1655505] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128310_148830START\n", + " 78069 [map_reduce.py: cnmf_patches():100] [1655549] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204960_225480file loaded\n", + " 78086 [map_reduce.py: cnmf_patches():80] [1655495] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128280_148800Read file\n", + " 78089 [map_reduce.py: cnmf_patches():80] [1655555] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174360_194880Read file\n", + " 78089 [map_reduce.py: cnmf_patches():80] [1655502] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159000_179520Read file\n", + " 78091 [map_reduce.py: cnmf_patches():78] [1655510] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143670_164190START\n", + " 78092 [map_reduce.py: cnmf_patches():80] [1655561] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143640_164160Read file\n", + " 78095 [map_reduce.py: cnmf_patches():80] [1655542] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189720_210240Read file\n", + " 78100 [map_reduce.py: cnmf_patches():78] [1655493] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159030_179550START\n", + " 78101 [map_reduce.py: cnmf_patches():80] [1655504] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205080_225600Read file\n", + " 78107 [map_reduce.py: cnmf_patches():78] [1655478] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174390_194910START\n", + " 78110 [map_reduce.py: cnmf_patches():100] [1655553] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220320_240840file loaded\n", + " 78119 [map_reduce.py: cnmf_patches():80] [1655476] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235800_256320Read file\n", + " 78120 [map_reduce.py: cnmf_patches():80] [1655544] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220440_240960Read file\n", + " 78139 [map_reduce.py: cnmf_patches():78] [1655491] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189750_210270START\n", + " 78160 [map_reduce.py: cnmf_patches():78] [1655539] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205110_225630START\n", + " 78164 [map_reduce.py: cnmf_patches():80] [1655474] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236824_256832Read file\n", + " 78277 [map_reduce.py: cnmf_patches():80] [1655484] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82230_102750Read file\n", + " 78262 [map_reduce.py: cnmf_patches():80] [1655503] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51510_72030Read file\n", + " 78171 [map_reduce.py: cnmf_patches():78] [1655475] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220470_240990START\n", + " 78175 [map_reduce.py: cnmf_patches():78] [1655501] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235830_256350START\n", + " 78193 [map_reduce.py: cnmf_patches():80] [1655472] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5430_25950Read file\n", + " 78235 [map_reduce.py: cnmf_patches():78] [1655548] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236854_256862START\n", + " 78235 [map_reduce.py: cnmf_patches():80] [1655538] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20790_41310Read file\n", + " 78241 [map_reduce.py: cnmf_patches():80] [1655559] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36150_56670Read file\n", + " 78254 [map_reduce.py: cnmf_patches():100] [1655550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5310_25830file loaded\n", + " 78255 [map_reduce.py: cnmf_patches():80] [1655545] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66870_87390Read file\n", + " 78351 [map_reduce.py: cnmf_patches():80] [1655477] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112950_133470Read file\n", + " 78313 [map_reduce.py: cnmf_patches():80] [1655496] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97590_118110Read file\n", + " 78403 [map_reduce.py: cnmf_patches():80] [1655505] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128310_148830Read file\n", + " 78424 [map_reduce.py: cnmf_patches():100] [1655537] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51390_71910file loaded\n", + " 78432 [map_reduce.py: cnmf_patches():100] [1655552] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235680_256200file loaded\n", + " 78434 [map_reduce.py: cnmf_patches():78] [1655556] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5460_25980START\n", + " 78506 [map_reduce.py: cnmf_patches():100] [1655557] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220350_240870file loaded\n", + " 78438 [map_reduce.py: cnmf_patches():80] [1655510] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143670_164190Read file\n", + " 78497 [map_reduce.py: cnmf_patches():100] [1655519] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158910_179430file loaded\n", + " 78453 [map_reduce.py: cnmf_patches():100] [1655530] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236704_256712file loaded\n", + " 78456 [map_reduce.py: cnmf_patches():100] [1655470] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174270_194790file loaded\n", + " 78483 [map_reduce.py: cnmf_patches():80] [1655493] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159030_179550Read file\n", + " 78490 [map_reduce.py: cnmf_patches():80] [1655478] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174390_194910Read file\n", + " 78494 [map_reduce.py: cnmf_patches():100] [1655540] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 204990_225510file loaded\n", + " 78574 [map_reduce.py: cnmf_patches():80] [1655475] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220470_240990Read file\n", + " 78531 [map_reduce.py: cnmf_patches():78] [1655563] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20820_41340START\n", + " 78538 [map_reduce.py: cnmf_patches():80] [1655491] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189750_210270Read file\n", + " 78543 [map_reduce.py: cnmf_patches():78] [1655528] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36180_56700START\n", + " 78547 [map_reduce.py: cnmf_patches():80] [1655539] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205110_225630Read file\n", + " 78552 [map_reduce.py: cnmf_patches():100] [1655536] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112830_133350file loaded\n", + " 78557 [map_reduce.py: cnmf_patches():100] [1655546] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20670_41190file loaded\n", + " 78560 [map_reduce.py: cnmf_patches():100] [1655543] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189630_210150file loaded\n", + " 78581 [map_reduce.py: cnmf_patches():100] [1655522] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82110_102630file loaded\n", + " 78653 [map_reduce.py: cnmf_patches():100] [1655489] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20700_41220file loaded\n", + " 78582 [map_reduce.py: cnmf_patches():80] [1655501] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235830_256350Read file\n", + " 78605 [map_reduce.py: cnmf_patches():100] [1655534] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5340_25860file loaded\n", + " 78613 [map_reduce.py: cnmf_patches():100] [1655473] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97470_117990file loaded\n", + " 78624 [map_reduce.py: cnmf_patches():80] [1655548] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236854_256862Read file\n", + " 78627 [map_reduce.py: cnmf_patches():100] [1655520] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82140_102660file loaded\n", + " 78635 [map_reduce.py: cnmf_patches():100] [1655525] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66750_87270file loaded\n", + " 78646 [map_reduce.py: cnmf_patches():100] [1655490] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128190_148710file loaded\n", + " 78650 [map_reduce.py: cnmf_patches():100] [1655551] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36030_56550file loaded\n", + " 78729 [map_reduce.py: cnmf_patches():100] [1655508] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51420_71940file loaded\n", + " 78712 [map_reduce.py: cnmf_patches():100] [1655512] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128220_148740file loaded\n", + " 78717 [map_reduce.py: cnmf_patches():100] [1655511] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112860_133380file loaded\n", + " 78680 [map_reduce.py: cnmf_patches():100] [1655529] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235710_256230file loaded\n", + " 78674 [map_reduce.py: cnmf_patches():100] [1655482] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97500_118020file loaded\n", + " 78682 [map_reduce.py: cnmf_patches():100] [1655500] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236734_256742file loaded\n", + " 78694 [map_reduce.py: cnmf_patches():100] [1655480] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36060_56580file loaded\n", + " 78708 [map_reduce.py: cnmf_patches():100] [1655526] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66780_87300file loaded\n", + " 78761 [map_reduce.py: cnmf_patches():100] [1655533] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143580_164100file loaded\n", + " 78743 [map_reduce.py: cnmf_patches():100] [1655494] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143550_164070file loaded\n", + " 78740 [map_reduce.py: cnmf_patches():100] [1655513] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189660_210180file loaded\n", + " 78794 [map_reduce.py: cnmf_patches():80] [1655556] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5460_25980Read file\n", + " 78812 [map_reduce.py: cnmf_patches():100] [1655554] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5370_25890file loaded\n", + " 78832 [map_reduce.py: cnmf_patches():100] [1655524] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174300_194820file loaded\n", + " 78838 [map_reduce.py: cnmf_patches():100] [1655560] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220380_240900file loaded\n", + " 78894 [map_reduce.py: cnmf_patches():80] [1655563] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20820_41340Read file\n", + " 78887 [map_reduce.py: cnmf_patches():100] [1655547] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36090_56610file loaded\n", + " 78870 [map_reduce.py: cnmf_patches():100] [1655558] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205020_225540file loaded\n", + " 78873 [map_reduce.py: cnmf_patches():100] [1655507] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158940_179460file loaded\n", + " 78955 [map_reduce.py: cnmf_patches():100] [1655518] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82170_102690file loaded\n", + " 78908 [map_reduce.py: cnmf_patches():80] [1655528] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36180_56700Read file\n", + " 78916 [map_reduce.py: cnmf_patches():100] [1655517] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51450_71970file loaded\n", + " 78926 [map_reduce.py: cnmf_patches():100] [1655486] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235740_256260file loaded\n", + " 78929 [map_reduce.py: cnmf_patches():100] [1655509] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20730_41250file loaded\n", + " 78973 [map_reduce.py: cnmf_patches():100] [1655523] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66810_87330file loaded\n", + " 78982 [map_reduce.py: cnmf_patches():100] [1655479] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 158970_179490file loaded\n", + " 78992 [map_reduce.py: cnmf_patches():100] [1655514] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97530_118050file loaded\n", + " 78986 [map_reduce.py: cnmf_patches():100] [1655497] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236764_256772file loaded\n", + " 79013 [map_reduce.py: cnmf_patches():100] [1655481] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5400_25920file loaded\n", + " 79010 [map_reduce.py: cnmf_patches():100] [1655488] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112890_133410file loaded\n", + " 79030 [map_reduce.py: cnmf_patches():100] [1655521] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174330_194850file loaded\n", + " 79037 [map_reduce.py: cnmf_patches():100] [1655485] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51480_72000file loaded\n", + " 79046 [map_reduce.py: cnmf_patches():100] [1655506] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128250_148770file loaded\n", + " 79050 [map_reduce.py: cnmf_patches():100] [1655498] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20760_41280file loaded\n", + " 79083 [map_reduce.py: cnmf_patches():100] [1655483] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66840_87360file loaded\n", + " 79079 [map_reduce.py: cnmf_patches():100] [1655499] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82200_102720file loaded\n", + " 79086 [map_reduce.py: cnmf_patches():100] [1655516] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97560_118080file loaded\n", + " 79121 [map_reduce.py: cnmf_patches():100] [1655527] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189690_210210file loaded\n", + " 79118 [map_reduce.py: cnmf_patches():100] [1655492] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205050_225570file loaded\n", + " 79108 [map_reduce.py: cnmf_patches():100] [1655562] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220410_240930file loaded\n", + " 79156 [map_reduce.py: cnmf_patches():100] [1655469] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36120_56640file loaded\n", + " 79166 [map_reduce.py: cnmf_patches():100] [1655541] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143610_164130file loaded\n", + " 79187 [map_reduce.py: cnmf_patches():100] [1655532] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236794_256802file loaded\n", + " 79192 [map_reduce.py: cnmf_patches():100] [1655564] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235770_256290file loaded\n", + " 79206 [map_reduce.py: cnmf_patches():100] [1655502] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159000_179520file loaded\n", + " 79213 [map_reduce.py: cnmf_patches():100] [1655495] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128280_148800file loaded\n", + " 79220 [map_reduce.py: cnmf_patches():100] [1655487] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112920_133440file loaded\n", + " 79242 [map_reduce.py: cnmf_patches():100] [1655504] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205080_225600file loaded\n", + " 79261 [map_reduce.py: cnmf_patches():100] [1655561] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143640_164160file loaded\n", + " 79264 [map_reduce.py: cnmf_patches():100] [1655555] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174360_194880file loaded\n", + " 79277 [map_reduce.py: cnmf_patches():100] [1655542] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189720_210240file loaded\n", + " 79312 [map_reduce.py: cnmf_patches():100] [1655544] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220440_240960file loaded\n", + " 79344 [map_reduce.py: cnmf_patches():100] [1655472] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5430_25950file loaded\n", + " 79410 [map_reduce.py: cnmf_patches():100] [1655503] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51510_72030file loaded\n", + " 79415 [map_reduce.py: cnmf_patches():100] [1655484] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82230_102750file loaded\n", + " 79470 [map_reduce.py: cnmf_patches():100] [1655538] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20790_41310file loaded\n", + " 79485 [map_reduce.py: cnmf_patches():100] [1655496] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97590_118110file loaded\n", + " 79487 [map_reduce.py: cnmf_patches():100] [1655476] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235800_256320file loaded\n", + " 79513 [map_reduce.py: cnmf_patches():100] [1655545] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66870_87390file loaded\n", + " 79507 [map_reduce.py: cnmf_patches():100] [1655559] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36150_56670file loaded\n", + " 79555 [map_reduce.py: cnmf_patches():100] [1655474] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236824_256832file loaded\n", + " 79602 [map_reduce.py: cnmf_patches():100] [1655477] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112950_133470file loaded\n", + " 79605 [map_reduce.py: cnmf_patches():100] [1655505] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128310_148830file loaded\n", + " 79729 [map_reduce.py: cnmf_patches():100] [1655510] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143670_164190file loaded\n", + " 79764 [map_reduce.py: cnmf_patches():100] [1655478] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174390_194910file loaded\n", + " 79784 [map_reduce.py: cnmf_patches():100] [1655493] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159030_179550file loaded\n", + " 79788 [map_reduce.py: cnmf_patches():100] [1655539] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205110_225630file loaded\n", + " 79850 [map_reduce.py: cnmf_patches():100] [1655491] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189750_210270file loaded\n", + " 79890 [map_reduce.py: cnmf_patches():100] [1655475] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220470_240990file loaded\n", + " 79919 [map_reduce.py: cnmf_patches():100] [1655501] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235830_256350file loaded\n", + " 79935 [map_reduce.py: cnmf_patches():100] [1655548] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236854_256862file loaded\n", + " 81128 [map_reduce.py: cnmf_patches():100] [1655563] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20820_41340file loaded\n", + " 81356 [map_reduce.py: cnmf_patches():100] [1655556] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5460_25980file loaded\n", + " 81747 [map_reduce.py: cnmf_patches():100] [1655528] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36180_56700file loaded\n", + " 82414 [params.py: set():1006] [1655514] Changing key rf in group patch from 20 to None\n", + " 82701 [params.py: set():1006] [1655514] Changing key stride in group patch from 10 to None\n", + " 83024 [params.py: set():1006] [1655514] Changing key nb in group init from 2 to 1\n", + " 83314 [params.py: set():1006] [1655514] Changing key nb in group temporal from 2 to 1\n", + " 83673 [params.py: set():1006] [1655514] Changing key nb in group spatial from 2 to 1\n", + " 83974 [params.py: set():1006] [1655514] Changing key p in group preprocess from 1 to 0\n", + " 84059 [params.py: set():1006] [1655530] Changing key rf in group patch from 20 to None\n", + " 87120 [params.py: set():1006] [1655535] Changing key rf in group patch from 20 to None\n", + " 87338 [params.py: set():1006] [1655513] Changing key rf in group patch from 20 to None\n", + " 87186 [params.py: set():1006] [1655537] Changing key rf in group patch from 20 to None\n", + " 87262 [params.py: set():1006] [1655511] Changing key rf in group patch from 20 to None\n", + " 87140 [params.py: set():1006] [1655554] Changing key rf in group patch from 20 to None\n", + " 87158 [params.py: set():1006] [1655520] Changing key rf in group patch from 20 to None\n", + " 87290 [params.py: set():1006] [1655519] Changing key rf in group patch from 20 to None\n", + " 87389 [params.py: set():1006] [1655472] Changing key rf in group patch from 20 to None\n", + " 87133 [params.py: set():1006] [1655530] Changing key stride in group patch from 10 to None\n", + " 87527 [params.py: set():1006] [1655553] Changing key rf in group patch from 20 to None\n", + " 84168 [params.py: set():1006] [1655514] Changing key p in group temporal from 1 to 0\n", + " 87682 [params.py: set():1006] [1655476] Changing key rf in group patch from 20 to None\n", + " 87765 [params.py: set():1006] [1655552] Changing key rf in group patch from 20 to None\n", + " 87662 [params.py: set():1006] [1655489] Changing key rf in group patch from 20 to None\n", + " 87688 [params.py: set():1006] [1655531] Changing key rf in group patch from 20 to None\n", + " 87762 [params.py: set():1006] [1655559] Changing key rf in group patch from 20 to None\n", + " 87797 [params.py: set():1006] [1655497] Changing key rf in group patch from 20 to None\n", + " 87754 [params.py: set():1006] [1655496] Changing key rf in group patch from 20 to None\n", + " 87537 [params.py: set():1006] [1655490] Changing key rf in group patch from 20 to None\n", + " 87804 [params.py: set():1006] [1655499] Changing key rf in group patch from 20 to None\n", + " 87611 [params.py: set():1006] [1655543] Changing key rf in group patch from 20 to None\n", + " 87813 [params.py: set():1006] [1655551] Changing key rf in group patch from 20 to None\n", + " 87719 [params.py: set():1006] [1655534] Changing key rf in group patch from 20 to None\n", + " 87769 [params.py: set():1006] [1655485] Changing key rf in group patch from 20 to None\n", + " 87681 [params.py: set():1006] [1655517] Changing key rf in group patch from 20 to None\n", + " 87701 [params.py: set():1006] [1655512] Changing key rf in group patch from 20 to None\n", + " 87656 [params.py: set():1006] [1655486] Changing key rf in group patch from 20 to None\n", + " 87673 [params.py: set():1006] [1655521] Changing key rf in group patch from 20 to None\n", + " 87654 [params.py: set():1006] [1655533] Changing key rf in group patch from 20 to None\n", + " 87738 [params.py: set():1006] [1655500] Changing key rf in group patch from 20 to None\n", + " 87531 [params.py: set():1006] [1655479] Changing key rf in group patch from 20 to None\n", + " 87853 [params.py: set():1006] [1655532] Changing key rf in group patch from 20 to None\n", + " 87515 [params.py: set():1006] [1655527] Changing key rf in group patch from 20 to None\n", + " 87523 [params.py: set():1006] [1655502] Changing key rf in group patch from 20 to None\n", + " 87561 [params.py: set():1006] [1655529] Changing key rf in group patch from 20 to None\n", + " 87527 [params.py: set():1006] [1655469] Changing key rf in group patch from 20 to None\n", + " 87858 [params.py: set():1006] [1655564] Changing key rf in group patch from 20 to None\n", + " 87860 [params.py: set():1006] [1655547] Changing key rf in group patch from 20 to None\n", + " 87873 [params.py: set():1006] [1655492] Changing key rf in group patch from 20 to None\n", + " 87874 [params.py: set():1006] [1655483] Changing key rf in group patch from 20 to None\n", + " 87884 [params.py: set():1006] [1655549] Changing key rf in group patch from 20 to None\n", + " 87850 [params.py: set():1006] [1655523] Changing key rf in group patch from 20 to None\n", + " 87886 [params.py: set():1006] [1655516] Changing key rf in group patch from 20 to None\n", + " 87888 [params.py: set():1006] [1655541] Changing key rf in group patch from 20 to None\n", + " 87890 [params.py: set():1006] [1655546] Changing key rf in group patch from 20 to None\n", + " 87893 [params.py: set():1006] [1655560] Changing key rf in group patch from 20 to None\n", + " 87898 [params.py: set():1006] [1655508] Changing key rf in group patch from 20 to None\n", + " 87903 [params.py: set():1006] [1655525] Changing key rf in group patch from 20 to None\n", + " 87905 [params.py: set():1006] [1655473] Changing key rf in group patch from 20 to None\n", + " 87907 [params.py: set():1006] [1655507] Changing key rf in group patch from 20 to None\n", + " 87863 [params.py: set():1006] [1655556] Changing key rf in group patch from 20 to None\n", + " 87907 [params.py: set():1006] [1655540] Changing key rf in group patch from 20 to None\n", + " 87901 [params.py: set():1006] [1655488] Changing key rf in group patch from 20 to None\n", + " 87751 [params.py: set():1006] [1655522] Changing key rf in group patch from 20 to None\n", + " 87921 [params.py: set():1006] [1655481] Changing key rf in group patch from 20 to None\n", + " 87926 [params.py: set():1006] [1655554] Changing key stride in group patch from 10 to None\n", + " 87927 [params.py: set():1006] [1655520] Changing key stride in group patch from 10 to None\n", + " 87927 [params.py: set():1006] [1655511] Changing key stride in group patch from 10 to None\n", + " 87928 [params.py: set():1006] [1655519] Changing key stride in group patch from 10 to None\n", + " 87928 [params.py: set():1006] [1655537] Changing key stride in group patch from 10 to None\n", + " 87929 [params.py: set():1006] [1655472] Changing key stride in group patch from 10 to None\n", + " 87929 [params.py: set():1006] [1655513] Changing key stride in group patch from 10 to None\n", + " 87930 [params.py: set():1006] [1655530] Changing key nb in group init from 2 to 1\n", + " 87930 [params.py: set():1006] [1655553] Changing key stride in group patch from 10 to None\n", + " 87930 [params.py: set():1006] [1655535] Changing key stride in group patch from 10 to None\n", + " 87931 [cnmf.py: fit():436] [1655514] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 87932 [params.py: set():1006] [1655476] Changing key stride in group patch from 10 to None\n", + " 87932 [params.py: set():1006] [1655552] Changing key stride in group patch from 10 to None\n", + " 87933 [params.py: set():1006] [1655531] Changing key stride in group patch from 10 to None\n", + " 87933 [params.py: set():1006] [1655489] Changing key stride in group patch from 10 to None\n", + " 87933 [params.py: set():1006] [1655559] Changing key stride in group patch from 10 to None\n", + " 87747 [params.py: set():1006] [1655509] Changing key rf in group patch from 20 to None\n", + " 87939 [params.py: set():1006] [1655496] Changing key stride in group patch from 10 to None\n", + " 87940 [params.py: set():1006] [1655497] Changing key stride in group patch from 10 to None\n", + " 87940 [params.py: set():1006] [1655490] Changing key stride in group patch from 10 to None\n", + " 87918 [params.py: set():1006] [1655542] Changing key rf in group patch from 20 to None\n", + " 87914 [params.py: set():1006] [1655475] Changing key rf in group patch from 20 to None\n", + " 87946 [params.py: set():1006] [1655536] Changing key rf in group patch from 20 to None\n", + " 87947 [params.py: set():1006] [1655561] Changing key rf in group patch from 20 to None\n", + " 87661 [params.py: set():1006] [1655474] Changing key rf in group patch from 20 to None\n", + " 87964 [params.py: set():1006] [1655543] Changing key stride in group patch from 10 to None\n", + " 87964 [params.py: set():1006] [1655499] Changing key stride in group patch from 10 to None\n", + " 88118 [params.py: set():1006] [1655493] Changing key rf in group patch from 20 to None\n", + " 88104 [params.py: set():1006] [1655477] Changing key rf in group patch from 20 to None\n", + " 88102 [params.py: set():1006] [1655510] Changing key rf in group patch from 20 to None\n", + " 87897 [params.py: set():1006] [1655539] Changing key rf in group patch from 20 to None\n", + " 87967 [params.py: set():1006] [1655551] Changing key stride in group patch from 10 to None\n", + " 87966 [params.py: set():1006] [1655534] Changing key stride in group patch from 10 to None\n", + " 87967 [params.py: set():1006] [1655485] Changing key stride in group patch from 10 to None\n", + " 87970 [params.py: set():1006] [1655526] Changing key rf in group patch from 20 to None\n", + " 87970 [params.py: set():1006] [1655517] Changing key stride in group patch from 10 to None\n", + " 87974 [params.py: set():1006] [1655562] Changing key rf in group patch from 20 to None\n", + " 87975 [params.py: set():1006] [1655486] Changing key stride in group patch from 10 to None\n", + " 87972 [params.py: set():1006] [1655512] Changing key stride in group patch from 10 to None\n", + " 87951 [params.py: set():1006] [1655557] Changing key rf in group patch from 20 to None\n", + " 87975 [params.py: set():1006] [1655521] Changing key stride in group patch from 10 to None\n", + " 87717 [params.py: set():1006] [1655498] Changing key rf in group patch from 20 to None\n", + " 87971 [params.py: set():1006] [1655524] Changing key rf in group patch from 20 to None\n", + " 87976 [params.py: set():1006] [1655533] Changing key stride in group patch from 10 to None\n", + " 87979 [params.py: set():1006] [1655491] Changing key rf in group patch from 20 to None\n", + " 87978 [params.py: set():1006] [1655544] Changing key rf in group patch from 20 to None\n", + " 87980 [params.py: set():1006] [1655506] Changing key rf in group patch from 20 to None\n", + " 87980 [params.py: set():1006] [1655500] Changing key stride in group patch from 10 to None\n", + " 87987 [params.py: set():1006] [1655479] Changing key stride in group patch from 10 to None\n", + " 87966 [params.py: set():1006] [1655482] Changing key rf in group patch from 20 to None\n", + " 87823 [params.py: set():1006] [1655470] Changing key rf in group patch from 20 to None\n", + " 87991 [params.py: set():1006] [1655527] Changing key stride in group patch from 10 to None\n", + " 87992 [params.py: set():1006] [1655532] Changing key stride in group patch from 10 to None\n", + " 87992 [params.py: set():1006] [1655502] Changing key stride in group patch from 10 to None\n", + " 87558 [params.py: set():1006] [1655480] Changing key rf in group patch from 20 to None\n", + " 87993 [params.py: set():1006] [1655529] Changing key stride in group patch from 10 to None\n", + " 87995 [params.py: set():1006] [1655478] Changing key rf in group patch from 20 to None\n", + " 87996 [params.py: set():1006] [1655469] Changing key stride in group patch from 10 to None\n", + " 87997 [params.py: set():1006] [1655564] Changing key stride in group patch from 10 to None\n", + " 87997 [params.py: set():1006] [1655547] Changing key stride in group patch from 10 to None\n", + " 87963 [params.py: set():1006] [1655548] Changing key rf in group patch from 20 to None\n", + " 88010 [params.py: set():1006] [1655492] Changing key stride in group patch from 10 to None\n", + " 88012 [params.py: set():1006] [1655483] Changing key stride in group patch from 10 to None\n", + " 88019 [params.py: set():1006] [1655546] Changing key stride in group patch from 10 to None\n", + " 88019 [params.py: set():1006] [1655525] Changing key stride in group patch from 10 to None\n", + " 88018 [params.py: set():1006] [1655549] Changing key stride in group patch from 10 to None\n", + " 88019 [params.py: set():1006] [1655508] Changing key stride in group patch from 10 to None\n", + " 88020 [params.py: set():1006] [1655541] Changing key stride in group patch from 10 to None\n", + " 88020 [params.py: set():1006] [1655516] Changing key stride in group patch from 10 to None\n", + " 88018 [params.py: set():1006] [1655560] Changing key stride in group patch from 10 to None\n", + " 88021 [params.py: set():1006] [1655473] Changing key stride in group patch from 10 to None\n", + " 88021 [params.py: set():1006] [1655507] Changing key stride in group patch from 10 to None\n", + " 88027 [params.py: set():1006] [1655523] Changing key stride in group patch from 10 to None\n", + " 88027 [params.py: set():1006] [1655556] Changing key stride in group patch from 10 to None\n", + " 88027 [params.py: set():1006] [1655550] Changing key rf in group patch from 20 to None\n", + " 88028 [params.py: set():1006] [1655540] Changing key stride in group patch from 10 to None\n", + " 88029 [params.py: set():1006] [1655488] Changing key stride in group patch from 10 to None\n", + " 88029 [params.py: set():1006] [1655522] Changing key stride in group patch from 10 to None\n", + " 88032 [params.py: set():1006] [1655487] Changing key rf in group patch from 20 to None\n", + " 88037 [params.py: set():1006] [1655481] Changing key stride in group patch from 10 to None\n", + " 88039 [params.py: set():1006] [1655537] Changing key nb in group init from 2 to 1\n", + " 88039 [params.py: set():1006] [1655513] Changing key nb in group init from 2 to 1\n", + " 88041 [params.py: set():1006] [1655472] Changing key nb in group init from 2 to 1\n", + " 88038 [params.py: set():1006] [1655535] Changing key nb in group init from 2 to 1\n", + " 88038 [params.py: set():1006] [1655476] Changing key nb in group init from 2 to 1\n", + " 88040 [params.py: set():1006] [1655519] Changing key nb in group init from 2 to 1\n", + " 88040 [params.py: set():1006] [1655559] Changing key nb in group init from 2 to 1\n", + " 88039 [params.py: set():1006] [1655552] Changing key nb in group init from 2 to 1\n", + " 88041 [params.py: set():1006] [1655489] Changing key nb in group init from 2 to 1\n", + " 88042 [params.py: set():1006] [1655520] Changing key nb in group init from 2 to 1\n", + " 88041 [cnmf.py: fit():449] [1655514] (8000, 41, 41)\n", + " 88042 [params.py: set():1006] [1655553] Changing key nb in group init from 2 to 1\n", + " 88040 [params.py: set():1006] [1655531] Changing key nb in group init from 2 to 1\n", + " 88042 [params.py: set():1006] [1655530] Changing key nb in group temporal from 2 to 1\n", + " 88043 [params.py: set():1006] [1655511] Changing key nb in group init from 2 to 1\n", + " 88044 [params.py: set():1006] [1655509] Changing key stride in group patch from 10 to None\n", + " 88043 [params.py: set():1006] [1655554] Changing key nb in group init from 2 to 1\n", + " 88045 [params.py: set():1006] [1655497] Changing key nb in group init from 2 to 1\n", + " 88044 [params.py: set():1006] [1655496] Changing key nb in group init from 2 to 1\n", + " 88045 [params.py: set():1006] [1655490] Changing key nb in group init from 2 to 1\n", + " 87871 [params.py: set():1006] [1655545] Changing key rf in group patch from 20 to None\n", + " 88046 [params.py: set():1006] [1655542] Changing key stride in group patch from 10 to None\n", + " 88049 [params.py: set():1006] [1655501] Changing key rf in group patch from 20 to None\n", + " 87879 [params.py: set():1006] [1655495] Changing key rf in group patch from 20 to None\n", + " 88050 [params.py: set():1006] [1655484] Changing key rf in group patch from 20 to None\n", + " 88051 [params.py: set():1006] [1655475] Changing key stride in group patch from 10 to None\n", + " 88051 [params.py: set():1006] [1655536] Changing key stride in group patch from 10 to None\n", + " 88051 [params.py: set():1006] [1655561] Changing key stride in group patch from 10 to None\n", + " 88067 [params.py: set():1006] [1655543] Changing key nb in group init from 2 to 1\n", + " 88068 [params.py: set():1006] [1655474] Changing key stride in group patch from 10 to None\n", + " 88068 [params.py: set():1006] [1655499] Changing key nb in group init from 2 to 1\n", + " 88055 [map_reduce.py: cnmf_patches():78] [1660129] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51540_72060START\n", + " 88017 [params.py: set():1006] [1655503] Changing key rf in group patch from 20 to None\n", + " 88085 [params.py: set():1006] [1655528] Changing key rf in group patch from 20 to None\n", + " 87945 [params.py: set():1006] [1655494] Changing key rf in group patch from 20 to None\n", + " 88097 [params.py: set():1006] [1655563] Changing key rf in group patch from 20 to None\n", + " 88009 [params.py: set():1006] [1655538] Changing key rf in group patch from 20 to None\n", + " 88101 [params.py: set():1006] [1655504] Changing key rf in group patch from 20 to None\n", + " 88079 [params.py: set():1006] [1655505] Changing key rf in group patch from 20 to None\n", + " 88165 [params.py: set():1006] [1655503] Changing key stride in group patch from 10 to None\n", + " 88156 [params.py: set():1006] [1655553] Changing key nb in group temporal from 2 to 1\n", + " 88163 [params.py: set():1006] [1655474] Changing key nb in group init from 2 to 1\n", + " 88166 [params.py: set():1006] [1655563] Changing key stride in group patch from 10 to None\n", + " 88152 [params.py: set():1006] [1655481] Changing key nb in group init from 2 to 1\n", + " 88155 [params.py: set():1006] [1655520] Changing key nb in group temporal from 2 to 1\n", + " 88151 [params.py: set():1006] [1655487] Changing key stride in group patch from 10 to None\n", + " 88163 [params.py: set():1006] [1655561] Changing key nb in group init from 2 to 1\n", + " 88146 [params.py: set():1006] [1655549] Changing key nb in group init from 2 to 1\n", + " 88169 [params.py: set():1006] [1655493] Changing key stride in group patch from 10 to None\n", + " 88164 [params.py: set():1006] [1655499] Changing key nb in group temporal from 2 to 1\n", + " 88164 [params.py: set():1006] [1655543] Changing key nb in group temporal from 2 to 1\n", + " 88139 [params.py: set():1006] [1655532] Changing key nb in group init from 2 to 1\n", + " 88159 [params.py: set():1006] [1655490] Changing key nb in group temporal from 2 to 1\n", + " 88144 [params.py: set():1006] [1655483] Changing key nb in group init from 2 to 1\n", + " 88167 [params.py: set():1006] [1655538] Changing key stride in group patch from 10 to None\n", + " 88162 [params.py: set():1006] [1655475] Changing key nb in group init from 2 to 1\n", + " 88150 [params.py: set():1006] [1655522] Changing key nb in group init from 2 to 1\n", + " 88166 [params.py: set():1006] [1655494] Changing key stride in group patch from 10 to None\n", + " 88150 [params.py: set():1006] [1655488] Changing key nb in group init from 2 to 1\n", + " 88159 [params.py: set():1006] [1655496] Changing key nb in group temporal from 2 to 1\n", + " 88145 [params.py: set():1006] [1655525] Changing key nb in group init from 2 to 1\n", + " 88153 [params.py: set():1006] [1655472] Changing key nb in group temporal from 2 to 1\n", + " 88160 [params.py: set():1006] [1655545] Changing key stride in group patch from 10 to None\n", + " 88147 [params.py: set():1006] [1655560] Changing key nb in group init from 2 to 1\n", + " 88155 [params.py: set():1006] [1655513] Changing key nb in group temporal from 2 to 1\n", + " 88166 [params.py: set():1006] [1655528] Changing key stride in group patch from 10 to None\n", + " 88162 [params.py: set():1006] [1655536] Changing key nb in group init from 2 to 1\n", + " 88146 [params.py: set():1006] [1655541] Changing key nb in group init from 2 to 1\n", + " 88162 [params.py: set():1006] [1655484] Changing key stride in group patch from 10 to None\n", + " 88161 [params.py: set():1006] [1655542] Changing key nb in group init from 2 to 1\n", + " 88161 [params.py: set():1006] [1655495] Changing key stride in group patch from 10 to None\n", + " 88140 [params.py: set():1006] [1655470] Changing key stride in group patch from 10 to None\n", + " 88148 [params.py: set():1006] [1655473] Changing key nb in group init from 2 to 1\n", + " 88157 [params.py: set():1006] [1655531] Changing key nb in group temporal from 2 to 1\n", + " 88138 [params.py: set():1006] [1655482] Changing key stride in group patch from 10 to None\n", + " 88153 [params.py: set():1006] [1655535] Changing key nb in group temporal from 2 to 1\n", + " 88157 [params.py: set():1006] [1655530] Changing key nb in group spatial from 2 to 1\n", + " 88150 [params.py: set():1006] [1655550] Changing key stride in group patch from 10 to None\n", + " 88159 [params.py: set():1006] [1655497] Changing key nb in group temporal from 2 to 1\n", + " 88169 [params.py: set():1006] [1655477] Changing key stride in group patch from 10 to None\n", + " 88153 [params.py: set():1006] [1655476] Changing key nb in group temporal from 2 to 1\n", + " 88154 [params.py: set():1006] [1655519] Changing key nb in group temporal from 2 to 1\n", + " 88137 [params.py: set():1006] [1655544] Changing key stride in group patch from 10 to None\n", + " 88138 [params.py: set():1006] [1655479] Changing key nb in group init from 2 to 1\n", + " 88154 [params.py: set():1006] [1655559] Changing key nb in group temporal from 2 to 1\n", + " 88155 [params.py: set():1006] [1655489] Changing key nb in group temporal from 2 to 1\n", + " 88136 [params.py: set():1006] [1655491] Changing key stride in group patch from 10 to None\n", + " 88148 [params.py: set():1006] [1655523] Changing key nb in group init from 2 to 1\n", + " 88137 [params.py: set():1006] [1655506] Changing key stride in group patch from 10 to None\n", + " 88140 [params.py: set():1006] [1655502] Changing key nb in group init from 2 to 1\n", + " 88142 [params.py: set():1006] [1655469] Changing key nb in group init from 2 to 1\n", + " 88168 [params.py: set():1006] [1655510] Changing key stride in group patch from 10 to None\n", + " 88149 [params.py: set():1006] [1655540] Changing key nb in group init from 2 to 1\n", + " 88135 [params.py: set():1006] [1655524] Changing key stride in group patch from 10 to None\n", + " 88137 [params.py: set():1006] [1655500] Changing key nb in group init from 2 to 1\n", + " 88139 [params.py: set():1006] [1655527] Changing key nb in group init from 2 to 1\n", + " 88154 [params.py: set():1006] [1655552] Changing key nb in group temporal from 2 to 1\n", + " 88135 [params.py: set():1006] [1655498] Changing key stride in group patch from 10 to None\n", + " 88143 [params.py: set():1006] [1655547] Changing key nb in group init from 2 to 1\n", + " 88156 [cnmf.py: fit():466] [1655514] Using 1 processes\n", + " 88136 [params.py: set():1006] [1655533] Changing key nb in group init from 2 to 1\n", + " 88146 [params.py: set():1006] [1655508] Changing key nb in group init from 2 to 1\n", + " 88141 [params.py: set():1006] [1655480] Changing key stride in group patch from 10 to None\n", + " 88161 [params.py: set():1006] [1655501] Changing key stride in group patch from 10 to None\n", + " 88158 [params.py: set():1006] [1655511] Changing key nb in group temporal from 2 to 1\n", + " 88146 [params.py: set():1006] [1655546] Changing key nb in group init from 2 to 1\n", + " 88143 [params.py: set():1006] [1655548] Changing key stride in group patch from 10 to None\n", + " 88168 [params.py: set():1006] [1655505] Changing key stride in group patch from 10 to None\n", + " 88142 [params.py: set():1006] [1655564] Changing key nb in group init from 2 to 1\n", + " 88141 [params.py: set():1006] [1655529] Changing key nb in group init from 2 to 1\n", + " 88142 [params.py: set():1006] [1655478] Changing key stride in group patch from 10 to None\n", + " 88134 [params.py: set():1006] [1655521] Changing key nb in group init from 2 to 1\n", + " 88148 [params.py: set():1006] [1655507] Changing key nb in group init from 2 to 1\n", + " 88149 [params.py: set():1006] [1655556] Changing key nb in group init from 2 to 1\n", + " 88157 [params.py: set():1006] [1655554] Changing key nb in group temporal from 2 to 1\n", + " 88158 [params.py: set():1006] [1655509] Changing key nb in group init from 2 to 1\n", + " 88147 [params.py: set():1006] [1655516] Changing key nb in group init from 2 to 1\n", + " 88167 [params.py: set():1006] [1655504] Changing key stride in group patch from 10 to None\n", + " 88144 [params.py: set():1006] [1655492] Changing key nb in group init from 2 to 1\n", + " 88132 [params.py: set():1006] [1655517] Changing key nb in group init from 2 to 1\n", + " 88130 [params.py: set():1006] [1655534] Changing key nb in group init from 2 to 1\n", + " 88156 [params.py: set():1006] [1655537] Changing key nb in group temporal from 2 to 1\n", + " 88132 [params.py: set():1006] [1655562] Changing key stride in group patch from 10 to None\n", + " 88134 [params.py: set():1006] [1655557] Changing key stride in group patch from 10 to None\n", + " 88133 [params.py: set():1006] [1655486] Changing key nb in group init from 2 to 1\n", + " 88131 [params.py: set():1006] [1655526] Changing key stride in group patch from 10 to None\n", + " 88131 [params.py: set():1006] [1655485] Changing key nb in group init from 2 to 1\n", + " 88133 [params.py: set():1006] [1655512] Changing key nb in group init from 2 to 1\n", + " 88130 [params.py: set():1006] [1655551] Changing key nb in group init from 2 to 1\n", + " 88165 [map_reduce.py: cnmf_patches():80] [1660129] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51540_72060Read file\n", + " 88130 [params.py: set():1006] [1655539] Changing key stride in group patch from 10 to None\n", + " 88173 [params.py: set():1006] [1655518] Changing key rf in group patch from 20 to None\n", + " 88204 [map_reduce.py: cnmf_patches():78] [1660361] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66900_87420START\n", + " 88216 [params.py: set():1006] [1655538] Changing key nb in group init from 2 to 1\n", + " 88216 [params.py: set():1006] [1655543] Changing key nb in group spatial from 2 to 1\n", + " 88217 [params.py: set():1006] [1655541] Changing key nb in group temporal from 2 to 1\n", + " 88217 [params.py: set():1006] [1655563] Changing key nb in group init from 2 to 1\n", + " 88217 [params.py: set():1006] [1655553] Changing key nb in group spatial from 2 to 1\n", + " 88218 [params.py: set():1006] [1655493] Changing key nb in group init from 2 to 1\n", + " 88218 [params.py: set():1006] [1655487] Changing key nb in group init from 2 to 1\n", + " 88218 [params.py: set():1006] [1655561] Changing key nb in group temporal from 2 to 1\n", + " 88219 [params.py: set():1006] [1655482] Changing key nb in group init from 2 to 1\n", + " 88219 [params.py: set():1006] [1655474] Changing key nb in group temporal from 2 to 1\n", + " 88219 [params.py: set():1006] [1655473] Changing key nb in group temporal from 2 to 1\n", + " 88220 [params.py: set():1006] [1655475] Changing key nb in group temporal from 2 to 1\n", + " 88220 [params.py: set():1006] [1655499] Changing key nb in group spatial from 2 to 1\n", + " 88220 [params.py: set():1006] [1655528] Changing key nb in group init from 2 to 1\n", + " 88221 [params.py: set():1006] [1655488] Changing key nb in group temporal from 2 to 1\n", + " 88221 [params.py: set():1006] [1655522] Changing key nb in group temporal from 2 to 1\n", + " 88221 [params.py: set():1006] [1655481] Changing key nb in group temporal from 2 to 1\n", + " 88221 [params.py: set():1006] [1655470] Changing key nb in group init from 2 to 1\n", + " 88222 [params.py: set():1006] [1655560] Changing key nb in group temporal from 2 to 1\n", + " 88222 [params.py: set():1006] [1655494] Changing key nb in group init from 2 to 1\n", + " 88222 [params.py: set():1006] [1655513] Changing key nb in group spatial from 2 to 1\n", + " 88223 [params.py: set():1006] [1655495] Changing key nb in group init from 2 to 1\n", + " 88223 [params.py: set():1006] [1655549] Changing key nb in group temporal from 2 to 1\n", + " 88223 [params.py: set():1006] [1655544] Changing key nb in group init from 2 to 1\n", + " 88224 [params.py: set():1006] [1655490] Changing key nb in group spatial from 2 to 1\n", + " 88224 [params.py: set():1006] [1655532] Changing key nb in group temporal from 2 to 1\n", + " 88224 [params.py: set():1006] [1655496] Changing key nb in group spatial from 2 to 1\n", + " 88225 [params.py: set():1006] [1655531] Changing key nb in group spatial from 2 to 1\n", + " 88225 [params.py: set():1006] [1655542] Changing key nb in group temporal from 2 to 1\n", + " 88225 [params.py: set():1006] [1655483] Changing key nb in group temporal from 2 to 1\n", + " 88226 [params.py: set():1006] [1655502] Changing key nb in group temporal from 2 to 1\n", + " 88226 [params.py: set():1006] [1655472] Changing key nb in group spatial from 2 to 1\n", + " 88226 [params.py: set():1006] [1655476] Changing key nb in group spatial from 2 to 1\n", + " 88226 [params.py: set():1006] [1655550] Changing key nb in group init from 2 to 1\n", + " 88227 [params.py: set():1006] [1655546] Changing key nb in group temporal from 2 to 1\n", + " 88227 [params.py: set():1006] [1655484] Changing key nb in group init from 2 to 1\n", + " 88227 [params.py: set():1006] [1655530] Changing key p in group preprocess from 1 to 0\n", + " 88228 [params.py: set():1006] [1655525] Changing key nb in group temporal from 2 to 1\n", + " 88228 [params.py: set():1006] [1655519] Changing key nb in group spatial from 2 to 1\n", + " 88228 [params.py: set():1006] [1655510] Changing key nb in group init from 2 to 1\n", + " 88229 [params.py: set():1006] [1655540] Changing key nb in group temporal from 2 to 1\n", + " 88229 [params.py: set():1006] [1655535] Changing key nb in group spatial from 2 to 1\n", + " 88229 [params.py: set():1006] [1655545] Changing key nb in group init from 2 to 1\n", + " 88230 [params.py: set():1006] [1655536] Changing key nb in group temporal from 2 to 1\n", + " 88230 [params.py: set():1006] [1655489] Changing key nb in group spatial from 2 to 1\n", + " 88230 [params.py: set():1006] [1655479] Changing key nb in group temporal from 2 to 1\n", + " 88230 [params.py: set():1006] [1655497] Changing key nb in group spatial from 2 to 1\n", + " 88231 [params.py: set():1006] [1655552] Changing key nb in group spatial from 2 to 1\n", + " 88231 [params.py: set():1006] [1655507] Changing key nb in group temporal from 2 to 1\n", + " 88231 [params.py: set():1006] [1655556] Changing key nb in group temporal from 2 to 1\n", + " 88232 [params.py: set():1006] [1655511] Changing key nb in group spatial from 2 to 1\n", + " 88232 [params.py: set():1006] [1655547] Changing key nb in group temporal from 2 to 1\n", + " 88232 [params.py: set():1006] [1655506] Changing key nb in group init from 2 to 1\n", + " 88233 [params.py: set():1006] [1655500] Changing key nb in group temporal from 2 to 1\n", + " 88233 [params.py: set():1006] [1655469] Changing key nb in group temporal from 2 to 1\n", + " 88233 [params.py: set():1006] [1655501] Changing key nb in group init from 2 to 1\n", + " 88234 [cnmf.py: fit():477] [1655514] using 400 pixels per process\n", + " 88234 [params.py: set():1006] [1655478] Changing key nb in group init from 2 to 1\n", + " 88234 [params.py: set():1006] [1655491] Changing key nb in group init from 2 to 1\n", + " 88235 [params.py: set():1006] [1655529] Changing key nb in group temporal from 2 to 1\n", + " 88235 [params.py: set():1006] [1655554] Changing key nb in group spatial from 2 to 1\n", + " 88235 [params.py: set():1006] [1655534] Changing key nb in group temporal from 2 to 1\n", + " 88236 [params.py: set():1006] [1655521] Changing key nb in group temporal from 2 to 1\n", + " 88236 [params.py: set():1006] [1655559] Changing key nb in group spatial from 2 to 1\n", + " 88236 [params.py: set():1006] [1655477] Changing key nb in group init from 2 to 1\n", + " 88236 [params.py: set():1006] [1655508] Changing key nb in group temporal from 2 to 1\n", + " 88237 [params.py: set():1006] [1655523] Changing key nb in group temporal from 2 to 1\n", + " 88237 [params.py: set():1006] [1655537] Changing key nb in group spatial from 2 to 1\n", + " 88237 [params.py: set():1006] [1655564] Changing key nb in group temporal from 2 to 1\n", + " 88238 [params.py: set():1006] [1655520] Changing key nb in group spatial from 2 to 1\n", + " 88238 [params.py: set():1006] [1655509] Changing key nb in group temporal from 2 to 1\n", + " 88238 [params.py: set():1006] [1655480] Changing key nb in group init from 2 to 1\n", + " 88239 [params.py: set():1006] [1655524] Changing key nb in group init from 2 to 1\n", + " 88239 [params.py: set():1006] [1655533] Changing key nb in group temporal from 2 to 1\n", + " 88239 [params.py: set():1006] [1655516] Changing key nb in group temporal from 2 to 1\n", + " 88240 [params.py: set():1006] [1655504] Changing key nb in group init from 2 to 1\n", + " 88240 [params.py: set():1006] [1655548] Changing key nb in group init from 2 to 1\n", + " 88240 [params.py: set():1006] [1655498] Changing key nb in group init from 2 to 1\n", + " 88241 [params.py: set():1006] [1655505] Changing key nb in group init from 2 to 1\n", + " 88241 [params.py: set():1006] [1655492] Changing key nb in group temporal from 2 to 1\n", + " 88241 [params.py: set():1006] [1655557] Changing key nb in group init from 2 to 1\n", + " 88242 [params.py: set():1006] [1655512] Changing key nb in group temporal from 2 to 1\n", + " 88242 [params.py: set():1006] [1655503] Changing key nb in group init from 2 to 1\n", + " 88242 [params.py: set():1006] [1655485] Changing key nb in group temporal from 2 to 1\n", + " 88243 [params.py: set():1006] [1655551] Changing key nb in group temporal from 2 to 1\n", + " 88243 [params.py: set():1006] [1655517] Changing key nb in group temporal from 2 to 1\n", + " 88243 [params.py: set():1006] [1655486] Changing key nb in group temporal from 2 to 1\n", + " 88244 [params.py: set():1006] [1655562] Changing key nb in group init from 2 to 1\n", + " 88244 [params.py: set():1006] [1655526] Changing key nb in group init from 2 to 1\n", + " 88245 [params.py: set():1006] [1655527] Changing key nb in group temporal from 2 to 1\n", + " 88245 [params.py: set():1006] [1655539] Changing key nb in group init from 2 to 1\n", + " 88245 [params.py: set():1006] [1655518] Changing key stride in group patch from 10 to None\n", + " 88285 [params.py: set():1006] [1655539] Changing key nb in group temporal from 2 to 1\n", + " 88287 [params.py: set():1006] [1655526] Changing key nb in group temporal from 2 to 1\n", + " 88288 [params.py: set():1006] [1655562] Changing key nb in group temporal from 2 to 1\n", + " 88288 [params.py: set():1006] [1655480] Changing key nb in group temporal from 2 to 1\n", + " 88289 [params.py: set():1006] [1655551] Changing key nb in group spatial from 2 to 1\n", + " 88289 [params.py: set():1006] [1655517] Changing key nb in group spatial from 2 to 1\n", + " 88290 [params.py: set():1006] [1655485] Changing key nb in group spatial from 2 to 1\n", + " 88290 [params.py: set():1006] [1655563] Changing key nb in group temporal from 2 to 1\n", + " 88291 [params.py: set():1006] [1655486] Changing key nb in group spatial from 2 to 1\n", + " 88291 [params.py: set():1006] [1655527] Changing key nb in group spatial from 2 to 1\n", + " 88292 [params.py: set():1006] [1655503] Changing key nb in group temporal from 2 to 1\n", + " 88292 [params.py: set():1006] [1655489] Changing key p in group preprocess from 1 to 0\n", + " 88293 [params.py: set():1006] [1655501] Changing key nb in group temporal from 2 to 1\n", + " 88293 [params.py: set():1006] [1655475] Changing key nb in group spatial from 2 to 1\n", + " 88294 [params.py: set():1006] [1655553] Changing key p in group preprocess from 1 to 0\n", + " 88294 [params.py: set():1006] [1655510] Changing key nb in group temporal from 2 to 1\n", + " 88294 [params.py: set():1006] [1655525] Changing key nb in group spatial from 2 to 1\n", + " 88295 [params.py: set():1006] [1655509] Changing key nb in group spatial from 2 to 1\n", + " 88295 [params.py: set():1006] [1655536] Changing key nb in group spatial from 2 to 1\n", + " 88295 [params.py: set():1006] [1655535] Changing key p in group preprocess from 1 to 0\n", + " 88296 [params.py: set():1006] [1655557] Changing key nb in group temporal from 2 to 1\n", + " 88296 [params.py: set():1006] [1655492] Changing key nb in group spatial from 2 to 1\n", + " 88296 [params.py: set():1006] [1655507] Changing key nb in group spatial from 2 to 1\n", + " 88297 [params.py: set():1006] [1655469] Changing key nb in group spatial from 2 to 1\n", + " 88297 [params.py: set():1006] [1655512] Changing key nb in group spatial from 2 to 1\n", + " 88297 [params.py: set():1006] [1655543] Changing key p in group preprocess from 1 to 0\n", + " 88298 [params.py: set():1006] [1655528] Changing key nb in group temporal from 2 to 1\n", + " 88298 [params.py: set():1006] [1655511] Changing key p in group preprocess from 1 to 0\n", + " 88298 [params.py: set():1006] [1655540] Changing key nb in group spatial from 2 to 1\n", + " 88299 [params.py: set():1006] [1655545] Changing key nb in group temporal from 2 to 1\n", + " 88299 [params.py: set():1006] [1655549] Changing key nb in group spatial from 2 to 1\n", + " 88299 [params.py: set():1006] [1655547] Changing key nb in group spatial from 2 to 1\n", + " 88300 [params.py: set():1006] [1655516] Changing key nb in group spatial from 2 to 1\n", + " 88300 [params.py: set():1006] [1655521] Changing key nb in group spatial from 2 to 1\n", + " 88300 [params.py: set():1006] [1655559] Changing key p in group preprocess from 1 to 0\n", + " 88301 [params.py: set():1006] [1655532] Changing key nb in group spatial from 2 to 1\n", + " 88301 [params.py: set():1006] [1655519] Changing key p in group preprocess from 1 to 0\n", + " 88301 [params.py: set():1006] [1655491] Changing key nb in group temporal from 2 to 1\n", + " 88302 [params.py: set():1006] [1655506] Changing key nb in group temporal from 2 to 1\n", + " 88302 [params.py: set():1006] [1655564] Changing key nb in group spatial from 2 to 1\n", + " 88302 [params.py: set():1006] [1655552] Changing key p in group preprocess from 1 to 0\n", + " 88303 [params.py: set():1006] [1655533] Changing key nb in group spatial from 2 to 1\n", + " 88303 [params.py: set():1006] [1655482] Changing key nb in group temporal from 2 to 1\n", + " 88303 [params.py: set():1006] [1655470] Changing key nb in group temporal from 2 to 1\n", + " 88304 [params.py: set():1006] [1655500] Changing key nb in group spatial from 2 to 1\n", + " 88304 [params.py: set():1006] [1655518] Changing key nb in group init from 2 to 1\n", + " 88304 [params.py: set():1006] [1655554] Changing key p in group preprocess from 1 to 0\n", + " 88304 [params.py: set():1006] [1655524] Changing key nb in group temporal from 2 to 1\n", + " 88305 [params.py: set():1006] [1655546] Changing key nb in group spatial from 2 to 1\n", + " 88305 [params.py: set():1006] [1655530] Changing key p in group temporal from 1 to 0\n", + " 88305 [params.py: set():1006] [1655529] Changing key nb in group spatial from 2 to 1\n", + " 88306 [params.py: set():1006] [1655520] Changing key p in group preprocess from 1 to 0\n", + " 88306 [params.py: set():1006] [1655541] Changing key nb in group spatial from 2 to 1\n", + " 88306 [params.py: set():1006] [1655534] Changing key nb in group spatial from 2 to 1\n", + " 88307 [params.py: set():1006] [1655531] Changing key p in group preprocess from 1 to 0\n", + " 88307 [params.py: set():1006] [1655472] Changing key p in group preprocess from 1 to 0\n", + " 88307 [params.py: set():1006] [1655495] Changing key nb in group temporal from 2 to 1\n", + " 88308 [params.py: set():1006] [1655493] Changing key nb in group temporal from 2 to 1\n", + " 88308 [params.py: set():1006] [1655487] Changing key nb in group temporal from 2 to 1\n", + " 88308 [params.py: set():1006] [1655550] Changing key nb in group temporal from 2 to 1\n", + " 88309 [params.py: set():1006] [1655538] Changing key nb in group temporal from 2 to 1\n", + " 88309 [params.py: set():1006] [1655560] Changing key nb in group spatial from 2 to 1\n", + " 88309 [params.py: set():1006] [1655488] Changing key nb in group spatial from 2 to 1\n", + " 88310 [params.py: set():1006] [1655494] Changing key nb in group temporal from 2 to 1\n", + " 88310 [params.py: set():1006] [1655556] Changing key nb in group spatial from 2 to 1\n", + " 88310 [params.py: set():1006] [1655537] Changing key p in group preprocess from 1 to 0\n", + " 88311 [params.py: set():1006] [1655478] Changing key nb in group temporal from 2 to 1\n", + " 88311 [params.py: set():1006] [1655513] Changing key p in group preprocess from 1 to 0\n", + " 88311 [params.py: set():1006] [1655499] Changing key p in group preprocess from 1 to 0\n", + " 88312 [params.py: set():1006] [1655523] Changing key nb in group spatial from 2 to 1\n", + " 88312 [params.py: set():1006] [1655502] Changing key nb in group spatial from 2 to 1\n", + " 88312 [params.py: set():1006] [1655504] Changing key nb in group temporal from 2 to 1\n", + " 88312 [params.py: set():1006] [1655561] Changing key nb in group spatial from 2 to 1\n", + " 88313 [params.py: set():1006] [1655481] Changing key nb in group spatial from 2 to 1\n", + " 88313 [params.py: set():1006] [1655474] Changing key nb in group spatial from 2 to 1\n", + " 88313 [params.py: set():1006] [1655496] Changing key p in group preprocess from 1 to 0\n", + " 88314 [params.py: set():1006] [1655522] Changing key nb in group spatial from 2 to 1\n", + " 88314 [params.py: set():1006] [1655497] Changing key p in group preprocess from 1 to 0\n", + " 88314 [params.py: set():1006] [1655505] Changing key nb in group temporal from 2 to 1\n", + " 88315 [params.py: set():1006] [1655479] Changing key nb in group spatial from 2 to 1\n", + " 88315 [params.py: set():1006] [1655473] Changing key nb in group spatial from 2 to 1\n", + " 88315 [params.py: set():1006] [1655542] Changing key nb in group spatial from 2 to 1\n", + " 88316 [params.py: set():1006] [1655544] Changing key nb in group temporal from 2 to 1\n", + " 88316 [params.py: set():1006] [1655476] Changing key p in group preprocess from 1 to 0\n", + " 88316 [params.py: set():1006] [1655490] Changing key p in group preprocess from 1 to 0\n", + " 88316 [params.py: set():1006] [1655484] Changing key nb in group temporal from 2 to 1\n", + " 88317 [params.py: set():1006] [1655477] Changing key nb in group temporal from 2 to 1\n", + " 88317 [params.py: set():1006] [1655548] Changing key nb in group temporal from 2 to 1\n", + " 88318 [params.py: set():1006] [1655483] Changing key nb in group spatial from 2 to 1\n", + " 88318 [params.py: set():1006] [1655508] Changing key nb in group spatial from 2 to 1\n", + " 88322 [map_reduce.py: cnmf_patches():78] [1660550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82260_102780START\n", + " 88319 [map_reduce.py: cnmf_patches():80] [1660361] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66900_87420Read file\n", + " 88319 [params.py: set():1006] [1655498] Changing key nb in group temporal from 2 to 1\n", + " 88318 [cnmf.py: fit():478] [1655514] using 5000 block_size_temp\n", + " 88350 [params.py: set():1006] [1655538] Changing key nb in group spatial from 2 to 1\n", + " 88350 [params.py: set():1006] [1655495] Changing key nb in group spatial from 2 to 1\n", + " 88350 [params.py: set():1006] [1655493] Changing key nb in group spatial from 2 to 1\n", + " 88351 [params.py: set():1006] [1655550] Changing key nb in group spatial from 2 to 1\n", + " 88351 [params.py: set():1006] [1655556] Changing key p in group preprocess from 1 to 0\n", + " 88351 [params.py: set():1006] [1655489] Changing key p in group temporal from 1 to 0\n", + " 88352 [params.py: set():1006] [1655488] Changing key p in group preprocess from 1 to 0\n", + " 88352 [params.py: set():1006] [1655537] Changing key p in group temporal from 1 to 0\n", + " 88352 [params.py: set():1006] [1655486] Changing key p in group preprocess from 1 to 0\n", + " 88353 [params.py: set():1006] [1655501] Changing key nb in group spatial from 2 to 1\n", + " 88353 [params.py: set():1006] [1655472] Changing key p in group temporal from 1 to 0\n", + " 88354 [params.py: set():1006] [1655527] Changing key p in group preprocess from 1 to 0\n", + " 88354 [params.py: set():1006] [1655487] Changing key nb in group spatial from 2 to 1\n", + " 88354 [params.py: set():1006] [1655559] Changing key p in group temporal from 1 to 0\n", + " 88354 [params.py: set():1006] [1655503] Changing key nb in group spatial from 2 to 1\n", + " 88355 [params.py: set():1006] [1655517] Changing key p in group preprocess from 1 to 0\n", + " 88355 [params.py: set():1006] [1655516] Changing key p in group preprocess from 1 to 0\n", + " 88356 [params.py: set():1006] [1655536] Changing key p in group preprocess from 1 to 0\n", + " 88356 [params.py: set():1006] [1655519] Changing key p in group temporal from 1 to 0\n", + " 88356 [params.py: set():1006] [1655560] Changing key p in group preprocess from 1 to 0\n", + " 88356 [params.py: set():1006] [1655532] Changing key p in group preprocess from 1 to 0\n", + " 88357 [params.py: set():1006] [1655529] Changing key p in group preprocess from 1 to 0\n", + " 88357 [params.py: set():1006] [1655513] Changing key p in group temporal from 1 to 0\n", + " 88357 [params.py: set():1006] [1655518] Changing key nb in group temporal from 2 to 1\n", + " 88358 [params.py: set():1006] [1655504] Changing key nb in group spatial from 2 to 1\n", + " 88358 [params.py: set():1006] [1655551] Changing key p in group preprocess from 1 to 0\n", + " 88358 [params.py: set():1006] [1655491] Changing key nb in group spatial from 2 to 1\n", + " 88359 [params.py: set():1006] [1655478] Changing key nb in group spatial from 2 to 1\n", + " 88359 [params.py: set():1006] [1655563] Changing key nb in group spatial from 2 to 1\n", + " 88359 [params.py: set():1006] [1655509] Changing key p in group preprocess from 1 to 0\n", + " 88360 [params.py: set():1006] [1655521] Changing key p in group preprocess from 1 to 0\n", + " 88360 [params.py: set():1006] [1655500] Changing key p in group preprocess from 1 to 0\n", + " 88360 [params.py: set():1006] [1655543] Changing key p in group temporal from 1 to 0\n", + " 88360 [params.py: set():1006] [1655561] Changing key p in group preprocess from 1 to 0\n", + " 88361 [params.py: set():1006] [1655553] Changing key p in group temporal from 1 to 0\n", + " 88361 [params.py: set():1006] [1655470] Changing key nb in group spatial from 2 to 1\n", + " 88361 [params.py: set():1006] [1655494] Changing key nb in group spatial from 2 to 1\n", + " 88362 [params.py: set():1006] [1655479] Changing key p in group preprocess from 1 to 0\n", + " 88362 [params.py: set():1006] [1655499] Changing key p in group temporal from 1 to 0\n", + " 88362 [params.py: set():1006] [1655525] Changing key p in group preprocess from 1 to 0\n", + " 88363 [params.py: set():1006] [1655502] Changing key p in group preprocess from 1 to 0\n", + " 88363 [params.py: set():1006] [1655485] Changing key p in group preprocess from 1 to 0\n", + " 88363 [params.py: set():1006] [1655562] Changing key nb in group spatial from 2 to 1\n", + " 88364 [params.py: set():1006] [1655541] Changing key p in group preprocess from 1 to 0\n", + " 88364 [params.py: set():1006] [1655524] Changing key nb in group spatial from 2 to 1\n", + " 88364 [params.py: set():1006] [1655528] Changing key nb in group spatial from 2 to 1\n", + " 88365 [params.py: set():1006] [1655522] Changing key p in group preprocess from 1 to 0\n", + " 88367 [params.py: set():1006] [1655564] Changing key p in group preprocess from 1 to 0\n", + " 88365 [params.py: set():1006] [1655520] Changing key p in group temporal from 1 to 0\n", + " 88366 [params.py: set():1006] [1655511] Changing key p in group temporal from 1 to 0\n", + " 88367 [params.py: set():1006] [1655546] Changing key p in group preprocess from 1 to 0\n", + " 88370 [params.py: set():1006] [1655547] Changing key p in group preprocess from 1 to 0\n", + " 88367 [params.py: set():1006] [1655497] Changing key p in group temporal from 1 to 0\n", + " 88366 [params.py: set():1006] [1655557] Changing key nb in group spatial from 2 to 1\n", + " 88368 [params.py: set():1006] [1655552] Changing key p in group temporal from 1 to 0\n", + " 88366 [params.py: set():1006] [1655533] Changing key p in group preprocess from 1 to 0\n", + " 88365 [params.py: set():1006] [1655531] Changing key p in group temporal from 1 to 0\n", + " 88368 [params.py: set():1006] [1655540] Changing key p in group preprocess from 1 to 0\n", + " 88366 [params.py: set():1006] [1655512] Changing key p in group preprocess from 1 to 0\n", + " 88369 [params.py: set():1006] [1655534] Changing key p in group preprocess from 1 to 0\n", + " 88370 [cnmf.py: fit():436] [1655530] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88371 [params.py: set():1006] [1655506] Changing key nb in group spatial from 2 to 1\n", + " 88369 [params.py: set():1006] [1655545] Changing key nb in group spatial from 2 to 1\n", + " 88369 [params.py: set():1006] [1655475] Changing key p in group preprocess from 1 to 0\n", + " 88371 [params.py: set():1006] [1655535] Changing key p in group temporal from 1 to 0\n", + " 88372 [params.py: set():1006] [1655492] Changing key p in group preprocess from 1 to 0\n", + " 88370 [params.py: set():1006] [1655473] Changing key p in group preprocess from 1 to 0\n", + " 88371 [params.py: set():1006] [1655482] Changing key nb in group spatial from 2 to 1\n", + " 88369 [params.py: set():1006] [1655469] Changing key p in group preprocess from 1 to 0\n", + " 88368 [params.py: set():1006] [1655507] Changing key p in group preprocess from 1 to 0\n", + " 88372 [params.py: set():1006] [1655474] Changing key p in group preprocess from 1 to 0\n", + " 88373 [params.py: set():1006] [1655505] Changing key nb in group spatial from 2 to 1\n", + " 88372 [params.py: set():1006] [1655510] Changing key nb in group spatial from 2 to 1\n", + " 88381 [map_reduce.py: cnmf_patches():80] [1660550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82260_102780Read file\n", + " 88379 [params.py: set():1006] [1655498] Changing key nb in group spatial from 2 to 1\n", + " 88379 [cnmf.py: fit():481] [1655514] preprocessing ...\n", + " 88378 [params.py: set():1006] [1655508] Changing key p in group preprocess from 1 to 0\n", + " 88375 [params.py: set():1006] [1655554] Changing key p in group temporal from 1 to 0\n", + " 88377 [params.py: set():1006] [1655483] Changing key p in group preprocess from 1 to 0\n", + " 88377 [params.py: set():1006] [1655484] Changing key nb in group spatial from 2 to 1\n", + " 88378 [params.py: set():1006] [1655539] Changing key nb in group spatial from 2 to 1\n", + " 88377 [params.py: set():1006] [1655476] Changing key p in group temporal from 1 to 0\n", + " 88376 [params.py: set():1006] [1655549] Changing key p in group preprocess from 1 to 0\n", + " 88376 [params.py: set():1006] [1655477] Changing key nb in group spatial from 2 to 1\n", + " 88375 [params.py: set():1006] [1655544] Changing key nb in group spatial from 2 to 1\n", + " 88377 [params.py: set():1006] [1655548] Changing key nb in group spatial from 2 to 1\n", + " 88376 [params.py: set():1006] [1655542] Changing key p in group preprocess from 1 to 0\n", + " 88374 [params.py: set():1006] [1655481] Changing key p in group preprocess from 1 to 0\n", + " 88374 [params.py: set():1006] [1655496] Changing key p in group temporal from 1 to 0\n", + " 88375 [params.py: set():1006] [1655490] Changing key p in group temporal from 1 to 0\n", + " 88373 [params.py: set():1006] [1655526] Changing key nb in group spatial from 2 to 1\n", + " 88374 [params.py: set():1006] [1655480] Changing key nb in group spatial from 2 to 1\n", + " 88374 [params.py: set():1006] [1655523] Changing key p in group preprocess from 1 to 0\n", + " 88394 [map_reduce.py: cnmf_patches():100] [1660129] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51540_72060file loaded\n", + " 88412 [params.py: set():1006] [1655494] Changing key p in group preprocess from 1 to 0\n", + " 88413 [params.py: set():1006] [1655485] Changing key p in group temporal from 1 to 0\n", + " 88413 [params.py: set():1006] [1655470] Changing key p in group preprocess from 1 to 0\n", + " 88414 [params.py: set():1006] [1655562] Changing key p in group preprocess from 1 to 0\n", + " 88414 [cnmf.py: fit():436] [1655559] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88420 [params.py: set():1006] [1655502] Changing key p in group temporal from 1 to 0\n", + " 88421 [params.py: set():1006] [1655478] Changing key p in group preprocess from 1 to 0\n", + " 88417 [params.py: set():1006] [1655509] Changing key p in group temporal from 1 to 0\n", + " 88417 [params.py: set():1006] [1655486] Changing key p in group temporal from 1 to 0\n", + " 88420 [params.py: set():1006] [1655563] Changing key p in group preprocess from 1 to 0\n", + " 88421 [params.py: set():1006] [1655516] Changing key p in group temporal from 1 to 0\n", + " 88423 [params.py: set():1006] [1655561] Changing key p in group temporal from 1 to 0\n", + " 88424 [params.py: set():1006] [1655503] Changing key p in group preprocess from 1 to 0\n", + " 88423 [params.py: set():1006] [1655524] Changing key p in group preprocess from 1 to 0\n", + " 88422 [params.py: set():1006] [1655527] Changing key p in group temporal from 1 to 0\n", + " 88418 [cnmf.py: fit():436] [1655553] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88422 [params.py: set():1006] [1655501] Changing key p in group preprocess from 1 to 0\n", + " 88429 [cnmf.py: fit():436] [1655535] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88421 [cnmf.py: fit():436] [1655543] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88419 [params.py: set():1006] [1655517] Changing key p in group temporal from 1 to 0\n", + " 88428 [params.py: set():1006] [1655540] Changing key p in group temporal from 1 to 0\n", + " 88417 [params.py: set():1006] [1655536] Changing key p in group temporal from 1 to 0\n", + " 88426 [params.py: set():1006] [1655532] Changing key p in group temporal from 1 to 0\n", + " 88427 [params.py: set():1006] [1655545] Changing key p in group preprocess from 1 to 0\n", + " 88418 [cnmf.py: fit():436] [1655499] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88428 [params.py: set():1006] [1655551] Changing key p in group temporal from 1 to 0\n", + " 88427 [params.py: set():1006] [1655504] Changing key p in group preprocess from 1 to 0\n", + " 88426 [params.py: set():1006] [1655500] Changing key p in group temporal from 1 to 0\n", + " 88430 [params.py: set():1006] [1655512] Changing key p in group temporal from 1 to 0\n", + " 88416 [params.py: set():1006] [1655491] Changing key p in group preprocess from 1 to 0\n", + " 88430 [cnmf.py: fit():436] [1655472] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88425 [cnmf.py: fit():436] [1655497] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88424 [cnmf.py: fit():436] [1655519] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88416 [params.py: set():1006] [1655528] Changing key p in group preprocess from 1 to 0\n", + " 88427 [cnmf.py: fit():449] [1655530] (8000, 41, 40)\n", + " 88426 [cnmf.py: fit():436] [1655552] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88431 [params.py: set():1006] [1655493] Changing key p in group preprocess from 1 to 0\n", + " 88430 [params.py: set():1006] [1655533] Changing key p in group temporal from 1 to 0\n", + " 88425 [params.py: set():1006] [1655557] Changing key p in group preprocess from 1 to 0\n", + " 88424 [params.py: set():1006] [1655547] Changing key p in group temporal from 1 to 0\n", + " 88428 [params.py: set():1006] [1655560] Changing key p in group temporal from 1 to 0\n", + " 88422 [params.py: set():1006] [1655518] Changing key nb in group spatial from 2 to 1\n", + " 88419 [cnmf.py: fit():436] [1655513] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88418 [params.py: set():1006] [1655525] Changing key p in group temporal from 1 to 0\n", + " 88429 [cnmf.py: fit():436] [1655489] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88431 [params.py: set():1006] [1655546] Changing key p in group temporal from 1 to 0\n", + " 88415 [params.py: set():1006] [1655522] Changing key p in group temporal from 1 to 0\n", + " 88420 [params.py: set():1006] [1655479] Changing key p in group temporal from 1 to 0\n", + " 88432 [params.py: set():1006] [1655492] Changing key p in group temporal from 1 to 0\n", + " 88416 [params.py: set():1006] [1655541] Changing key p in group temporal from 1 to 0\n", + " 88431 [params.py: set():1006] [1655506] Changing key p in group preprocess from 1 to 0\n", + " 88415 [params.py: set():1006] [1655487] Changing key p in group preprocess from 1 to 0\n", + " 88432 [params.py: set():1006] [1655521] Changing key p in group temporal from 1 to 0\n", + " 88423 [params.py: set():1006] [1655529] Changing key p in group temporal from 1 to 0\n", + " 88429 [cnmf.py: fit():436] [1655511] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88432 [cnmf.py: fit():436] [1655531] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88434 [params.py: set():1006] [1655534] Changing key p in group temporal from 1 to 0\n", + " 88434 [cnmf.py: fit():436] [1655520] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88434 [params.py: set():1006] [1655564] Changing key p in group temporal from 1 to 0\n", + " 88435 [params.py: set():1006] [1655482] Changing key p in group preprocess from 1 to 0\n", + " 88435 [params.py: set():1006] [1655475] Changing key p in group temporal from 1 to 0\n", + " 88436 [params.py: set():1006] [1655488] Changing key p in group temporal from 1 to 0\n", + " 88435 [params.py: set():1006] [1655474] Changing key p in group temporal from 1 to 0\n", + " 88433 [cnmf.py: fit():436] [1655537] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88436 [params.py: set():1006] [1655469] Changing key p in group temporal from 1 to 0\n", + " 88433 [params.py: set():1006] [1655556] Changing key p in group temporal from 1 to 0\n", + " 88438 [cnmf.py: fit():436] [1655490] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88437 [params.py: set():1006] [1655507] Changing key p in group temporal from 1 to 0\n", + " 88437 [params.py: set():1006] [1655473] Changing key p in group temporal from 1 to 0\n", + " 88438 [params.py: set():1006] [1655510] Changing key p in group preprocess from 1 to 0\n", + " 88439 [params.py: set():1006] [1655526] Changing key p in group preprocess from 1 to 0\n", + " 88439 [params.py: set():1006] [1655548] Changing key p in group preprocess from 1 to 0\n", + " 88437 [params.py: set():1006] [1655550] Changing key p in group preprocess from 1 to 0\n", + " 88440 [cnmf.py: fit():436] [1655496] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88440 [params.py: set():1006] [1655480] Changing key p in group preprocess from 1 to 0\n", + " 88441 [params.py: set():1006] [1655495] Changing key p in group preprocess from 1 to 0\n", + " 88442 [cnmf.py: fit():436] [1655476] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88442 [params.py: set():1006] [1655477] Changing key p in group preprocess from 1 to 0\n", + " 88442 [params.py: set():1006] [1655542] Changing key p in group temporal from 1 to 0\n", + " 88441 [params.py: set():1006] [1655523] Changing key p in group temporal from 1 to 0\n", + " 88440 [params.py: set():1006] [1655544] Changing key p in group preprocess from 1 to 0\n", + " 88443 [params.py: set():1006] [1655539] Changing key p in group preprocess from 1 to 0\n", + " 88438 [params.py: set():1006] [1655505] Changing key p in group preprocess from 1 to 0\n", + " 88443 [params.py: set():1006] [1655549] Changing key p in group temporal from 1 to 0\n", + " 88444 [params.py: set():1006] [1655484] Changing key p in group preprocess from 1 to 0\n", + " 88443 [params.py: set():1006] [1655481] Changing key p in group temporal from 1 to 0\n", + " 88445 [cnmf.py: fit():436] [1655554] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88444 [params.py: set():1006] [1655483] Changing key p in group temporal from 1 to 0\n", + " 88444 [params.py: set():1006] [1655538] Changing key p in group preprocess from 1 to 0\n", + " 88445 [params.py: set():1006] [1655508] Changing key p in group temporal from 1 to 0\n", + " 88445 [pre_processing.py:interpolate_missing_data():41] [1655514] Checking for missing data entries (NaN)\n", + " 88446 [params.py: set():1006] [1655498] Changing key p in group preprocess from 1 to 0\n", + " 88477 [params.py: set():1006] [1655563] Changing key p in group temporal from 1 to 0\n", + " 88479 [params.py: set():1006] [1655524] Changing key p in group temporal from 1 to 0\n", + " 88477 [cnmf.py: fit():436] [1655516] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88482 [params.py: set():1006] [1655494] Changing key p in group temporal from 1 to 0\n", + " 88477 [params.py: set():1006] [1655503] Changing key p in group temporal from 1 to 0\n", + " 88479 [cnmf.py: fit():436] [1655536] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88478 [cnmf.py: fit():449] [1655535] (8000, 41, 41)\n", + " 88484 [cnmf.py: fit():466] [1655530] Using 1 processes\n", + " 88480 [params.py: set():1006] [1655493] Changing key p in group temporal from 1 to 0\n", + " 88481 [cnmf.py: fit():436] [1655509] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88476 [cnmf.py: fit():449] [1655543] (8000, 41, 41)\n", + " 88479 [params.py: set():1006] [1655545] Changing key p in group temporal from 1 to 0\n", + " 88482 [cnmf.py: fit():436] [1655512] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88482 [cnmf.py: fit():436] [1655533] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88483 [cnmf.py: fit():449] [1655499] (8000, 41, 41)\n", + " 88480 [params.py: set():1006] [1655501] Changing key p in group temporal from 1 to 0\n", + " 88487 [cnmf.py: fit():436] [1655551] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88489 [cnmf.py: fit():449] [1655519] (8000, 41, 41)\n", + " 88485 [cnmf.py: fit():436] [1655502] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88486 [cnmf.py: fit():436] [1655540] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88487 [cnmf.py: fit():436] [1655561] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88484 [params.py: set():1006] [1655528] Changing key p in group temporal from 1 to 0\n", + " 88486 [cnmf.py: fit():436] [1655560] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88481 [cnmf.py: fit():436] [1655532] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88483 [cnmf.py: fit():449] [1655472] (8000, 41, 41)\n", + " 88489 [params.py: set():1006] [1655557] Changing key p in group temporal from 1 to 0\n", + " 88486 [cnmf.py: fit():449] [1655497] (8000, 41, 40)\n", + " 88485 [cnmf.py: fit():436] [1655547] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88484 [cnmf.py: fit():436] [1655546] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88487 [cnmf.py: fit():436] [1655525] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88478 [cnmf.py: fit():436] [1655527] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88488 [cnmf.py: fit():436] [1655517] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88488 [cnmf.py: fit():436] [1655541] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88480 [cnmf.py: fit():436] [1655500] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88485 [params.py: set():1006] [1655491] Changing key p in group temporal from 1 to 0\n", + " 88490 [cnmf.py: fit():436] [1655492] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88489 [params.py: set():1006] [1655504] Changing key p in group temporal from 1 to 0\n", + " 88491 [cnmf.py: fit():436] [1655522] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88490 [cnmf.py: fit():449] [1655552] (8000, 41, 41)\n", + " 88490 [cnmf.py: fit():449] [1655513] (8000, 41, 41)\n", + " 88475 [cnmf.py: fit():449] [1655553] (8000, 41, 41)\n", + " 88491 [cnmf.py: fit():436] [1655479] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88475 [params.py: set():1006] [1655478] Changing key p in group temporal from 1 to 0\n", + " 88474 [cnmf.py: fit():436] [1655485] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88492 [params.py: set():1006] [1655518] Changing key p in group preprocess from 1 to 0\n", + " 88474 [cnmf.py: fit():436] [1655486] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88492 [cnmf.py: fit():436] [1655564] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88476 [params.py: set():1006] [1655470] Changing key p in group temporal from 1 to 0\n", + " 88493 [params.py: set():1006] [1655506] Changing key p in group temporal from 1 to 0\n", + " 88493 [cnmf.py: fit():449] [1655489] (8000, 41, 41)\n", + " 88476 [cnmf.py: fit():449] [1655559] (8000, 41, 41)\n", + " 88494 [cnmf.py: fit():436] [1655474] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88496 [params.py: set():1006] [1655487] Changing key p in group temporal from 1 to 0\n", + " 88496 [cnmf.py: fit():449] [1655520] (8000, 41, 41)\n", + " 88494 [cnmf.py: fit():449] [1655531] (8000, 41, 41)\n", + " 88495 [cnmf.py: fit():436] [1655534] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88495 [cnmf.py: fit():436] [1655521] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88495 [cnmf.py: fit():449] [1655537] (8000, 41, 41)\n", + " 88496 [cnmf.py: fit():449] [1655511] (8000, 41, 41)\n", + " 88497 [cnmf.py: fit():436] [1655469] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88494 [cnmf.py: fit():436] [1655529] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88497 [cnmf.py: fit():436] [1655475] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88498 [cnmf.py: fit():436] [1655488] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88473 [params.py: set():1006] [1655562] Changing key p in group temporal from 1 to 0\n", + " 88499 [cnmf.py: fit():449] [1655490] (8000, 41, 41)\n", + " 88499 [cnmf.py: fit():436] [1655556] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88498 [params.py: set():1006] [1655482] Changing key p in group temporal from 1 to 0\n", + " 88500 [cnmf.py: fit():436] [1655507] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88501 [params.py: set():1006] [1655480] Changing key p in group temporal from 1 to 0\n", + " 88502 [cnmf.py: fit():449] [1655496] (8000, 41, 41)\n", + " 88502 [params.py: set():1006] [1655548] Changing key p in group temporal from 1 to 0\n", + " 88503 [cnmf.py: fit():449] [1655476] (8000, 41, 41)\n", + " 88500 [params.py: set():1006] [1655526] Changing key p in group temporal from 1 to 0\n", + " 88501 [params.py: set():1006] [1655495] Changing key p in group temporal from 1 to 0\n", + " 88504 [params.py: set():1006] [1655550] Changing key p in group temporal from 1 to 0\n", + " 88503 [params.py: set():1006] [1655477] Changing key p in group temporal from 1 to 0\n", + " 88502 [cnmf.py: fit():436] [1655473] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88501 [params.py: set():1006] [1655510] Changing key p in group temporal from 1 to 0\n", + " 88505 [params.py: set():1006] [1655544] Changing key p in group temporal from 1 to 0\n", + " 88505 [cnmf.py: fit():436] [1655523] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88506 [cnmf.py: fit():436] [1655549] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88504 [cnmf.py: fit():436] [1655542] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88506 [params.py: set():1006] [1655539] Changing key p in group temporal from 1 to 0\n", + " 88508 [params.py: set():1006] [1655538] Changing key p in group temporal from 1 to 0\n", + " 88507 [cnmf.py: fit():449] [1655554] (8000, 41, 41)\n", + " 88506 [params.py: set():1006] [1655505] Changing key p in group temporal from 1 to 0\n", + " 88508 [cnmf.py: fit():436] [1655481] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88507 [params.py: set():1006] [1655484] Changing key p in group temporal from 1 to 0\n", + " 88508 [cnmf.py: fit():436] [1655483] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88509 [cnmf.py: fit():436] [1655508] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88527 [params.py: set():1006] [1655498] Changing key p in group temporal from 1 to 0\n", + " 88554 [cnmf.py: fit():477] [1655530] using 400 pixels per process\n", + " 88557 [cnmf.py: fit():449] [1655527] (8000, 41, 41)\n", + " 88552 [cnmf.py: fit():466] [1655499] Using 1 processes\n", + " 88555 [cnmf.py: fit():449] [1655540] (8000, 41, 41)\n", + " 88552 [cnmf.py: fit():449] [1655533] (8000, 41, 41)\n", + " 88554 [cnmf.py: fit():466] [1655472] Using 1 processes\n", + " 88557 [cnmf.py: fit():449] [1655547] (8000, 41, 41)\n", + " 88556 [cnmf.py: fit():466] [1655519] Using 1 processes\n", + " 88556 [cnmf.py: fit():436] [1655524] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88553 [cnmf.py: fit():436] [1655545] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88555 [cnmf.py: fit():436] [1655528] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88556 [cnmf.py: fit():466] [1655497] Using 1 processes\n", + " 88553 [cnmf.py: fit():449] [1655512] (8000, 41, 41)\n", + " 88559 [cnmf.py: fit():449] [1655541] (8000, 41, 41)\n", + " 88560 [cnmf.py: fit():449] [1655492] (8000, 41, 41)\n", + " 88546 [cnmf.py: fit():449] [1655536] (8000, 41, 41)\n", + " 88558 [cnmf.py: fit():449] [1655561] (8000, 41, 41)\n", + " 88558 [cnmf.py: fit():449] [1655525] (8000, 41, 41)\n", + " 88552 [cnmf.py: fit():466] [1655535] Using 1 processes\n", + " 88559 [cnmf.py: fit():449] [1655502] (8000, 41, 41)\n", + " 88558 [cnmf.py: fit():449] [1655516] (8000, 41, 41)\n", + " 88561 [cnmf.py: fit():436] [1655557] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88557 [cnmf.py: fit():449] [1655517] (8000, 41, 41)\n", + " 88561 [cnmf.py: fit():436] [1655501] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88560 [cnmf.py: fit():436] [1655504] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88564 [cnmf.py: fit():436] [1655563] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88562 [cnmf.py: fit():449] [1655546] (8000, 41, 41)\n", + " 88551 [cnmf.py: fit():466] [1655543] Using 1 processes\n", + " 88555 [cnmf.py: fit():449] [1655560] (8000, 41, 41)\n", + " 88563 [cnmf.py: fit():449] [1655551] (8000, 41, 41)\n", + " 88561 [cnmf.py: fit():449] [1655532] (8000, 41, 40)\n", + " 88554 [cnmf.py: fit():436] [1655503] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88560 [cnmf.py: fit():449] [1655500] (8000, 41, 40)\n", + " 88563 [cnmf.py: fit():436] [1655494] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88563 [cnmf.py: fit():466] [1655552] Using 1 processes\n", + " 88562 [cnmf.py: fit():466] [1655513] Using 1 processes\n", + " 88566 [cnmf.py: fit():449] [1655509] (8000, 41, 41)\n", + " 88564 [cnmf.py: fit():436] [1655491] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88566 [cnmf.py: fit():436] [1655506] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88568 [cnmf.py: fit():436] [1655470] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88569 [params.py: set():1006] [1655518] Changing key p in group temporal from 1 to 0\n", + " 88567 [cnmf.py: fit():449] [1655479] (8000, 41, 41)\n", + " 88569 [cnmf.py: fit():449] [1655486] (8000, 41, 41)\n", + " 88565 [cnmf.py: fit():449] [1655522] (8000, 41, 41)\n", + " 88568 [cnmf.py: fit():449] [1655485] (8000, 41, 41)\n", + " 88567 [cnmf.py: fit():466] [1655553] Using 1 processes\n", + " 88567 [cnmf.py: fit():466] [1655489] Using 1 processes\n", + " 88568 [cnmf.py: fit():449] [1655564] (8000, 41, 41)\n", + " 88570 [cnmf.py: fit():436] [1655478] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88546 [cnmf.py: fit():436] [1655493] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88571 [cnmf.py: fit():466] [1655559] Using 1 processes\n", + " 88573 [cnmf.py: fit():466] [1655537] Using 1 processes\n", + " 88572 [cnmf.py: fit():449] [1655474] (8000, 41, 40)\n", + " 88574 [cnmf.py: fit():436] [1655487] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88573 [cnmf.py: fit():449] [1655534] (8000, 41, 41)\n", + " 88573 [cnmf.py: fit():449] [1655521] (8000, 41, 41)\n", + " 88572 [cnmf.py: fit():466] [1655531] Using 1 processes\n", + " 88572 [cnmf.py: fit():466] [1655511] Using 1 processes\n", + " 88571 [cnmf.py: fit():466] [1655520] Using 1 processes\n", + " 88575 [cnmf.py: fit():449] [1655475] (8000, 41, 41)\n", + " 88575 [cnmf.py: fit():449] [1655469] (8000, 41, 41)\n", + " 88577 [cnmf.py: fit():449] [1655529] (8000, 41, 41)\n", + " 88576 [cnmf.py: fit():449] [1655507] (8000, 41, 41)\n", + " 88577 [cnmf.py: fit():466] [1655490] Using 1 processes\n", + " 88576 [cnmf.py: fit():436] [1655562] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88577 [cnmf.py: fit():436] [1655482] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88578 [cnmf.py: fit():449] [1655556] (8000, 41, 41)\n", + " 88578 [cnmf.py: fit():449] [1655488] (8000, 41, 41)\n", + " 88580 [cnmf.py: fit():436] [1655548] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88581 [cnmf.py: fit():436] [1655495] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88579 [cnmf.py: fit():436] [1655480] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88581 [cnmf.py: fit():466] [1655496] Using 1 processes\n", + " 88582 [cnmf.py: fit():436] [1655526] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88580 [cnmf.py: fit():436] [1655477] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88580 [cnmf.py: fit():466] [1655476] Using 1 processes\n", + " 88582 [cnmf.py: fit():436] [1655550] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88584 [cnmf.py: fit():449] [1655549] (8000, 41, 41)\n", + " 88582 [cnmf.py: fit():449] [1655473] (8000, 41, 41)\n", + " 88583 [cnmf.py: fit():436] [1655544] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88584 [cnmf.py: fit():436] [1655510] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88585 [cnmf.py: fit():449] [1655523] (8000, 41, 41)\n", + " 88584 [cnmf.py: fit():436] [1655539] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88585 [cnmf.py: fit():449] [1655542] (8000, 41, 41)\n", + " 88585 [cnmf.py: fit():436] [1655538] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88586 [cnmf.py: fit():449] [1655481] (8000, 41, 41)\n", + " 88586 [cnmf.py: fit():436] [1655484] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88587 [cnmf.py: fit():466] [1655554] Using 1 processes\n", + " 88587 [cnmf.py: fit():436] [1655505] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88587 [cnmf.py: fit():449] [1655483] (8000, 41, 41)\n", + " 88588 [cnmf.py: fit():449] [1655508] (8000, 41, 41)\n", + " 88588 [cnmf.py: fit():436] [1655498] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88589 [map_reduce.py: cnmf_patches():100] [1660361] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66900_87420file loaded\n", + " 88623 [cnmf.py: fit():466] [1655536] Using 1 processes\n", + " 88621 [cnmf.py: fit():466] [1655547] Using 1 processes\n", + " 88620 [cnmf.py: fit():466] [1655541] Using 1 processes\n", + " 88621 [cnmf.py: fit():466] [1655533] Using 1 processes\n", + " 88625 [cnmf.py: fit():466] [1655517] Using 1 processes\n", + " 88619 [cnmf.py: fit():449] [1655524] (8000, 41, 41)\n", + " 88622 [cnmf.py: fit():477] [1655499] using 400 pixels per process\n", + " 88624 [cnmf.py: fit():466] [1655540] Using 1 processes\n", + " 88624 [cnmf.py: fit():477] [1655472] using 400 pixels per process\n", + " 88622 [cnmf.py: fit():466] [1655525] Using 1 processes\n", + " 88623 [cnmf.py: fit():477] [1655535] using 400 pixels per process\n", + " 88622 [cnmf.py: fit():449] [1655528] (8000, 41, 41)\n", + " 88620 [cnmf.py: fit():466] [1655492] Using 1 processes\n", + " 88619 [cnmf.py: fit():477] [1655519] using 400 pixels per process\n", + " 88620 [cnmf.py: fit():449] [1655545] (8000, 41, 41)\n", + " 88624 [cnmf.py: fit():466] [1655561] Using 1 processes\n", + " 88627 [cnmf.py: fit():477] [1655497] using 400 pixels per process\n", + " 88625 [cnmf.py: fit():449] [1655504] (8000, 41, 41)\n", + " 88627 [cnmf.py: fit():449] [1655563] (8000, 41, 41)\n", + " 88626 [cnmf.py: fit():466] [1655560] Using 1 processes\n", + " 88628 [cnmf.py: fit():466] [1655532] Using 1 processes\n", + " 88625 [cnmf.py: fit():478] [1655530] using 5000 block_size_temp\n", + " 88627 [cnmf.py: fit():477] [1655552] using 400 pixels per process\n", + " 88621 [cnmf.py: fit():466] [1655512] Using 1 processes\n", + " 88625 [cnmf.py: fit():466] [1655546] Using 1 processes\n", + " 88626 [cnmf.py: fit():466] [1655516] Using 1 processes\n", + " 88629 [cnmf.py: fit():466] [1655551] Using 1 processes\n", + " 88629 [cnmf.py: fit():449] [1655501] (8000, 41, 41)\n", + " 88630 [cnmf.py: fit():466] [1655500] Using 1 processes\n", + " 88628 [cnmf.py: fit():477] [1655513] using 400 pixels per process\n", + " 88628 [cnmf.py: fit():449] [1655557] (8000, 41, 41)\n", + " 88630 [cnmf.py: fit():477] [1655543] using 400 pixels per process\n", + " 88631 [cnmf.py: fit():449] [1655503] (8000, 41, 41)\n", + " 88631 [cnmf.py: fit():466] [1655502] Using 1 processes\n", + " 88632 [cnmf.py: fit():449] [1655494] (8000, 41, 41)\n", + " 88618 [cnmf.py: fit():466] [1655527] Using 1 processes\n", + " 88632 [cnmf.py: fit():466] [1655509] Using 1 processes\n", + " 88634 [cnmf.py: fit():466] [1655485] Using 1 processes\n", + " 88633 [cnmf.py: fit():436] [1655518] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 88633 [cnmf.py: fit():449] [1655506] (8000, 41, 41)\n", + " 88634 [cnmf.py: fit():477] [1655553] using 400 pixels per process\n", + " 88635 [cnmf.py: fit():449] [1655491] (8000, 41, 41)\n", + " 88636 [cnmf.py: fit():466] [1655486] Using 1 processes\n", + " 88635 [cnmf.py: fit():449] [1655470] (8000, 41, 41)\n", + " 88636 [cnmf.py: fit():466] [1655522] Using 1 processes\n", + " 88637 [cnmf.py: fit():449] [1655478] (8000, 41, 41)\n", + " 88638 [cnmf.py: fit():477] [1655489] using 400 pixels per process\n", + " 88635 [cnmf.py: fit():466] [1655479] Using 1 processes\n", + " 88636 [cnmf.py: fit():466] [1655564] Using 1 processes\n", + " 88639 [cnmf.py: fit():466] [1655474] Using 1 processes\n", + " 88641 [cnmf.py: fit():466] [1655534] Using 1 processes\n", + " 88638 [cnmf.py: fit():477] [1655511] using 400 pixels per process\n", + " 88640 [cnmf.py: fit():477] [1655559] using 400 pixels per process\n", + " 88640 [cnmf.py: fit():449] [1655493] (8000, 41, 41)\n", + " 88639 [cnmf.py: fit():477] [1655531] using 400 pixels per process\n", + " 88640 [cnmf.py: fit():477] [1655537] using 400 pixels per process\n", + " 88642 [cnmf.py: fit():449] [1655487] (8000, 41, 41)\n", + " 88641 [cnmf.py: fit():466] [1655521] Using 1 processes\n", + " 88644 [cnmf.py: fit():477] [1655490] using 400 pixels per process\n", + " 88642 [cnmf.py: fit():477] [1655520] using 400 pixels per process\n", + " 88645 [cnmf.py: fit():449] [1655562] (8000, 41, 41)\n", + " 88644 [cnmf.py: fit():466] [1655529] Using 1 processes\n", + " 88643 [cnmf.py: fit():466] [1655469] Using 1 processes\n", + " 88643 [cnmf.py: fit():466] [1655475] Using 1 processes\n", + " 88646 [cnmf.py: fit():449] [1655548] (8000, 41, 40)\n", + " 88645 [cnmf.py: fit():466] [1655507] Using 1 processes\n", + " 88646 [cnmf.py: fit():466] [1655488] Using 1 processes\n", + " 88647 [cnmf.py: fit():449] [1655482] (8000, 41, 41)\n", + " 88647 [cnmf.py: fit():449] [1655495] (8000, 41, 41)\n", + " 88648 [cnmf.py: fit():449] [1655480] (8000, 41, 41)\n", + " 88649 [cnmf.py: fit():477] [1655496] using 400 pixels per process\n", + " 88648 [cnmf.py: fit():449] [1655477] (8000, 41, 41)\n", + " 88647 [cnmf.py: fit():466] [1655556] Using 1 processes\n", + " 88649 [cnmf.py: fit():477] [1655476] using 400 pixels per process\n", + " 88649 [cnmf.py: fit():449] [1655526] (8000, 41, 41)\n", + " 88650 [cnmf.py: fit():466] [1655549] Using 1 processes\n", + " 88651 [cnmf.py: fit():449] [1655510] (8000, 41, 41)\n", + " 88650 [cnmf.py: fit():466] [1655473] Using 1 processes\n", + " 88651 [cnmf.py: fit():449] [1655544] (8000, 41, 41)\n", + " 88651 [cnmf.py: fit():449] [1655550] (8000, 41, 41)\n", + " 88652 [cnmf.py: fit():449] [1655538] (8000, 41, 41)\n", + " 88653 [cnmf.py: fit():466] [1655481] Using 1 processes\n", + " 88653 [cnmf.py: fit():466] [1655542] Using 1 processes\n", + " 88653 [cnmf.py: fit():449] [1655484] (8000, 41, 41)\n", + " 88652 [cnmf.py: fit():449] [1655539] (8000, 41, 41)\n", + " 88654 [cnmf.py: fit():466] [1655523] Using 1 processes\n", + " 88654 [cnmf.py: fit():477] [1655554] using 400 pixels per process\n", + " 88655 [cnmf.py: fit():449] [1655505] (8000, 41, 41)\n", + " 88655 [cnmf.py: fit():466] [1655483] Using 1 processes\n", + " 88655 [cnmf.py: fit():466] [1655508] Using 1 processes\n", + " 88656 [cnmf.py: fit():449] [1655498] (8000, 41, 41)\n", + " 88682 [cnmf.py: fit():477] [1655540] using 400 pixels per process\n", + " 88685 [cnmf.py: fit():477] [1655541] using 400 pixels per process\n", + " 88681 [cnmf.py: fit():466] [1655528] Using 1 processes\n", + " 88684 [cnmf.py: fit():477] [1655560] using 400 pixels per process\n", + " 88681 [cnmf.py: fit():477] [1655547] using 400 pixels per process\n", + " 88685 [cnmf.py: fit():466] [1655545] Using 1 processes\n", + " 88684 [cnmf.py: fit():477] [1655532] using 400 pixels per process\n", + " 88682 [cnmf.py: fit():478] [1655535] using 5000 block_size_temp\n", + " 88686 [cnmf.py: fit():477] [1655546] using 400 pixels per process\n", + " 88683 [cnmf.py: fit():466] [1655524] Using 1 processes\n", + " 88681 [cnmf.py: fit():478] [1655472] using 5000 block_size_temp\n", + " 88686 [cnmf.py: fit():477] [1655512] using 400 pixels per process\n", + " 88684 [cnmf.py: fit():477] [1655533] using 400 pixels per process\n", + " 88686 [cnmf.py: fit():466] [1655563] Using 1 processes\n", + " 88688 [cnmf.py: fit():466] [1655504] Using 1 processes\n", + " 88683 [cnmf.py: fit():481] [1655530] preprocessing ...\n", + " 88688 [cnmf.py: fit():478] [1655497] using 5000 block_size_temp\n", + " 88687 [cnmf.py: fit():477] [1655551] using 400 pixels per process\n", + " 88688 [cnmf.py: fit():478] [1655499] using 5000 block_size_temp\n", + " 88687 [cnmf.py: fit():477] [1655561] using 400 pixels per process\n", + " 88687 [cnmf.py: fit():477] [1655536] using 400 pixels per process\n", + " 88689 [cnmf.py: fit():478] [1655552] using 5000 block_size_temp\n", + " 88680 [cnmf.py: fit():477] [1655525] using 400 pixels per process\n", + " 88683 [cnmf.py: fit():477] [1655492] using 400 pixels per process\n", + " 88689 [cnmf.py: fit():466] [1655557] Using 1 processes\n", + " 88685 [cnmf.py: fit():478] [1655519] using 5000 block_size_temp\n", + " 88690 [cnmf.py: fit():477] [1655500] using 400 pixels per process\n", + " 88689 [cnmf.py: fit():466] [1655501] Using 1 processes\n", + " 88690 [cnmf.py: fit():477] [1655516] using 400 pixels per process\n", + " 88691 [cnmf.py: fit():478] [1655543] using 5000 block_size_temp\n", + " 88691 [cnmf.py: fit():478] [1655513] using 5000 block_size_temp\n", + " 88692 [cnmf.py: fit():466] [1655503] Using 1 processes\n", + " 88692 [cnmf.py: fit():466] [1655494] Using 1 processes\n", + " 88693 [cnmf.py: fit():477] [1655502] using 400 pixels per process\n", + " 88694 [cnmf.py: fit():477] [1655485] using 400 pixels per process\n", + " 88697 [cnmf.py: fit():466] [1655478] Using 1 processes\n", + " 88695 [cnmf.py: fit():466] [1655506] Using 1 processes\n", + " 88694 [cnmf.py: fit():449] [1655518] (8000, 41, 41)\n", + " 88695 [cnmf.py: fit():466] [1655470] Using 1 processes\n", + " 88694 [cnmf.py: fit():477] [1655509] using 400 pixels per process\n", + " 88696 [cnmf.py: fit():477] [1655527] using 400 pixels per process\n", + " 88696 [cnmf.py: fit():466] [1655491] Using 1 processes\n", + " 88697 [cnmf.py: fit():478] [1655489] using 5000 block_size_temp\n", + " 88699 [cnmf.py: fit():478] [1655559] using 5000 block_size_temp\n", + " 88698 [cnmf.py: fit():478] [1655553] using 5000 block_size_temp\n", + " 88699 [cnmf.py: fit():477] [1655522] using 400 pixels per process\n", + " 88699 [cnmf.py: fit():478] [1655531] using 5000 block_size_temp\n", + " 88698 [cnmf.py: fit():477] [1655564] using 400 pixels per process\n", + " 88700 [cnmf.py: fit():477] [1655534] using 400 pixels per process\n", + " 88699 [cnmf.py: fit():478] [1655511] using 5000 block_size_temp\n", + " 88680 [cnmf.py: fit():477] [1655517] using 400 pixels per process\n", + " 88702 [cnmf.py: fit():477] [1655474] using 400 pixels per process\n", + " 88700 [cnmf.py: fit():477] [1655486] using 400 pixels per process\n", + " 88701 [cnmf.py: fit():477] [1655479] using 400 pixels per process\n", + " 88703 [cnmf.py: fit():478] [1655490] using 5000 block_size_temp\n", + " 88701 [cnmf.py: fit():478] [1655537] using 5000 block_size_temp\n", + " 88701 [cnmf.py: fit():466] [1655493] Using 1 processes\n", + " 88704 [cnmf.py: fit():477] [1655529] using 400 pixels per process\n", + " 88703 [cnmf.py: fit():466] [1655487] Using 1 processes\n", + " 88703 [cnmf.py: fit():477] [1655521] using 400 pixels per process\n", + " 88706 [cnmf.py: fit():477] [1655488] using 400 pixels per process\n", + " 88705 [cnmf.py: fit():466] [1655482] Using 1 processes\n", + " 88705 [cnmf.py: fit():477] [1655507] using 400 pixels per process\n", + " 88706 [cnmf.py: fit():466] [1655548] Using 1 processes\n", + " 88705 [cnmf.py: fit():478] [1655520] using 5000 block_size_temp\n", + " 88706 [cnmf.py: fit():466] [1655562] Using 1 processes\n", + " 88707 [cnmf.py: fit():477] [1655475] using 400 pixels per process\n", + " 88707 [cnmf.py: fit():477] [1655469] using 400 pixels per process\n", + " 88711 [cnmf.py: fit():466] [1655510] Using 1 processes\n", + " 88710 [cnmf.py: fit():466] [1655526] Using 1 processes\n", + " 88709 [cnmf.py: fit():477] [1655556] using 400 pixels per process\n", + " 88708 [cnmf.py: fit():478] [1655496] using 5000 block_size_temp\n", + " 88709 [cnmf.py: fit():466] [1655477] Using 1 processes\n", + " 88707 [cnmf.py: fit():466] [1655495] Using 1 processes\n", + " 88710 [cnmf.py: fit():477] [1655549] using 400 pixels per process\n", + " 88710 [cnmf.py: fit():478] [1655476] using 5000 block_size_temp\n", + " 88708 [cnmf.py: fit():466] [1655480] Using 1 processes\n", + " 88711 [cnmf.py: fit():466] [1655544] Using 1 processes\n", + " 88711 [cnmf.py: fit():477] [1655473] using 400 pixels per process\n", + " 88714 [cnmf.py: fit():466] [1655539] Using 1 processes\n", + " 88715 [cnmf.py: fit():478] [1655554] using 5000 block_size_temp\n", + " 88714 [cnmf.py: fit():477] [1655542] using 400 pixels per process\n", + " 88713 [cnmf.py: fit():477] [1655481] using 400 pixels per process\n", + " 88714 [cnmf.py: fit():477] [1655523] using 400 pixels per process\n", + " 88713 [cnmf.py: fit():466] [1655484] Using 1 processes\n", + " 88713 [cnmf.py: fit():466] [1655538] Using 1 processes\n", + " 88712 [cnmf.py: fit():466] [1655550] Using 1 processes\n", + " 88716 [cnmf.py: fit():477] [1655508] using 400 pixels per process\n", + " 88717 [cnmf.py: fit():466] [1655498] Using 1 processes\n", + " 88716 [cnmf.py: fit():477] [1655483] using 400 pixels per process\n", + " 88715 [cnmf.py: fit():466] [1655505] Using 1 processes\n", + " 88740 [cnmf.py: fit():478] [1655532] using 5000 block_size_temp\n", + " 88741 [cnmf.py: fit():481] [1655535] preprocessing ...\n", + " 88741 [cnmf.py: fit():478] [1655560] using 5000 block_size_temp\n", + " 88744 [cnmf.py: fit():481] [1655472] preprocessing ...\n", + " 88742 [cnmf.py: fit():478] [1655533] using 5000 block_size_temp\n", + " 88743 [cnmf.py: fit():477] [1655528] using 400 pixels per process\n", + " 88741 [cnmf.py: fit():478] [1655540] using 5000 block_size_temp\n", + " 88743 [cnmf.py: fit():478] [1655547] using 5000 block_size_temp\n", + " 88742 [cnmf.py: fit():477] [1655504] using 400 pixels per process\n", + " 88740 [cnmf.py: fit():477] [1655545] using 400 pixels per process\n", + " 88744 [cnmf.py: fit():481] [1655497] preprocessing ...\n", + " 88745 [cnmf.py: fit():478] [1655512] using 5000 block_size_temp\n", + " 88744 [cnmf.py: fit():481] [1655552] preprocessing ...\n", + " 88743 [cnmf.py: fit():481] [1655499] preprocessing ...\n", + " 88742 [cnmf.py: fit():478] [1655546] using 5000 block_size_temp\n", + " 88746 [cnmf.py: fit():478] [1655551] using 5000 block_size_temp\n", + " 88740 [cnmf.py: fit():478] [1655541] using 5000 block_size_temp\n", + " 88745 [cnmf.py: fit():478] [1655525] using 5000 block_size_temp\n", + " 88745 [pre_processing.py:interpolate_missing_data():41] [1655530] Checking for missing data entries (NaN)\n", + " 88747 [cnmf.py: fit():478] [1655536] using 5000 block_size_temp\n", + " 88746 [cnmf.py: fit():478] [1655492] using 5000 block_size_temp\n", + " 88747 [cnmf.py: fit():478] [1655561] using 5000 block_size_temp\n", + " 88748 [cnmf.py: fit():477] [1655557] using 400 pixels per process\n", + " 88746 [cnmf.py: fit():477] [1655563] using 400 pixels per process\n", + " 88749 [cnmf.py: fit():478] [1655500] using 5000 block_size_temp\n", + " 88749 [cnmf.py: fit():481] [1655519] preprocessing ...\n", + " 88749 [cnmf.py: fit():478] [1655516] using 5000 block_size_temp\n", + " 88748 [cnmf.py: fit():477] [1655501] using 400 pixels per process\n", + " 88750 [cnmf.py: fit():481] [1655513] preprocessing ...\n", + " 88750 [cnmf.py: fit():481] [1655543] preprocessing ...\n", + " 88754 [cnmf.py: fit():477] [1655506] using 400 pixels per process\n", + " 88751 [cnmf.py: fit():477] [1655503] using 400 pixels per process\n", + " 88752 [cnmf.py: fit():478] [1655502] using 5000 block_size_temp\n", + " 88754 [cnmf.py: fit():466] [1655518] Using 1 processes\n", + " 88753 [cnmf.py: fit():477] [1655494] using 400 pixels per process\n", + " 88753 [cnmf.py: fit():478] [1655509] using 5000 block_size_temp\n", + " 88752 [cnmf.py: fit():478] [1655485] using 5000 block_size_temp\n", + " 88755 [cnmf.py: fit():477] [1655491] using 400 pixels per process\n", + " 88754 [cnmf.py: fit():478] [1655527] using 5000 block_size_temp\n", + " 88755 [cnmf.py: fit():481] [1655559] preprocessing ...\n", + " 88756 [cnmf.py: fit():478] [1655522] using 5000 block_size_temp\n", + " 88739 [cnmf.py: fit():477] [1655524] using 400 pixels per process\n", + " 88756 [cnmf.py: fit():481] [1655553] preprocessing ...\n", + " 88757 [cnmf.py: fit():481] [1655489] preprocessing ...\n", + " 88756 [cnmf.py: fit():477] [1655478] using 400 pixels per process\n", + " 88755 [cnmf.py: fit():477] [1655470] using 400 pixels per process\n", + " 88760 [cnmf.py: fit():478] [1655479] using 5000 block_size_temp\n", + " 88759 [cnmf.py: fit():478] [1655486] using 5000 block_size_temp\n", + " 88757 [cnmf.py: fit():481] [1655531] preprocessing ...\n", + " 88757 [cnmf.py: fit():481] [1655511] preprocessing ...\n", + " 88761 [cnmf.py: fit():478] [1655517] using 5000 block_size_temp\n", + " 88760 [cnmf.py: fit():481] [1655490] preprocessing ...\n", + " 88759 [cnmf.py: fit():478] [1655564] using 5000 block_size_temp\n", + " 88759 [cnmf.py: fit():478] [1655474] using 5000 block_size_temp\n", + " 88760 [cnmf.py: fit():481] [1655537] preprocessing ...\n", + " 88758 [cnmf.py: fit():478] [1655534] using 5000 block_size_temp\n", + " 88761 [cnmf.py: fit():477] [1655493] using 400 pixels per process\n", + " 88762 [cnmf.py: fit():478] [1655529] using 5000 block_size_temp\n", + " 88762 [cnmf.py: fit():477] [1655487] using 400 pixels per process\n", + " 88762 [cnmf.py: fit():478] [1655521] using 5000 block_size_temp\n", + " 88767 [cnmf.py: fit():478] [1655488] using 5000 block_size_temp\n", + " 88769 [cnmf.py: fit():477] [1655548] using 400 pixels per process\n", + " 88770 [cnmf.py: fit():478] [1655475] using 5000 block_size_temp\n", + " 88770 [cnmf.py: fit():477] [1655562] using 400 pixels per process\n", + " 88770 [cnmf.py: fit():478] [1655469] using 5000 block_size_temp\n", + " 88769 [cnmf.py: fit():477] [1655482] using 400 pixels per process\n", + " 88769 [cnmf.py: fit():481] [1655520] preprocessing ...\n", + " 88768 [cnmf.py: fit():478] [1655507] using 5000 block_size_temp\n", + " 88779 [cnmf.py: fit():477] [1655480] using 400 pixels per process\n", + " 88780 [cnmf.py: fit():478] [1655473] using 5000 block_size_temp\n", + " 88779 [cnmf.py: fit():481] [1655496] preprocessing ...\n", + " 88778 [cnmf.py: fit():477] [1655510] using 400 pixels per process\n", + " 88778 [cnmf.py: fit():481] [1655476] preprocessing ...\n", + " 88778 [cnmf.py: fit():478] [1655556] using 5000 block_size_temp\n", + " 88778 [cnmf.py: fit():478] [1655549] using 5000 block_size_temp\n", + " 88779 [cnmf.py: fit():477] [1655544] using 400 pixels per process\n", + " 88777 [cnmf.py: fit():477] [1655495] using 400 pixels per process\n", + " 88777 [cnmf.py: fit():477] [1655477] using 400 pixels per process\n", + " 88777 [cnmf.py: fit():477] [1655526] using 400 pixels per process\n", + " 88783 [cnmf.py: fit():477] [1655538] using 400 pixels per process\n", + " 88783 [cnmf.py: fit():477] [1655484] using 400 pixels per process\n", + " 88782 [cnmf.py: fit():478] [1655523] using 5000 block_size_temp\n", + " 88783 [cnmf.py: fit():477] [1655550] using 400 pixels per process\n", + " 88782 [cnmf.py: fit():481] [1655554] preprocessing ...\n", + " 88782 [cnmf.py: fit():478] [1655481] using 5000 block_size_temp\n", + " 88781 [cnmf.py: fit():477] [1655539] using 400 pixels per process\n", + " 88781 [cnmf.py: fit():478] [1655542] using 5000 block_size_temp\n", + " 88785 [cnmf.py: fit():477] [1655505] using 400 pixels per process\n", + " 88785 [cnmf.py: fit():478] [1655483] using 5000 block_size_temp\n", + " 88784 [cnmf.py: fit():477] [1655498] using 400 pixels per process\n", + " 88784 [cnmf.py: fit():478] [1655508] using 5000 block_size_temp\n", + " 88800 [cnmf.py: fit():481] [1655536] preprocessing ...\n", + " 88800 [cnmf.py: fit():481] [1655540] preprocessing ...\n", + " 88795 [map_reduce.py: cnmf_patches():100] [1660550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82260_102780file loaded\n", + " 88799 [cnmf.py: fit():481] [1655533] preprocessing ...\n", + " 88816 [cnmf.py: fit():481] [1655532] preprocessing ...\n", + " 88815 [cnmf.py: fit():481] [1655547] preprocessing ...\n", + " 88801 [cnmf.py: fit():478] [1655545] using 5000 block_size_temp\n", + " 88800 [pre_processing.py:interpolate_missing_data():41] [1655472] Checking for missing data entries (NaN)\n", + " 88815 [pre_processing.py:interpolate_missing_data():41] [1655552] Checking for missing data entries (NaN)\n", + " 88816 [pre_processing.py:interpolate_missing_data():41] [1655497] Checking for missing data entries (NaN)\n", + " 88798 [pre_processing.py:interpolate_missing_data():41] [1655535] Checking for missing data entries (NaN)\n", + " 88799 [cnmf.py: fit():481] [1655560] preprocessing ...\n", + " 88816 [pre_processing.py:interpolate_missing_data():41] [1655499] Checking for missing data entries (NaN)\n", + " 88802 [cnmf.py: fit():478] [1655528] using 5000 block_size_temp\n", + " 88818 [cnmf.py: fit():481] [1655492] preprocessing ...\n", + " 88817 [cnmf.py: fit():481] [1655512] preprocessing ...\n", + " 88801 [cnmf.py: fit():478] [1655504] using 5000 block_size_temp\n", + " 88817 [cnmf.py: fit():481] [1655546] preprocessing ...\n", + " 88801 [cnmf.py: fit():481] [1655551] preprocessing ...\n", + " 88818 [cnmf.py: fit():481] [1655541] preprocessing ...\n", + " 88817 [cnmf.py: fit():481] [1655525] preprocessing ...\n", + " 88819 [cnmf.py: fit():481] [1655561] preprocessing ...\n", + " 88819 [cnmf.py: fit():478] [1655557] using 5000 block_size_temp\n", + " 88820 [cnmf.py: fit():478] [1655563] using 5000 block_size_temp\n", + " 88821 [cnmf.py: fit():481] [1655516] preprocessing ...\n", + " 88821 [cnmf.py: fit():481] [1655500] preprocessing ...\n", + " 88822 [pre_processing.py:interpolate_missing_data():41] [1655543] Checking for missing data entries (NaN)\n", + " 88821 [cnmf.py: fit():478] [1655501] using 5000 block_size_temp\n", + " 88825 [cnmf.py: fit():478] [1655506] using 5000 block_size_temp\n", + " 88824 [cnmf.py: fit():477] [1655518] using 400 pixels per process\n", + " 88825 [pre_processing.py:interpolate_missing_data():41] [1655513] Checking for missing data entries (NaN)\n", + " 88824 [cnmf.py: fit():481] [1655485] preprocessing ...\n", + " 88824 [cnmf.py: fit():478] [1655491] using 5000 block_size_temp\n", + " 88827 [cnmf.py: fit():478] [1655524] using 5000 block_size_temp\n", + " 88825 [cnmf.py: fit():478] [1655494] using 5000 block_size_temp\n", + " 88822 [pre_processing.py:interpolate_missing_data():41] [1655519] Checking for missing data entries (NaN)\n", + " 88823 [cnmf.py: fit():481] [1655509] preprocessing ...\n", + " 88826 [cnmf.py: fit():478] [1655478] using 5000 block_size_temp\n", + " 88828 [pre_processing.py:interpolate_missing_data():41] [1655489] Checking for missing data entries (NaN)\n", + " 88828 [pre_processing.py:interpolate_missing_data():41] [1655559] Checking for missing data entries (NaN)\n", + " 88828 [cnmf.py: fit():481] [1655522] preprocessing ...\n", + " 88827 [cnmf.py: fit():481] [1655527] preprocessing ...\n", + " 88829 [cnmf.py: fit():481] [1655479] preprocessing ...\n", + " 88826 [cnmf.py: fit():481] [1655502] preprocessing ...\n", + " 88829 [cnmf.py: fit():478] [1655503] using 5000 block_size_temp\n", + " 88829 [cnmf.py: fit():478] [1655470] using 5000 block_size_temp\n", + " 88826 [pre_processing.py:interpolate_missing_data():41] [1655553] Checking for missing data entries (NaN)\n", + " 88830 [cnmf.py: fit():481] [1655486] preprocessing ...\n", + " 88831 [pre_processing.py:interpolate_missing_data():41] [1655511] Checking for missing data entries (NaN)\n", + " 88831 [cnmf.py: fit():481] [1655517] preprocessing ...\n", + " 88830 [pre_processing.py:interpolate_missing_data():41] [1655490] Checking for missing data entries (NaN)\n", + " 88830 [pre_processing.py:interpolate_missing_data():41] [1655531] Checking for missing data entries (NaN)\n", + " 88831 [cnmf.py: fit():481] [1655474] preprocessing ...\n", + " 88832 [pre_processing.py:interpolate_missing_data():41] [1655537] Checking for missing data entries (NaN)\n", + " 88832 [cnmf.py: fit():481] [1655564] preprocessing ...\n", + " 88832 [cnmf.py: fit():481] [1655534] preprocessing ...\n", + " 88833 [cnmf.py: fit():481] [1655521] preprocessing ...\n", + " 88834 [cnmf.py: fit():478] [1655487] using 5000 block_size_temp\n", + " 88833 [cnmf.py: fit():481] [1655529] preprocessing ...\n", + " 88833 [cnmf.py: fit():478] [1655493] using 5000 block_size_temp\n", + " 88835 [cnmf.py: fit():481] [1655488] preprocessing ...\n", + " 88841 [pre_processing.py:interpolate_missing_data():41] [1655520] Checking for missing data entries (NaN)\n", + " 88841 [cnmf.py: fit():481] [1655507] preprocessing ...\n", + " 88841 [cnmf.py: fit():478] [1655482] using 5000 block_size_temp\n", + " 88840 [cnmf.py: fit():478] [1655562] using 5000 block_size_temp\n", + " 88840 [cnmf.py: fit():481] [1655475] preprocessing ...\n", + " 88840 [cnmf.py: fit():478] [1655548] using 5000 block_size_temp\n", + " 88839 [cnmf.py: fit():481] [1655469] preprocessing ...\n", + " 88846 [cnmf.py: fit():478] [1655526] using 5000 block_size_temp\n", + " 88844 [cnmf.py: fit():478] [1655477] using 5000 block_size_temp\n", + " 88845 [cnmf.py: fit():481] [1655473] preprocessing ...\n", + " 88844 [cnmf.py: fit():478] [1655510] using 5000 block_size_temp\n", + " 88845 [cnmf.py: fit():478] [1655480] using 5000 block_size_temp\n", + " 88845 [cnmf.py: fit():478] [1655544] using 5000 block_size_temp\n", + " 88845 [cnmf.py: fit():478] [1655495] using 5000 block_size_temp\n", + " 88843 [cnmf.py: fit():481] [1655556] preprocessing ...\n", + " 88843 [pre_processing.py:interpolate_missing_data():41] [1655476] Checking for missing data entries (NaN)\n", + " 88844 [cnmf.py: fit():481] [1655549] preprocessing ...\n", + " 88843 [pre_processing.py:interpolate_missing_data():41] [1655496] Checking for missing data entries (NaN)\n", + " 88849 [cnmf.py: fit():478] [1655539] using 5000 block_size_temp\n", + " 88848 [cnmf.py: fit():478] [1655538] using 5000 block_size_temp\n", + " 88848 [cnmf.py: fit():481] [1655523] preprocessing ...\n", + " 88848 [pre_processing.py:interpolate_missing_data():41] [1655554] Checking for missing data entries (NaN)\n", + " 88848 [cnmf.py: fit():481] [1655481] preprocessing ...\n", + " 88847 [cnmf.py: fit():478] [1655550] using 5000 block_size_temp\n", + " 88849 [cnmf.py: fit():481] [1655542] preprocessing ...\n", + " 88847 [cnmf.py: fit():478] [1655484] using 5000 block_size_temp\n", + " 88853 [cnmf.py: fit():478] [1655498] using 5000 block_size_temp\n", + " 88853 [cnmf.py: fit():481] [1655483] preprocessing ...\n", + " 88854 [cnmf.py: fit():481] [1655508] preprocessing ...\n", + " 88853 [cnmf.py: fit():478] [1655505] using 5000 block_size_temp\n", + " 88916 [pre_processing.py:interpolate_missing_data():41] [1655512] Checking for missing data entries (NaN)\n", + " 88916 [pre_processing.py:interpolate_missing_data():41] [1655547] Checking for missing data entries (NaN)\n", + " 88936 [pre_processing.py:interpolate_missing_data():41] [1655536] Checking for missing data entries (NaN)\n", + " 88936 [pre_processing.py:interpolate_missing_data():41] [1655492] Checking for missing data entries (NaN)\n", + " 88937 [pre_processing.py:interpolate_missing_data():41] [1655560] Checking for missing data entries (NaN)\n", + " 88935 [pre_processing.py:interpolate_missing_data():41] [1655551] Checking for missing data entries (NaN)\n", + " 88936 [pre_processing.py:interpolate_missing_data():41] [1655540] Checking for missing data entries (NaN)\n", + " 88937 [cnmf.py: fit():481] [1655504] preprocessing ...\n", + " 88937 [cnmf.py: fit():481] [1655545] preprocessing ...\n", + " 88938 [pre_processing.py:interpolate_missing_data():41] [1655546] Checking for missing data entries (NaN)\n", + " 88938 [pre_processing.py:interpolate_missing_data():41] [1655525] Checking for missing data entries (NaN)\n", + " 88915 [pre_processing.py:interpolate_missing_data():41] [1655532] Checking for missing data entries (NaN)\n", + " 88951 [pre_processing.py:interpolate_missing_data():41] [1655541] Checking for missing data entries (NaN)\n", + " 88953 [cnmf.py: fit():481] [1655557] preprocessing ...\n", + " 88952 [pre_processing.py:interpolate_missing_data():41] [1655561] Checking for missing data entries (NaN)\n", + " 88955 [pre_processing.py:interpolate_missing_data():41] [1655500] Checking for missing data entries (NaN)\n", + " 88973 [cnmf.py: fit():481] [1655501] preprocessing ...\n", + " 88973 [cnmf.py: fit():481] [1655563] preprocessing ...\n", + " 88972 [pre_processing.py:interpolate_missing_data():41] [1655516] Checking for missing data entries (NaN)\n", + " 88988 [cnmf.py: fit():478] [1655518] using 5000 block_size_temp\n", + " 88899 [pre_processing.py:interpolate_missing_data():41] [1655533] Checking for missing data entries (NaN)\n", + " 88988 [cnmf.py: fit():481] [1655491] preprocessing ...\n", + " 88989 [pre_processing.py:interpolate_missing_data():41] [1655485] Checking for missing data entries (NaN)\n", + " 88988 [pre_processing.py:interpolate_missing_data():41] [1655509] Checking for missing data entries (NaN)\n", + " 89019 [cnmf.py: fit():481] [1655478] preprocessing ...\n", + " 89020 [pre_processing.py:interpolate_missing_data():41] [1655479] Checking for missing data entries (NaN)\n", + " 88989 [cnmf.py: fit():481] [1655494] preprocessing ...\n", + " 89035 [pre_processing.py:interpolate_missing_data():41] [1655527] Checking for missing data entries (NaN)\n", + " 88954 [cnmf.py: fit():481] [1655528] preprocessing ...\n", + " 89051 [cnmf.py: fit():481] [1655524] preprocessing ...\n", + " 88971 [cnmf.py: fit():481] [1655506] preprocessing ...\n", + " 89003 [pre_processing.py:interpolate_missing_data():41] [1655522] Checking for missing data entries (NaN)\n", + " 89052 [pre_processing.py:interpolate_missing_data():41] [1655502] Checking for missing data entries (NaN)\n", + " 89052 [cnmf.py: fit():481] [1655470] preprocessing ...\n", + " 89083 [cnmf.py: fit():481] [1655503] preprocessing ...\n", + " 89084 [pre_processing.py:interpolate_missing_data():41] [1655486] Checking for missing data entries (NaN)\n", + " 89099 [pre_processing.py:interpolate_missing_data():41] [1655517] Checking for missing data entries (NaN)\n", + " 89100 [pre_processing.py:interpolate_missing_data():41] [1655564] Checking for missing data entries (NaN)\n", + " 89115 [pre_processing.py:interpolate_missing_data():41] [1655534] Checking for missing data entries (NaN)\n", + " 89100 [pre_processing.py:interpolate_missing_data():41] [1655474] Checking for missing data entries (NaN)\n", + " 89124 [cnmf.py: fit():481] [1655487] preprocessing ...\n", + " 89125 [pre_processing.py:interpolate_missing_data():41] [1655529] Checking for missing data entries (NaN)\n", + " 89125 [cnmf.py: fit():481] [1655493] preprocessing ...\n", + " 89124 [pre_processing.py:interpolate_missing_data():41] [1655521] Checking for missing data entries (NaN)\n", + " 89137 [cnmf.py: fit():481] [1655482] preprocessing ...\n", + " 89137 [cnmf.py: fit():481] [1655562] preprocessing ...\n", + " 89151 [pre_processing.py:interpolate_missing_data():41] [1655469] Checking for missing data entries (NaN)\n", + " 89137 [pre_processing.py:interpolate_missing_data():41] [1655507] Checking for missing data entries (NaN)\n", + " 89136 [pre_processing.py:interpolate_missing_data():41] [1655475] Checking for missing data entries (NaN)\n", + " 89138 [cnmf.py: fit():481] [1655548] preprocessing ...\n", + " 89136 [pre_processing.py:interpolate_missing_data():41] [1655488] Checking for missing data entries (NaN)\n", + " 89162 [cnmf.py: fit():481] [1655526] preprocessing ...\n", + " 89162 [pre_processing.py:interpolate_missing_data():41] [1655556] Checking for missing data entries (NaN)\n", + " 89180 [cnmf.py: fit():481] [1655480] preprocessing ...\n", + " 89162 [cnmf.py: fit():481] [1655495] preprocessing ...\n", + " 89179 [pre_processing.py:interpolate_missing_data():41] [1655549] Checking for missing data entries (NaN)\n", + " 89161 [cnmf.py: fit():481] [1655477] preprocessing ...\n", + " 89162 [pre_processing.py:interpolate_missing_data():41] [1655473] Checking for missing data entries (NaN)\n", + " 89161 [cnmf.py: fit():481] [1655544] preprocessing ...\n", + " 89161 [cnmf.py: fit():481] [1655510] preprocessing ...\n", + " 89201 [cnmf.py: fit():481] [1655550] preprocessing ...\n", + " 89201 [pre_processing.py:interpolate_missing_data():41] [1655481] Checking for missing data entries (NaN)\n", + " 89201 [cnmf.py: fit():481] [1655539] preprocessing ...\n", + " 89201 [cnmf.py: fit():481] [1655538] preprocessing ...\n", + " 89219 [pre_processing.py:interpolate_missing_data():41] [1655542] Checking for missing data entries (NaN)\n", + " 89220 [cnmf.py: fit():481] [1655484] preprocessing ...\n", + " 89200 [pre_processing.py:interpolate_missing_data():41] [1655523] Checking for missing data entries (NaN)\n", + " 89228 [pre_processing.py:interpolate_missing_data():41] [1655483] Checking for missing data entries (NaN)\n", + " 89228 [pre_processing.py:interpolate_missing_data():41] [1655508] Checking for missing data entries (NaN)\n", + " 89229 [cnmf.py: fit():481] [1655505] preprocessing ...\n", + " 89228 [cnmf.py: fit():481] [1655498] preprocessing ...\n", + " 89315 [pre_processing.py:interpolate_missing_data():41] [1655545] Checking for missing data entries (NaN)\n", + " 89299 [pre_processing.py:interpolate_missing_data():41] [1655504] Checking for missing data entries (NaN)\n", + " 89460 [pre_processing.py:interpolate_missing_data():41] [1655557] Checking for missing data entries (NaN)\n", + " 89460 [pre_processing.py:interpolate_missing_data():41] [1655501] Checking for missing data entries (NaN)\n", + " 89508 [pre_processing.py:interpolate_missing_data():41] [1655491] Checking for missing data entries (NaN)\n", + " 89507 [cnmf.py: fit():481] [1655518] preprocessing ...\n", + " 89459 [pre_processing.py:interpolate_missing_data():41] [1655563] Checking for missing data entries (NaN)\n", + " 89527 [pre_processing.py:interpolate_missing_data():41] [1655478] Checking for missing data entries (NaN)\n", + " 89563 [pre_processing.py:interpolate_missing_data():41] [1655494] Checking for missing data entries (NaN)\n", + " 89579 [pre_processing.py:interpolate_missing_data():41] [1655528] Checking for missing data entries (NaN)\n", + " 89624 [pre_processing.py:interpolate_missing_data():41] [1655503] Checking for missing data entries (NaN)\n", + " 89623 [pre_processing.py:interpolate_missing_data():41] [1655470] Checking for missing data entries (NaN)\n", + " 89592 [pre_processing.py:interpolate_missing_data():41] [1655506] Checking for missing data entries (NaN)\n", + " 89592 [pre_processing.py:interpolate_missing_data():41] [1655524] Checking for missing data entries (NaN)\n", + " 89755 [pre_processing.py:interpolate_missing_data():41] [1655493] Checking for missing data entries (NaN)\n", + " 89724 [pre_processing.py:interpolate_missing_data():41] [1655487] Checking for missing data entries (NaN)\n", + " 89799 [pre_processing.py:interpolate_missing_data():41] [1655548] Checking for missing data entries (NaN)\n", + " 89760 [pre_processing.py:interpolate_missing_data():41] [1655482] Checking for missing data entries (NaN)\n", + " 89760 [pre_processing.py:interpolate_missing_data():41] [1655562] Checking for missing data entries (NaN)\n", + " 89881 [pre_processing.py:interpolate_missing_data():41] [1655510] Checking for missing data entries (NaN)\n", + " 89880 [pre_processing.py:interpolate_missing_data():41] [1655526] Checking for missing data entries (NaN)\n", + " 89880 [pre_processing.py:interpolate_missing_data():41] [1655477] Checking for missing data entries (NaN)\n", + " 89880 [pre_processing.py:interpolate_missing_data():41] [1655495] Checking for missing data entries (NaN)\n", + " 89881 [pre_processing.py:interpolate_missing_data():41] [1655544] Checking for missing data entries (NaN)\n", + " 89879 [pre_processing.py:interpolate_missing_data():41] [1655480] Checking for missing data entries (NaN)\n", + " 89912 [pre_processing.py:interpolate_missing_data():41] [1655538] Checking for missing data entries (NaN)\n", + " 89911 [pre_processing.py:interpolate_missing_data():41] [1655550] Checking for missing data entries (NaN)\n", + " 89912 [pre_processing.py:interpolate_missing_data():41] [1655484] Checking for missing data entries (NaN)\n", + " 89896 [pre_processing.py:interpolate_missing_data():41] [1655539] Checking for missing data entries (NaN)\n", + " 89976 [pre_processing.py:interpolate_missing_data():41] [1655498] Checking for missing data entries (NaN)\n", + " 89975 [pre_processing.py:interpolate_missing_data():41] [1655505] Checking for missing data entries (NaN)\n", + " 90095 [pre_processing.py:interpolate_missing_data():41] [1655518] Checking for missing data entries (NaN)\n", + " 90698 [params.py: set():1006] [1660129] Changing key rf in group patch from 20 to None\n", + " 90983 [params.py: set():1006] [1660129] Changing key stride in group patch from 10 to None\n", + " 91245 [params.py: set():1006] [1660361] Changing key rf in group patch from 20 to None\n", + " 91291 [params.py: set():1006] [1660129] Changing key nb in group init from 2 to 1\n", + " 91519 [params.py: set():1006] [1660361] Changing key stride in group patch from 10 to None\n", + " 91539 [params.py: set():1006] [1660129] Changing key nb in group temporal from 2 to 1\n", + " 91867 [params.py: set():1006] [1660361] Changing key nb in group init from 2 to 1\n", + " 91871 [params.py: set():1006] [1660129] Changing key nb in group spatial from 2 to 1\n", + " 92135 [params.py: set():1006] [1660361] Changing key nb in group temporal from 2 to 1\n", + " 92136 [params.py: set():1006] [1660129] Changing key p in group preprocess from 1 to 0\n", + " 92234 [params.py: set():1006] [1660550] Changing key rf in group patch from 20 to None\n", + " 92465 [params.py: set():1006] [1660129] Changing key p in group temporal from 1 to 0\n", + " 92466 [params.py: set():1006] [1660361] Changing key nb in group spatial from 2 to 1\n", + " 92591 [params.py: set():1006] [1660550] Changing key stride in group patch from 10 to None\n", + " 92707 [cnmf.py: fit():484] [1655514] initializing ...\n", + " 92747 [params.py: set():1006] [1660361] Changing key p in group preprocess from 1 to 0\n", + " 92754 [cnmf.py: fit():436] [1660129] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 92851 [params.py: set():1006] [1660550] Changing key nb in group init from 2 to 1\n", + " 93066 [initialization.py:initialize_components():292] [1655514] Variance Normalization\n", + " 93079 [params.py: set():1006] [1660361] Changing key p in group temporal from 1 to 0\n", + " 93080 [cnmf.py: fit():449] [1660129] (8000, 41, 41)\n", + " 93155 [params.py: set():1006] [1660550] Changing key nb in group temporal from 2 to 1\n", + " 93375 [cnmf.py: fit():466] [1660129] Using 1 processes\n", + " 93376 [cnmf.py: fit():436] [1660361] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 93467 [params.py: set():1006] [1660550] Changing key nb in group spatial from 2 to 1\n", + " 93663 [cnmf.py: fit():449] [1660361] (8000, 41, 41)\n", + " 93664 [cnmf.py: fit():477] [1660129] using 400 pixels per process\n", + " 93771 [params.py: set():1006] [1660550] Changing key p in group preprocess from 1 to 0\n", + " 93900 [cnmf.py: fit():478] [1660129] using 5000 block_size_temp\n", + " 93907 [cnmf.py: fit():466] [1660361] Using 1 processes\n", + " 93987 [params.py: set():1006] [1660550] Changing key p in group temporal from 1 to 0\n", + " 94056 [map_reduce.py: cnmf_patches():78] [1655514] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97620_118140START\n", + " 93751 [cnmf.py: fit():484] [1655530] initializing ...\n", + " 94191 [cnmf.py: fit():477] [1660361] using 400 pixels per process\n", + " 94195 [cnmf.py: fit():481] [1660129] preprocessing ...\n", + " 94210 [cnmf.py: fit():484] [1655497] initializing ...\n", + " 94250 [cnmf.py: fit():484] [1655531] initializing ...\n", + " 94299 [cnmf.py: fit():436] [1660550] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 94214 [cnmf.py: fit():484] [1655489] initializing ...\n", + " 94346 [cnmf.py: fit():484] [1655535] initializing ...\n", + " 94348 [cnmf.py: fit():484] [1655559] initializing ...\n", + " 94355 [map_reduce.py: cnmf_patches():80] [1655514] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97620_118140Read file\n", + " 94314 [cnmf.py: fit():484] [1655532] initializing ...\n", + " 94360 [cnmf.py: fit():484] [1655537] initializing ...\n", + " 94397 [cnmf.py: fit():484] [1655519] initializing ...\n", + " 94399 [cnmf.py: fit():484] [1655511] initializing ...\n", + " 94405 [cnmf.py: fit():484] [1655499] initializing ...\n", + " 94405 [initialization.py:initialize_components():292] [1655530] Variance Normalization\n", + " 94420 [cnmf.py: fit():484] [1655554] initializing ...\n", + " 94435 [pre_processing.py:interpolate_missing_data():41] [1660129] Checking for missing data entries (NaN)\n", + " 94441 [cnmf.py: fit():484] [1655553] initializing ...\n", + " 94441 [cnmf.py: fit():478] [1660361] using 5000 block_size_temp\n", + " 94451 [cnmf.py: fit():484] [1655552] initializing ...\n", + " 94476 [cnmf.py: fit():484] [1655543] initializing ...\n", + " 94480 [initialization.py:initialize_components():292] [1655497] Variance Normalization\n", + " 94492 [cnmf.py: fit():484] [1655490] initializing ...\n", + " 94493 [cnmf.py: fit():484] [1655513] initializing ...\n", + " 94167 [cnmf.py: fit():484] [1655520] initializing ...\n", + " 94424 [cnmf.py: fit():484] [1655474] initializing ...\n", + " 94531 [cnmf.py: fit():484] [1655472] initializing ...\n", + " 94533 [cnmf.py: fit():484] [1655496] initializing ...\n", + " 94459 [cnmf.py: fit():484] [1655540] initializing ...\n", + " 94523 [cnmf.py: fit():484] [1655541] initializing ...\n", + " 94542 [cnmf.py: fit():484] [1655486] initializing ...\n", + " 94480 [cnmf.py: fit():484] [1655547] initializing ...\n", + " 94463 [cnmf.py: fit():484] [1655546] initializing ...\n", + " 94555 [initialization.py:initialize_components():292] [1655531] Variance Normalization\n", + " 94467 [cnmf.py: fit():484] [1655479] initializing ...\n", + " 94556 [cnmf.py: fit():449] [1660550] (8000, 41, 41)\n", + " 94439 [cnmf.py: fit():484] [1655485] initializing ...\n", + " 94445 [cnmf.py: fit():484] [1655512] initializing ...\n", + " 94564 [cnmf.py: fit():484] [1655476] initializing ...\n", + " 94450 [cnmf.py: fit():484] [1655561] initializing ...\n", + " 94365 [cnmf.py: fit():484] [1655522] initializing ...\n", + " 94574 [cnmf.py: fit():484] [1655492] initializing ...\n", + " 94574 [initialization.py:initialize_components():292] [1655489] Variance Normalization\n", + " 94608 [initialization.py:initialize_components():292] [1655559] Variance Normalization\n", + " 94608 [initialization.py:initialize_components():292] [1655535] Variance Normalization\n", + " 94611 [cnmf.py: fit():484] [1655516] initializing ...\n", + " 94614 [cnmf.py: fit():484] [1655560] initializing ...\n", + " 94629 [cnmf.py: fit():484] [1655536] initializing ...\n", + " 94630 [initialization.py:initialize_components():292] [1655532] Variance Normalization\n", + " 94631 [initialization.py:initialize_components():292] [1655537] Variance Normalization\n", + " 94563 [cnmf.py: fit():484] [1655488] initializing ...\n", + " 94632 [cnmf.py: fit():484] [1655500] initializing ...\n", + " 94606 [cnmf.py: fit():484] [1655517] initializing ...\n", + " 94634 [cnmf.py: fit():484] [1655509] initializing ...\n", + " 94642 [cnmf.py: fit():484] [1655521] initializing ...\n", + " 94645 [cnmf.py: fit():484] [1655502] initializing ...\n", + " 94652 [cnmf.py: fit():484] [1655533] initializing ...\n", + " 94654 [cnmf.py: fit():484] [1655551] initializing ...\n", + " 94603 [cnmf.py: fit():484] [1655556] initializing ...\n", + " 94655 [initialization.py:initialize_components():292] [1655519] Variance Normalization\n", + " 94659 [initialization.py:initialize_components():292] [1655511] Variance Normalization\n", + " 94662 [cnmf.py: fit():484] [1655475] initializing ...\n", + " 94663 [initialization.py:initialize_components():292] [1655499] Variance Normalization\n", + " 94676 [initialization.py:initialize_components():292] [1655554] Variance Normalization\n", + " 94692 [initialization.py:initialize_components():292] [1655553] Variance Normalization\n", + " 94692 [cnmf.py: fit():481] [1660361] preprocessing ...\n", + " 94696 [initialization.py:initialize_components():292] [1655552] Variance Normalization\n", + " 94699 [cnmf.py: fit():484] [1655473] initializing ...\n", + " 94715 [initialization.py:initialize_components():292] [1655543] Variance Normalization\n", + " 94696 [cnmf.py: fit():484] [1655508] initializing ...\n", + " 94723 [cnmf.py: fit():484] [1655527] initializing ...\n", + " 94727 [initialization.py:initialize_components():292] [1655490] Variance Normalization\n", + " 94728 [initialization.py:initialize_components():292] [1655513] Variance Normalization\n", + " 94730 [cnmf.py: fit():484] [1655549] initializing ...\n", + " 94731 [initialization.py:initialize_components():292] [1655520] Variance Normalization\n", + " 94733 [cnmf.py: fit():484] [1655529] initializing ...\n", + " 94650 [cnmf.py: fit():484] [1655503] initializing ...\n", + " 94736 [cnmf.py: fit():484] [1655523] initializing ...\n", + " 94737 [initialization.py:initialize_components():292] [1655474] Variance Normalization\n", + " 94737 [initialization.py:initialize_components():292] [1655472] Variance Normalization\n", + " 94738 [initialization.py:initialize_components():292] [1655496] Variance Normalization\n", + " 94419 [cnmf.py: fit():484] [1655525] initializing ...\n", + " 94739 [initialization.py:initialize_components():292] [1655540] Variance Normalization\n", + " 94740 [initialization.py:initialize_components():292] [1655541] Variance Normalization\n", + " 94740 [initialization.py:initialize_components():292] [1655486] Variance Normalization\n", + " 94742 [cnmf.py: fit():484] [1655469] initializing ...\n", + " 94743 [initialization.py:initialize_components():292] [1655547] Variance Normalization\n", + " 94743 [initialization.py:initialize_components():292] [1655546] Variance Normalization\n", + " 94753 [cnmf.py: fit():484] [1655507] initializing ...\n", + " 94753 [initialization.py:initialize_components():292] [1655479] Variance Normalization\n", + " 94763 [cnmf.py: fit():466] [1660550] Using 1 processes\n", + " 94764 [initialization.py:initialize_components():292] [1655512] Variance Normalization\n", + " 94765 [initialization.py:initialize_components():292] [1655476] Variance Normalization\n", + " 94765 [initialization.py:initialize_components():292] [1655485] Variance Normalization\n", + " 94766 [initialization.py:initialize_components():292] [1655561] Variance Normalization\n", + " 94766 [initialization.py:initialize_components():292] [1655522] Variance Normalization\n", + " 94769 [cnmf.py: fit():484] [1655545] initializing ...\n", + " 94770 [cnmf.py: fit():484] [1655534] initializing ...\n", + " 94771 [initialization.py:initialize_components():292] [1655492] Variance Normalization\n", + " 94783 [cnmf.py: fit():484] [1655564] initializing ...\n", + " 94622 [cnmf.py: fit():484] [1655491] initializing ...\n", + " 94792 [cnmf.py: fit():484] [1655481] initializing ...\n", + " 94794 [cnmf.py: fit():484] [1655542] initializing ...\n", + " 94796 [cnmf.py: fit():484] [1655548] initializing ...\n", + " 94708 [cnmf.py: fit():484] [1655494] initializing ...\n", + " 94808 [initialization.py:initialize_components():292] [1655516] Variance Normalization\n", + " 94823 [initialization.py:initialize_components():292] [1655560] Variance Normalization\n", + " 94826 [cnmf.py: fit():484] [1655495] initializing ...\n", + " 94827 [initialization.py:initialize_components():292] [1655536] Variance Normalization\n", + " 94840 [initialization.py:initialize_components():292] [1655488] Variance Normalization\n", + " 94850 [cnmf.py: fit():484] [1655524] initializing ...\n", + " 94851 [initialization.py:initialize_components():292] [1655517] Variance Normalization\n", + " 94851 [initialization.py:initialize_components():292] [1655500] Variance Normalization\n", + " 94852 [initialization.py:initialize_components():292] [1655509] Variance Normalization\n", + " 94852 [initialization.py:initialize_components():292] [1655521] Variance Normalization\n", + " 94855 [cnmf.py: fit():484] [1655544] initializing ...\n", + " 94861 [cnmf.py: fit():484] [1655501] initializing ...\n", + " 94862 [cnmf.py: fit():484] [1655483] initializing ...\n", + " 94863 [initialization.py:initialize_components():292] [1655502] Variance Normalization\n", + " 94868 [initialization.py:initialize_components():292] [1655551] Variance Normalization\n", + " 94877 [cnmf.py: fit():484] [1655482] initializing ...\n", + " 94878 [initialization.py:initialize_components():292] [1655533] Variance Normalization\n", + " 94878 [initialization.py:initialize_components():292] [1655556] Variance Normalization\n", + " 94722 [cnmf.py: fit():484] [1655539] initializing ...\n", + " 94900 [cnmf.py: fit():484] [1655478] initializing ...\n", + " 94758 [cnmf.py: fit():484] [1655550] initializing ...\n", + " 94898 [cnmf.py: fit():484] [1655562] initializing ...\n", + " 94888 [initialization.py:initialize_components():292] [1655475] Variance Normalization\n", + " 94901 [cnmf.py: fit():484] [1655504] initializing ...\n", + " 94947 [initialization.py:initialize_components():292] [1655527] Variance Normalization\n", + " 94941 [cnmf.py: fit():484] [1655557] initializing ...\n", + " 94909 [cnmf.py: fit():484] [1655493] initializing ...\n", + " 94916 [pre_processing.py:interpolate_missing_data():41] [1660361] Checking for missing data entries (NaN)\n", + " 94813 [cnmf.py: fit():484] [1655498] initializing ...\n", + " 94928 [initialization.py:initialize_components():292] [1655473] Variance Normalization\n", + " 94937 [cnmf.py: fit():484] [1655563] initializing ...\n", + " 94939 [cnmf.py: fit():484] [1655487] initializing ...\n", + " 94953 [initialization.py:initialize_components():292] [1655508] Variance Normalization\n", + " 94961 [cnmf.py: fit():484] [1655477] initializing ...\n", + " 95029 [cnmf.py: fit():484] [1655528] initializing ...\n", + " 95028 [cnmf.py: fit():484] [1655470] initializing ...\n", + " 94963 [cnmf.py: fit():484] [1655506] initializing ...\n", + " 94984 [initialization.py:initialize_components():292] [1655549] Variance Normalization\n", + " 94985 [initialization.py:initialize_components():292] [1655523] Variance Normalization\n", + " 94991 [initialization.py:initialize_components():292] [1655503] Variance Normalization\n", + " 95007 [initialization.py:initialize_components():292] [1655529] Variance Normalization\n", + " 95008 [initialization.py:initialize_components():292] [1655525] Variance Normalization\n", + " 95017 [cnmf.py: fit():484] [1655480] initializing ...\n", + " 95035 [initialization.py:initialize_components():292] [1655469] Variance Normalization\n", + " 95114 [initialization.py:initialize_components():292] [1655542] Variance Normalization\n", + " 95114 [initialization.py:initialize_components():292] [1655494] Variance Normalization\n", + " 95051 [cnmf.py: fit():477] [1660550] using 400 pixels per process\n", + " 95052 [initialization.py:initialize_components():292] [1655507] Variance Normalization\n", + " 95079 [initialization.py:initialize_components():292] [1655534] Variance Normalization\n", + " 95080 [initialization.py:initialize_components():292] [1655545] Variance Normalization\n", + " 94952 [cnmf.py: fit():484] [1655518] initializing ...\n", + " 95095 [initialization.py:initialize_components():292] [1655564] Variance Normalization\n", + " 95104 [map_reduce.py: cnmf_patches():78] [1655530] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112980_133500START\n", + " 95104 [initialization.py:initialize_components():292] [1655491] Variance Normalization\n", + " 95105 [initialization.py:initialize_components():292] [1655481] Variance Normalization\n", + " 95112 [initialization.py:initialize_components():292] [1655548] Variance Normalization\n", + " 95113 [cnmf.py: fit():484] [1655526] initializing ...\n", + " 95263 [initialization.py:initialize_components():292] [1655550] Variance Normalization\n", + " 94859 [cnmf.py: fit():484] [1655484] initializing ...\n", + " 95256 [initialization.py:initialize_components():292] [1655482] Variance Normalization\n", + " 95141 [cnmf.py: fit():484] [1655505] initializing ...\n", + " 95171 [initialization.py:initialize_components():292] [1655495] Variance Normalization\n", + " 95180 [cnmf.py: fit():484] [1655538] initializing ...\n", + " 94779 [cnmf.py: fit():484] [1655510] initializing ...\n", + " 95196 [initialization.py:initialize_components():292] [1655524] Variance Normalization\n", + " 95227 [initialization.py:initialize_components():292] [1655544] Variance Normalization\n", + " 95236 [initialization.py:initialize_components():292] [1655501] Variance Normalization\n", + " 95236 [initialization.py:initialize_components():292] [1655483] Variance Normalization\n", + " 95268 [initialization.py:initialize_components():292] [1655562] Variance Normalization\n", + " 95273 [initialization.py:initialize_components():292] [1655478] Variance Normalization\n", + " 95274 [initialization.py:initialize_components():292] [1655504] Variance Normalization\n", + " 95274 [initialization.py:initialize_components():292] [1655539] Variance Normalization\n", + " 95278 [initialization.py:initialize_components():292] [1655493] Variance Normalization\n", + " 95315 [initialization.py:initialize_components():292] [1655498] Variance Normalization\n", + " 95319 [initialization.py:initialize_components():292] [1655487] Variance Normalization\n", + " 95319 [initialization.py:initialize_components():292] [1655563] Variance Normalization\n", + " 95328 [initialization.py:initialize_components():292] [1655477] Variance Normalization\n", + " 95335 [initialization.py:initialize_components():292] [1655557] Variance Normalization\n", + " 95336 [initialization.py:initialize_components():292] [1655506] Variance Normalization\n", + " 95420 [cnmf.py: fit():478] [1660550] using 5000 block_size_temp\n", + " 95387 [initialization.py:initialize_components():292] [1655470] Variance Normalization\n", + " 95388 [initialization.py:initialize_components():292] [1655480] Variance Normalization\n", + " 95408 [initialization.py:initialize_components():292] [1655528] Variance Normalization\n", + " 95477 [initialization.py:initialize_components():292] [1655526] Variance Normalization\n", + " 95447 [initialization.py:initialize_components():292] [1655518] Variance Normalization\n", + " 95463 [map_reduce.py: cnmf_patches():80] [1655530] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112980_133500Read file\n", + " 95506 [initialization.py:initialize_components():292] [1655505] Variance Normalization\n", + " 95516 [initialization.py:initialize_components():292] [1655538] Variance Normalization\n", + " 95527 [initialization.py:initialize_components():292] [1655510] Variance Normalization\n", + " 95559 [initialization.py:initialize_components():292] [1655484] Variance Normalization\n", + " 95680 [map_reduce.py: cnmf_patches():78] [1655497] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128340_148860START\n", + " 95681 [map_reduce.py: cnmf_patches():78] [1655520] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143700_164220START\n", + " 95682 [map_reduce.py: cnmf_patches():78] [1655552] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159060_179580START\n", + " 95683 [map_reduce.py: cnmf_patches():78] [1655490] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174420_194940START\n", + " 95700 [map_reduce.py: cnmf_patches():78] [1655553] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189780_210300START\n", + " 95701 [map_reduce.py: cnmf_patches():78] [1655499] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205140_225660START\n", + " 95702 [map_reduce.py: cnmf_patches():78] [1655472] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220500_241020START\n", + " 95712 [map_reduce.py: cnmf_patches():78] [1655554] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235860_256380START\n", + " 95780 [cnmf.py: fit():481] [1660550] preprocessing ...\n", + " 95814 [map_reduce.py: cnmf_patches():100] [1655514] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97620_118140file loaded\n", + " 95901 [map_reduce.py: cnmf_patches():80] [1655552] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159060_179580Read file\n", + " 95902 [map_reduce.py: cnmf_patches():80] [1655490] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174420_194940Read file\n", + " 95902 [map_reduce.py: cnmf_patches():80] [1655520] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143700_164220Read file\n", + " 95902 [map_reduce.py: cnmf_patches():80] [1655497] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128340_148860Read file\n", + " 95904 [map_reduce.py: cnmf_patches():80] [1655472] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220500_241020Read file\n", + " 95904 [map_reduce.py: cnmf_patches():80] [1655499] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205140_225660Read file\n", + " 95904 [map_reduce.py: cnmf_patches():80] [1655553] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189780_210300Read file\n", + " 95905 [map_reduce.py: cnmf_patches():80] [1655554] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235860_256380Read file\n", + " 95935 [map_reduce.py: cnmf_patches():78] [1655475] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236884_256892START\n", + " 95936 [pre_processing.py:interpolate_missing_data():41] [1660550] Checking for missing data entries (NaN)\n", + " 96044 [map_reduce.py: cnmf_patches():78] [1655511] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5490_26010START\n", + " 96045 [map_reduce.py: cnmf_patches():78] [1655559] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20850_41370START\n", + " 96046 [map_reduce.py: cnmf_patches():78] [1655513] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36210_56730START\n", + " 96047 [map_reduce.py: cnmf_patches():78] [1655532] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51570_72090START\n", + " 96048 [map_reduce.py: cnmf_patches():78] [1655496] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66930_87450START\n", + " 96049 [map_reduce.py: cnmf_patches():78] [1655537] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82290_102810START\n", + " 96050 [map_reduce.py: cnmf_patches():78] [1655500] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97650_118170START\n", + " 96051 [map_reduce.py: cnmf_patches():78] [1655531] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113010_133530START\n", + " 96051 [map_reduce.py: cnmf_patches():78] [1655533] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128370_148890START\n", + " 96052 [map_reduce.py: cnmf_patches():78] [1655543] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143730_164250START\n", + " 96053 [map_reduce.py: cnmf_patches():78] [1655535] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159090_179610START\n", + " 96054 [map_reduce.py: cnmf_patches():78] [1655527] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174450_194970START\n", + " 96054 [map_reduce.py: cnmf_patches():78] [1655534] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189810_210330START\n", + " 96056 [map_reduce.py: cnmf_patches():78] [1655486] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205170_225690START\n", + " 96056 [map_reduce.py: cnmf_patches():78] [1655489] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220530_241050START\n", + " 96058 [map_reduce.py: cnmf_patches():78] [1655519] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235890_256410START\n", + " 96059 [map_reduce.py: cnmf_patches():78] [1655492] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236914_256922START\n", + " 96059 [map_reduce.py: cnmf_patches():78] [1655541] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5520_26040START\n", + " 96060 [map_reduce.py: cnmf_patches():78] [1655536] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20880_41400START\n", + " 96061 [map_reduce.py: cnmf_patches():78] [1655516] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36240_56760START\n", + " 96062 [map_reduce.py: cnmf_patches():78] [1655561] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51600_72120START\n", + " 96062 [map_reduce.py: cnmf_patches():78] [1655522] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66960_87480START\n", + " 96063 [map_reduce.py: cnmf_patches():78] [1655512] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82320_102840START\n", + " 96064 [map_reduce.py: cnmf_patches():78] [1655525] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97680_118200START\n", + " 96065 [map_reduce.py: cnmf_patches():78] [1655551] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113040_133560START\n", + " 96065 [map_reduce.py: cnmf_patches():78] [1655488] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128400_148920START\n", + " 96066 [map_reduce.py: cnmf_patches():78] [1655507] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143760_164280START\n", + " 96067 [map_reduce.py: cnmf_patches():78] [1655540] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159120_179640START\n", + " 96069 [map_reduce.py: cnmf_patches():78] [1655476] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174480_195000START\n", + " 96069 [map_reduce.py: cnmf_patches():78] [1655474] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189840_210360START\n", + " 96070 [map_reduce.py: cnmf_patches():78] [1655564] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205200_225720START\n", + " 96070 [map_reduce.py: cnmf_patches():78] [1655469] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220560_241080START\n", + " 96071 [map_reduce.py: cnmf_patches():78] [1655524] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235920_256440START\n", + " 96074 [map_reduce.py: cnmf_patches():78] [1655544] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236944_256952START\n", + " 96092 [map_reduce.py: cnmf_patches():80] [1655475] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236884_256892Read file\n", + " 96095 [map_reduce.py: cnmf_patches():78] [1655485] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5550_26070START\n", + " 96096 [map_reduce.py: cnmf_patches():78] [1655502] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20910_41430START\n", + " 96097 [map_reduce.py: cnmf_patches():78] [1655560] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36270_56790START\n", + " 96098 [map_reduce.py: cnmf_patches():78] [1655547] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51630_72150START\n", + " 96098 [map_reduce.py: cnmf_patches():78] [1655529] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66990_87510START\n", + " 96099 [map_reduce.py: cnmf_patches():78] [1655556] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82350_102870START\n", + " 96100 [map_reduce.py: cnmf_patches():78] [1655521] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97710_118230START\n", + " 96101 [map_reduce.py: cnmf_patches():78] [1655479] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113070_133590START\n", + " 96102 [map_reduce.py: cnmf_patches():78] [1655549] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128430_148950START\n", + " 96102 [map_reduce.py: cnmf_patches():78] [1655523] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143790_164310START\n", + " 96103 [map_reduce.py: cnmf_patches():78] [1655545] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159150_179670START\n", + " 96104 [map_reduce.py: cnmf_patches():78] [1655503] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174510_195030START\n", + " 96105 [map_reduce.py: cnmf_patches():78] [1655546] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189870_210390START\n", + " 96106 [map_reduce.py: cnmf_patches():78] [1655509] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205230_225750START\n", + " 96107 [map_reduce.py: cnmf_patches():78] [1655548] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220590_241110START\n", + " 96107 [map_reduce.py: cnmf_patches():78] [1655481] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235950_256470START\n", + " 96108 [map_reduce.py: cnmf_patches():78] [1655557] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236974_256982START\n", + " 96109 [map_reduce.py: cnmf_patches():78] [1655517] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5580_26100START\n", + " 96110 [map_reduce.py: cnmf_patches():78] [1655483] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20940_41460START\n", + " 96111 [map_reduce.py: cnmf_patches():78] [1655501] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36300_56820START\n", + " 96112 [map_reduce.py: cnmf_patches():78] [1655494] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51660_72180START\n", + " 96113 [map_reduce.py: cnmf_patches():78] [1655528] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 67020_87540START\n", + " 96113 [map_reduce.py: cnmf_patches():78] [1655510] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82380_102900START\n", + " 96114 [map_reduce.py: cnmf_patches():78] [1655550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97740_118260START\n", + " 96115 [map_reduce.py: cnmf_patches():78] [1655484] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113100_133620START\n", + " 96128 [map_reduce.py: cnmf_patches():78] [1655477] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5582_26101START\n", + " 96127 [map_reduce.py: cnmf_patches():78] [1655508] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 237004_257012START\n", + " 96126 [map_reduce.py: cnmf_patches():78] [1655487] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235980_256500START\n", + " 96125 [map_reduce.py: cnmf_patches():78] [1655473] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220620_241140START\n", + " 96124 [map_reduce.py: cnmf_patches():78] [1655562] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205260_225780START\n", + " 96123 [map_reduce.py: cnmf_patches():78] [1655478] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189900_210420START\n", + " 96123 [map_reduce.py: cnmf_patches():78] [1655482] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174540_195060START\n", + " 96122 [map_reduce.py: cnmf_patches():78] [1655542] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159180_179700START\n", + " 96121 [map_reduce.py: cnmf_patches():78] [1655470] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143820_164340START\n", + " 96117 [map_reduce.py: cnmf_patches():78] [1655480] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128460_148980START\n", + " 96129 [map_reduce.py: cnmf_patches():78] [1655495] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20942_41461START\n", + " 96130 [map_reduce.py: cnmf_patches():78] [1655504] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36302_56821START\n", + " 96131 [map_reduce.py: cnmf_patches():78] [1655539] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51662_72181START\n", + " 96131 [map_reduce.py: cnmf_patches():78] [1655538] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 67022_87541START\n", + " 96141 [map_reduce.py: cnmf_patches():100] [1655530] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 112980_133500file loaded\n", + " 96134 [map_reduce.py: cnmf_patches():78] [1655498] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97742_118261START\n", + " 96133 [map_reduce.py: cnmf_patches():78] [1655505] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82382_102901START\n", + " 96152 [map_reduce.py: cnmf_patches():78] [1655506] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113102_133621START\n", + " 96153 [map_reduce.py: cnmf_patches():78] [1655563] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128462_148981START\n", + " 96154 [map_reduce.py: cnmf_patches():78] [1655491] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143822_164341START\n", + " 96154 [map_reduce.py: cnmf_patches():78] [1655493] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159182_179701START\n", + " 96155 [map_reduce.py: cnmf_patches():78] [1655526] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174542_195061START\n", + " 96158 [map_reduce.py: cnmf_patches():78] [1655518] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189902_210421START\n", + " 96187 [map_reduce.py: cnmf_patches():80] [1655486] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205170_225690Read file\n", + " 96188 [map_reduce.py: cnmf_patches():80] [1655536] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20880_41400Read file\n", + " 96188 [map_reduce.py: cnmf_patches():80] [1655469] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220560_241080Read file\n", + " 96188 [map_reduce.py: cnmf_patches():80] [1655512] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82320_102840Read file\n", + " 96189 [map_reduce.py: cnmf_patches():80] [1655540] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159120_179640Read file\n", + " 96189 [map_reduce.py: cnmf_patches():80] [1655507] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143760_164280Read file\n", + " 96189 [map_reduce.py: cnmf_patches():80] [1655535] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159090_179610Read file\n", + " 96190 [map_reduce.py: cnmf_patches():80] [1655516] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36240_56760Read file\n", + " 96190 [map_reduce.py: cnmf_patches():80] [1655488] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128400_148920Read file\n", + " 96190 [map_reduce.py: cnmf_patches():80] [1655489] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220530_241050Read file\n", + " 96191 [map_reduce.py: cnmf_patches():80] [1655551] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113040_133560Read file\n", + " 96191 [map_reduce.py: cnmf_patches():80] [1655533] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128370_148890Read file\n", + " 96191 [map_reduce.py: cnmf_patches():80] [1655474] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189840_210360Read file\n", + " 96191 [map_reduce.py: cnmf_patches():80] [1655541] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5520_26040Read file\n", + " 96192 [map_reduce.py: cnmf_patches():80] [1655519] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235890_256410Read file\n", + " 96192 [map_reduce.py: cnmf_patches():80] [1655522] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66960_87480Read file\n", + " 96192 [map_reduce.py: cnmf_patches():80] [1655527] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174450_194970Read file\n", + " 96192 [map_reduce.py: cnmf_patches():80] [1655537] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82290_102810Read file\n", + " 96193 [map_reduce.py: cnmf_patches():80] [1655543] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143730_164250Read file\n", + " 96193 [map_reduce.py: cnmf_patches():80] [1655476] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174480_195000Read file\n", + " 96193 [map_reduce.py: cnmf_patches():80] [1655513] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36210_56730Read file\n", + " 96194 [map_reduce.py: cnmf_patches():80] [1655496] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66930_87450Read file\n", + " 96194 [map_reduce.py: cnmf_patches():80] [1655561] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51600_72120Read file\n", + " 96194 [map_reduce.py: cnmf_patches():80] [1655532] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51570_72090Read file\n", + " 96195 [map_reduce.py: cnmf_patches():80] [1655500] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97650_118170Read file\n", + " 96195 [map_reduce.py: cnmf_patches():80] [1655534] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189810_210330Read file\n", + " 96195 [map_reduce.py: cnmf_patches():80] [1655492] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236914_256922Read file\n", + " 96195 [map_reduce.py: cnmf_patches():80] [1655525] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97680_118200Read file\n", + " 96196 [map_reduce.py: cnmf_patches():80] [1655559] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20850_41370Read file\n", + " 96196 [map_reduce.py: cnmf_patches():80] [1655564] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205200_225720Read file\n", + " 96196 [map_reduce.py: cnmf_patches():80] [1655531] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113010_133530Read file\n", + " 96247 [map_reduce.py: cnmf_patches():80] [1655498] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97742_118261Read file\n", + " 96246 [map_reduce.py: cnmf_patches():80] [1655505] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82382_102901Read file\n", + " 96244 [map_reduce.py: cnmf_patches():80] [1655495] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20942_41461Read file\n", + " 96244 [map_reduce.py: cnmf_patches():80] [1655504] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36302_56821Read file\n", + " 96244 [map_reduce.py: cnmf_patches():80] [1655538] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 67022_87541Read file\n", + " 96243 [map_reduce.py: cnmf_patches():80] [1655539] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51662_72181Read file\n", + " 96243 [map_reduce.py: cnmf_patches():80] [1655470] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143820_164340Read file\n", + " 96242 [map_reduce.py: cnmf_patches():80] [1655542] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159180_179700Read file\n", + " 96242 [map_reduce.py: cnmf_patches():80] [1655487] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235980_256500Read file\n", + " 96242 [map_reduce.py: cnmf_patches():80] [1655482] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174540_195060Read file\n", + " 96241 [map_reduce.py: cnmf_patches():80] [1655473] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220620_241140Read file\n", + " 96241 [map_reduce.py: cnmf_patches():80] [1655508] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 237004_257012Read file\n", + " 96241 [map_reduce.py: cnmf_patches():80] [1655562] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205260_225780Read file\n", + " 96240 [map_reduce.py: cnmf_patches():80] [1655478] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189900_210420Read file\n", + " 96240 [map_reduce.py: cnmf_patches():80] [1655477] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5582_26101Read file\n", + " 96235 [map_reduce.py: cnmf_patches():80] [1655480] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128460_148980Read file\n", + " 96228 [map_reduce.py: cnmf_patches():80] [1655485] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5550_26070Read file\n", + " 96227 [map_reduce.py: cnmf_patches():80] [1655502] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20910_41430Read file\n", + " 96226 [map_reduce.py: cnmf_patches():80] [1655556] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82350_102870Read file\n", + " 96226 [map_reduce.py: cnmf_patches():80] [1655547] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51630_72150Read file\n", + " 96226 [map_reduce.py: cnmf_patches():80] [1655560] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36270_56790Read file\n", + " 96225 [map_reduce.py: cnmf_patches():80] [1655479] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113070_133590Read file\n", + " 96225 [map_reduce.py: cnmf_patches():80] [1655503] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174510_195030Read file\n", + " 96225 [map_reduce.py: cnmf_patches():80] [1655521] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97710_118230Read file\n", + " 96224 [map_reduce.py: cnmf_patches():80] [1655517] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5580_26100Read file\n", + " 96224 [map_reduce.py: cnmf_patches():80] [1655529] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66990_87510Read file\n", + " 96197 [map_reduce.py: cnmf_patches():80] [1655524] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235920_256440Read file\n", + " 96224 [map_reduce.py: cnmf_patches():80] [1655523] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143790_164310Read file\n", + " 96223 [map_reduce.py: cnmf_patches():80] [1655545] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159150_179670Read file\n", + " 96223 [map_reduce.py: cnmf_patches():80] [1655481] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235950_256470Read file\n", + " 96223 [map_reduce.py: cnmf_patches():80] [1655549] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128430_148950Read file\n", + " 96198 [map_reduce.py: cnmf_patches():80] [1655511] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5490_26010Read file\n", + " 96199 [map_reduce.py: cnmf_patches():80] [1655544] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236944_256952Read file\n", + " 96219 [map_reduce.py: cnmf_patches():80] [1655494] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51660_72180Read file\n", + " 96219 [map_reduce.py: cnmf_patches():80] [1655484] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113100_133620Read file\n", + " 96220 [map_reduce.py: cnmf_patches():80] [1655510] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82380_102900Read file\n", + " 96220 [map_reduce.py: cnmf_patches():80] [1655483] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20940_41460Read file\n", + " 96220 [map_reduce.py: cnmf_patches():80] [1655528] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 67020_87540Read file\n", + " 96221 [map_reduce.py: cnmf_patches():80] [1655550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97740_118260Read file\n", + " 96221 [map_reduce.py: cnmf_patches():80] [1655548] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220590_241110Read file\n", + " 96222 [map_reduce.py: cnmf_patches():80] [1655546] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189870_210390Read file\n", + " 96222 [map_reduce.py: cnmf_patches():80] [1655501] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36300_56820Read file\n", + " 96222 [map_reduce.py: cnmf_patches():80] [1655557] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236974_256982Read file\n", + " 96222 [map_reduce.py: cnmf_patches():80] [1655509] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205230_225750Read file\n", + " 96260 [map_reduce.py: cnmf_patches():80] [1655491] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143822_164341Read file\n", + " 96260 [map_reduce.py: cnmf_patches():80] [1655526] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174542_195061Read file\n", + " 96260 [map_reduce.py: cnmf_patches():80] [1655493] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159182_179701Read file\n", + " 96261 [map_reduce.py: cnmf_patches():80] [1655563] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128462_148981Read file\n", + " 96261 [map_reduce.py: cnmf_patches():80] [1655506] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113102_133621Read file\n", + " 96264 [map_reduce.py: cnmf_patches():80] [1655518] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189902_210421Read file\n", + " 96553 [map_reduce.py: cnmf_patches():100] [1655531] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113010_133530file loaded\n", + " 96563 [map_reduce.py: cnmf_patches():100] [1655537] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82290_102810file loaded\n", + " 96566 [map_reduce.py: cnmf_patches():100] [1655535] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159090_179610file loaded\n", + " 96574 [map_reduce.py: cnmf_patches():100] [1655543] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143730_164250file loaded\n", + " 96579 [map_reduce.py: cnmf_patches():100] [1655489] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220530_241050file loaded\n", + " 96593 [map_reduce.py: cnmf_patches():100] [1655532] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51570_72090file loaded\n", + " 96597 [map_reduce.py: cnmf_patches():100] [1655496] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66930_87450file loaded\n", + " 96604 [map_reduce.py: cnmf_patches():100] [1655500] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97650_118170file loaded\n", + " 96637 [map_reduce.py: cnmf_patches():100] [1655486] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205170_225690file loaded\n", + " 96650 [map_reduce.py: cnmf_patches():100] [1655511] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5490_26010file loaded\n", + " 96879 [map_reduce.py: cnmf_patches():100] [1655497] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128340_148860file loaded\n", + " 96892 [map_reduce.py: cnmf_patches():100] [1655485] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5550_26070file loaded\n", + " 96943 [map_reduce.py: cnmf_patches():100] [1655520] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143700_164220file loaded\n", + " 97026 [map_reduce.py: cnmf_patches():100] [1655552] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159060_179580file loaded\n", + " 97047 [map_reduce.py: cnmf_patches():100] [1655547] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51630_72150file loaded\n", + " 97050 [map_reduce.py: cnmf_patches():100] [1655527] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174450_194970file loaded\n", + " 97058 [map_reduce.py: cnmf_patches():100] [1655499] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205140_225660file loaded\n", + " 97265 [map_reduce.py: cnmf_patches():100] [1655541] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5520_26040file loaded\n", + " 97261 [map_reduce.py: cnmf_patches():100] [1655529] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66990_87510file loaded\n", + " 97070 [map_reduce.py: cnmf_patches():100] [1655504] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36302_56821file loaded\n", + " 97078 [map_reduce.py: cnmf_patches():100] [1655490] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174420_194940file loaded\n", + " 97081 [map_reduce.py: cnmf_patches():100] [1655472] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220500_241020file loaded\n", + " 97086 [map_reduce.py: cnmf_patches():100] [1655546] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189870_210390file loaded\n", + " 97092 [map_reduce.py: cnmf_patches():100] [1655533] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128370_148890file loaded\n", + " 97096 [map_reduce.py: cnmf_patches():100] [1655476] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174480_195000file loaded\n", + " 97103 [map_reduce.py: cnmf_patches():100] [1655559] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20850_41370file loaded\n", + " 97106 [map_reduce.py: cnmf_patches():100] [1655502] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20910_41430file loaded\n", + " 97110 [map_reduce.py: cnmf_patches():100] [1655551] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113040_133560file loaded\n", + " 97112 [map_reduce.py: cnmf_patches():100] [1655519] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235890_256410file loaded\n", + " 97115 [map_reduce.py: cnmf_patches():100] [1655561] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51600_72120file loaded\n", + " 97117 [map_reduce.py: cnmf_patches():100] [1655536] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20880_41400file loaded\n", + " 97120 [map_reduce.py: cnmf_patches():100] [1655553] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189780_210300file loaded\n", + " 97125 [map_reduce.py: cnmf_patches():100] [1655556] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82350_102870file loaded\n", + " 97128 [map_reduce.py: cnmf_patches():100] [1655560] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36270_56790file loaded\n", + " 97132 [map_reduce.py: cnmf_patches():100] [1655513] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36210_56730file loaded\n", + " 97136 [map_reduce.py: cnmf_patches():100] [1655512] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82320_102840file loaded\n", + " 97142 [map_reduce.py: cnmf_patches():100] [1655525] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97680_118200file loaded\n", + " 97145 [map_reduce.py: cnmf_patches():100] [1655516] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36240_56760file loaded\n", + " 97148 [map_reduce.py: cnmf_patches():100] [1655479] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113070_133590file loaded\n", + " 97155 [map_reduce.py: cnmf_patches():100] [1655534] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189810_210330file loaded\n", + " 97198 [map_reduce.py: cnmf_patches():100] [1655493] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159182_179701file loaded\n", + " 97207 [map_reduce.py: cnmf_patches():100] [1655540] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159120_179640file loaded\n", + " 97211 [map_reduce.py: cnmf_patches():100] [1655495] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20942_41461file loaded\n", + " 97218 [map_reduce.py: cnmf_patches():100] [1655492] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236914_256922file loaded\n", + " 97221 [map_reduce.py: cnmf_patches():100] [1655474] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189840_210360file loaded\n", + " 97230 [map_reduce.py: cnmf_patches():100] [1655521] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97710_118230file loaded\n", + " 97238 [map_reduce.py: cnmf_patches():100] [1655522] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 66960_87480file loaded\n", + " 97240 [map_reduce.py: cnmf_patches():100] [1655506] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113102_133621file loaded\n", + " 97243 [map_reduce.py: cnmf_patches():100] [1655563] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128462_148981file loaded\n", + " 97470 [map_reduce.py: cnmf_patches():100] [1655550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97740_118260file loaded\n", + " 97274 [map_reduce.py: cnmf_patches():100] [1655491] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143822_164341file loaded\n", + " 97279 [map_reduce.py: cnmf_patches():100] [1655509] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205230_225750file loaded\n", + " 97455 [map_reduce.py: cnmf_patches():100] [1655475] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236884_256892file loaded\n", + " 97292 [map_reduce.py: cnmf_patches():100] [1655477] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5582_26101file loaded\n", + " 97033 [map_reduce.py: cnmf_patches():100] [1655501] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 36300_56820file loaded\n", + " 97309 [map_reduce.py: cnmf_patches():100] [1655517] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 5580_26100file loaded\n", + " 97348 [map_reduce.py: cnmf_patches():100] [1655483] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 20940_41460file loaded\n", + " 97358 [map_reduce.py: cnmf_patches():100] [1655488] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128400_148920file loaded\n", + " 97361 [map_reduce.py: cnmf_patches():100] [1655507] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143760_164280file loaded\n", + " 97373 [map_reduce.py: cnmf_patches():100] [1655526] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174542_195061file loaded\n", + " 97376 [map_reduce.py: cnmf_patches():100] [1655469] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220560_241080file loaded\n", + " 97379 [map_reduce.py: cnmf_patches():100] [1655564] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205200_225720file loaded\n", + " 97382 [map_reduce.py: cnmf_patches():100] [1655539] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51662_72181file loaded\n", + " 97385 [map_reduce.py: cnmf_patches():100] [1655549] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128430_148950file loaded\n", + " 97393 [map_reduce.py: cnmf_patches():100] [1655538] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 67022_87541file loaded\n", + " 97396 [map_reduce.py: cnmf_patches():100] [1655523] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143790_164310file loaded\n", + " 97406 [map_reduce.py: cnmf_patches():100] [1655545] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159150_179670file loaded\n", + " 97409 [map_reduce.py: cnmf_patches():100] [1655494] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 51660_72180file loaded\n", + " 97412 [map_reduce.py: cnmf_patches():100] [1655548] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220590_241110file loaded\n", + " 97416 [map_reduce.py: cnmf_patches():100] [1655528] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 67020_87540file loaded\n", + " 97425 [map_reduce.py: cnmf_patches():100] [1655503] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174510_195030file loaded\n", + " 97430 [map_reduce.py: cnmf_patches():100] [1655473] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220620_241140file loaded\n", + " 97438 [map_reduce.py: cnmf_patches():100] [1655482] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 174540_195060file loaded\n", + " 97441 [map_reduce.py: cnmf_patches():100] [1655478] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189900_210420file loaded\n", + " 97442 [map_reduce.py: cnmf_patches():100] [1655554] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235860_256380file loaded\n", + " 97226 [map_reduce.py: cnmf_patches():100] [1655484] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 113100_133620file loaded\n", + " 97447 [map_reduce.py: cnmf_patches():100] [1655518] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 189902_210421file loaded\n", + " 97494 [map_reduce.py: cnmf_patches():100] [1655498] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 97742_118261file loaded\n", + " 97529 [map_reduce.py: cnmf_patches():100] [1655505] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82382_102901file loaded\n", + " 97532 [map_reduce.py: cnmf_patches():100] [1655480] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 128460_148980file loaded\n", + " 97545 [map_reduce.py: cnmf_patches():100] [1655510] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 82380_102900file loaded\n", + " 97215 [map_reduce.py: cnmf_patches():100] [1655542] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 159180_179700file loaded\n", + " 97679 [map_reduce.py: cnmf_patches():100] [1655481] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235950_256470file loaded\n", + " 97692 [map_reduce.py: cnmf_patches():100] [1655487] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235980_256500file loaded\n", + " 97692 [map_reduce.py: cnmf_patches():100] [1655524] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235920_256440file loaded\n", + " 97693 [map_reduce.py: cnmf_patches():100] [1655557] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236974_256982file loaded\n", + " 97696 [map_reduce.py: cnmf_patches():100] [1655562] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205260_225780file loaded\n", + " 97696 [map_reduce.py: cnmf_patches():100] [1655544] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 236944_256952file loaded\n", + " 97703 [map_reduce.py: cnmf_patches():100] [1655508] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 237004_257012file loaded\n", + " 97287 [map_reduce.py: cnmf_patches():100] [1655470] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 143820_164340file loaded\n", + " 99605 [cnmf.py: fit():484] [1660129] initializing ...\n", + " 99892 [initialization.py:initialize_components():292] [1660129] Variance Normalization\n", + " 99970 [cnmf.py: fit():484] [1660361] initializing ...\n", + " 100519 [initialization.py:initialize_components():292] [1660361] Variance Normalization\n", + " 101308 [cnmf.py: fit():484] [1660550] initializing ...\n", + " 101590 [initialization.py:initialize_components():292] [1660550] Variance Normalization\n", + " 111320 [map_reduce.py: cnmf_patches():78] [1660129] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205262_225781START\n", + " 112031 [params.py: set():1006] [1655508] Changing key rf in group patch from 20 to None\n", + " 112936 [params.py: set():1006] [1655541] Changing key rf in group patch from 20 to None\n", + " 112068 [params.py: set():1006] [1655536] Changing key rf in group patch from 20 to None\n", + " 112019 [params.py: set():1006] [1655486] Changing key rf in group patch from 20 to None\n", + " 112891 [params.py: set():1006] [1655547] Changing key rf in group patch from 20 to None\n", + " 113276 [params.py: set():1006] [1655533] Changing key rf in group patch from 20 to None\n", + " 113472 [map_reduce.py: cnmf_patches():80] [1660129] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205262_225781Read file\n", + " 113584 [params.py: set():1006] [1655535] Changing key rf in group patch from 20 to None\n", + " 113669 [params.py: set():1006] [1655546] Changing key rf in group patch from 20 to None\n", + " 113693 [params.py: set():1006] [1655502] Changing key rf in group patch from 20 to None\n", + " 113680 [params.py: set():1006] [1655536] Changing key stride in group patch from 10 to None\n", + " 111255 [params.py: set():1006] [1655519] Changing key rf in group patch from 20 to None\n", + " 113736 [params.py: set():1006] [1655486] Changing key stride in group patch from 10 to None\n", + " 113751 [params.py: set():1006] [1655541] Changing key stride in group patch from 10 to None\n", + " 113770 [params.py: set():1006] [1655524] Changing key rf in group patch from 20 to None\n", + " 113775 [params.py: set():1006] [1655508] Changing key stride in group patch from 10 to None\n", + " 113767 [params.py: set():1006] [1655547] Changing key stride in group patch from 10 to None\n", + " 113800 [map_reduce.py: cnmf_patches():78] [1660550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235982_256501START\n", + " 113687 [params.py: set():1006] [1655532] Changing key rf in group patch from 20 to None\n", + " 113903 [params.py: set():1006] [1655537] Changing key rf in group patch from 20 to None\n", + " 113679 [params.py: set():1006] [1655522] Changing key rf in group patch from 20 to None\n", + " 113934 [params.py: set():1006] [1655524] Changing key stride in group patch from 10 to None\n", + " 113936 [params.py: set():1006] [1655508] Changing key nb in group init from 2 to 1\n", + " 113931 [params.py: set():1006] [1655486] Changing key nb in group init from 2 to 1\n", + " 113932 [params.py: set():1006] [1655541] Changing key nb in group init from 2 to 1\n", + " 113937 [params.py: set():1006] [1655547] Changing key nb in group init from 2 to 1\n", + " 113929 [params.py: set():1006] [1655519] Changing key stride in group patch from 10 to None\n", + " 113928 [params.py: set():1006] [1655502] Changing key stride in group patch from 10 to None\n", + " 113927 [params.py: set():1006] [1655536] Changing key nb in group init from 2 to 1\n", + " 113926 [params.py: set():1006] [1655535] Changing key stride in group patch from 10 to None\n", + " 113964 [params.py: set():1006] [1655494] Changing key rf in group patch from 20 to None\n", + " 113967 [params.py: set():1006] [1655521] Changing key rf in group patch from 20 to None\n", + " 113927 [params.py: set():1006] [1655546] Changing key stride in group patch from 10 to None\n", + " 113627 [params.py: set():1006] [1655525] Changing key rf in group patch from 20 to None\n", + " 114005 [params.py: set():1006] [1655514] Changing key rf in group patch from 20 to None\n", + " 113834 [params.py: set():1006] [1655523] Changing key rf in group patch from 20 to None\n", + " 113924 [params.py: set():1006] [1655533] Changing key stride in group patch from 10 to None\n", + " 113551 [map_reduce.py: cnmf_patches():78] [1663745] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220622_241141START\n", + " 113647 [params.py: set():1006] [1655543] Changing key rf in group patch from 20 to None\n", + " 114016 [params.py: set():1006] [1655497] Changing key rf in group patch from 20 to None\n", + " 113982 [params.py: set():1006] [1655476] Changing key rf in group patch from 20 to None\n", + " 113871 [params.py: set():1006] [1655482] Changing key rf in group patch from 20 to None\n", + " 114013 [params.py: set():1006] [1655511] Changing key rf in group patch from 20 to None\n", + " 114042 [map_reduce.py: cnmf_patches():78] [1660361] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 237006_257013START\n", + " 114072 [params.py: set():1006] [1655520] Changing key rf in group patch from 20 to None\n", + " 114061 [params.py: set():1006] [1655506] Changing key rf in group patch from 20 to None\n", + " 114041 [params.py: set():1006] [1655559] Changing key rf in group patch from 20 to None\n", + " 113439 [params.py: set():1006] [1655474] Changing key rf in group patch from 20 to None\n", + " 114081 [params.py: set():1006] [1655531] Changing key rf in group patch from 20 to None\n", + " 114064 [params.py: set():1006] [1655552] Changing key rf in group patch from 20 to None\n", + " 114020 [params.py: set():1006] [1655509] Changing key rf in group patch from 20 to None\n", + " 114100 [map_reduce.py: cnmf_patches():80] [1660550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235982_256501Read file\n", + " 114109 [params.py: set():1006] [1655548] Changing key rf in group patch from 20 to None\n", + " 113920 [params.py: set():1006] [1655526] Changing key rf in group patch from 20 to None\n", + " 114112 [params.py: set():1006] [1655481] Changing key rf in group patch from 20 to None\n", + " 114085 [params.py: set():1006] [1655493] Changing key rf in group patch from 20 to None\n", + " 114122 [params.py: set():1006] [1655484] Changing key rf in group patch from 20 to None\n", + " 114113 [params.py: set():1006] [1655553] Changing key rf in group patch from 20 to None\n", + " 114154 [params.py: set():1006] [1655538] Changing key rf in group patch from 20 to None\n", + " 114157 [params.py: set():1006] [1655470] Changing key rf in group patch from 20 to None\n", + " 114151 [params.py: set():1006] [1655549] Changing key rf in group patch from 20 to None\n", + " 114162 [params.py: set():1006] [1655527] Changing key rf in group patch from 20 to None\n", + " 114198 [params.py: set():1006] [1655475] Changing key rf in group patch from 20 to None\n", + " 114200 [params.py: set():1006] [1655503] Changing key rf in group patch from 20 to None\n", + " 114193 [params.py: set():1006] [1655472] Changing key rf in group patch from 20 to None\n", + " 113809 [params.py: set():1006] [1655488] Changing key rf in group patch from 20 to None\n", + " 114207 [params.py: set():1006] [1655517] Changing key rf in group patch from 20 to None\n", + " 114161 [params.py: set():1006] [1655518] Changing key rf in group patch from 20 to None\n", + " 114213 [params.py: set():1006] [1655510] Changing key rf in group patch from 20 to None\n", + " 114136 [params.py: set():1006] [1655477] Changing key rf in group patch from 20 to None\n", + " 114070 [params.py: set():1006] [1655554] Changing key rf in group patch from 20 to None\n", + " 114196 [params.py: set():1006] [1655534] Changing key rf in group patch from 20 to None\n", + " 114222 [params.py: set():1006] [1655499] Changing key rf in group patch from 20 to None\n", + " 114187 [params.py: set():1006] [1655544] Changing key rf in group patch from 20 to None\n", + " 114211 [params.py: set():1006] [1655489] Changing key rf in group patch from 20 to None\n", + " 114191 [params.py: set():1006] [1655557] Changing key rf in group patch from 20 to None\n", + " 114251 [params.py: set():1006] [1655563] Changing key rf in group patch from 20 to None\n", + " 114234 [params.py: set():1006] [1655487] Changing key rf in group patch from 20 to None\n", + " 114253 [params.py: set():1006] [1655561] Changing key rf in group patch from 20 to None\n", + " 114249 [params.py: set():1006] [1655500] Changing key rf in group patch from 20 to None\n", + " 114267 [params.py: set():1006] [1655478] Changing key rf in group patch from 20 to None\n", + " 114284 [params.py: set():1006] [1655529] Changing key rf in group patch from 20 to None\n", + " 114290 [params.py: set():1006] [1655551] Changing key rf in group patch from 20 to None\n", + " 114132 [params.py: set():1006] [1655504] Changing key rf in group patch from 20 to None\n", + " 114169 [params.py: set():1006] [1655490] Changing key rf in group patch from 20 to None\n", + " 114245 [params.py: set():1006] [1655556] Changing key rf in group patch from 20 to None\n", + " 114183 [params.py: set():1006] [1655479] Changing key rf in group patch from 20 to None\n", + " 114289 [params.py: set():1006] [1655491] Changing key rf in group patch from 20 to None\n", + " 114295 [params.py: set():1006] [1655550] Changing key rf in group patch from 20 to None\n", + " 114296 [params.py: set():1006] [1655498] Changing key rf in group patch from 20 to None\n", + " 114303 [params.py: set():1006] [1655480] Changing key rf in group patch from 20 to None\n", + " 114273 [params.py: set():1006] [1655483] Changing key rf in group patch from 20 to None\n", + " 114308 [params.py: set():1006] [1655495] Changing key rf in group patch from 20 to None\n", + " 114314 [params.py: set():1006] [1655532] Changing key stride in group patch from 10 to None\n", + " 114315 [params.py: set():1006] [1655537] Changing key stride in group patch from 10 to None\n", + " 114315 [params.py: set():1006] [1655522] Changing key stride in group patch from 10 to None\n", + " 114316 [params.py: set():1006] [1655508] Changing key nb in group temporal from 2 to 1\n", + " 114317 [params.py: set():1006] [1655541] Changing key nb in group temporal from 2 to 1\n", + " 114317 [params.py: set():1006] [1655486] Changing key nb in group temporal from 2 to 1\n", + " 114317 [params.py: set():1006] [1655547] Changing key nb in group temporal from 2 to 1\n", + " 114318 [params.py: set():1006] [1655519] Changing key nb in group init from 2 to 1\n", + " 114318 [params.py: set():1006] [1655502] Changing key nb in group init from 2 to 1\n", + " 114318 [params.py: set():1006] [1655536] Changing key nb in group temporal from 2 to 1\n", + " 114319 [params.py: set():1006] [1655546] Changing key nb in group init from 2 to 1\n", + " 114319 [params.py: set():1006] [1655535] Changing key nb in group init from 2 to 1\n", + " 114320 [params.py: set():1006] [1655521] Changing key stride in group patch from 10 to None\n", + " 114320 [params.py: set():1006] [1655524] Changing key nb in group init from 2 to 1\n", + " 114320 [params.py: set():1006] [1655494] Changing key stride in group patch from 10 to None\n", + " 114321 [params.py: set():1006] [1655525] Changing key stride in group patch from 10 to None\n", + " 114321 [params.py: set():1006] [1655514] Changing key stride in group patch from 10 to None\n", + " 114322 [params.py: set():1006] [1655533] Changing key nb in group init from 2 to 1\n", + " 114322 [params.py: set():1006] [1655523] Changing key stride in group patch from 10 to None\n", + " 114322 [map_reduce.py: cnmf_patches():80] [1663745] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220622_241141Read file\n", + " 114323 [params.py: set():1006] [1655543] Changing key stride in group patch from 10 to None\n", + " 114323 [params.py: set():1006] [1655497] Changing key stride in group patch from 10 to None\n", + " 114324 [params.py: set():1006] [1655476] Changing key stride in group patch from 10 to None\n", + " 114324 [params.py: set():1006] [1655482] Changing key stride in group patch from 10 to None\n", + " 114324 [params.py: set():1006] [1655511] Changing key stride in group patch from 10 to None\n", + " 114325 [map_reduce.py: cnmf_patches():80] [1660361] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 237006_257013Read file\n", + " 114325 [params.py: set():1006] [1655520] Changing key stride in group patch from 10 to None\n", + " 114326 [params.py: set():1006] [1655506] Changing key stride in group patch from 10 to None\n", + " 114326 [params.py: set():1006] [1655559] Changing key stride in group patch from 10 to None\n", + " 114327 [params.py: set():1006] [1655474] Changing key stride in group patch from 10 to None\n", + " 114327 [params.py: set():1006] [1655531] Changing key stride in group patch from 10 to None\n", + " 114328 [params.py: set():1006] [1655552] Changing key stride in group patch from 10 to None\n", + " 114328 [params.py: set():1006] [1655509] Changing key stride in group patch from 10 to None\n", + " 114329 [params.py: set():1006] [1655548] Changing key stride in group patch from 10 to None\n", + " 114329 [params.py: set():1006] [1655481] Changing key stride in group patch from 10 to None\n", + " 114329 [params.py: set():1006] [1655526] Changing key stride in group patch from 10 to None\n", + " 114330 [params.py: set():1006] [1655484] Changing key stride in group patch from 10 to None\n", + " 114330 [params.py: set():1006] [1655553] Changing key stride in group patch from 10 to None\n", + " 114331 [params.py: set():1006] [1655493] Changing key stride in group patch from 10 to None\n", + " 114332 [params.py: set():1006] [1655538] Changing key stride in group patch from 10 to None\n", + " 114333 [params.py: set():1006] [1655470] Changing key stride in group patch from 10 to None\n", + " 114333 [params.py: set():1006] [1655549] Changing key stride in group patch from 10 to None\n", + " 114334 [params.py: set():1006] [1655527] Changing key stride in group patch from 10 to None\n", + " 114336 [params.py: set():1006] [1655503] Changing key stride in group patch from 10 to None\n", + " 114336 [params.py: set():1006] [1655472] Changing key stride in group patch from 10 to None\n", + " 114336 [params.py: set():1006] [1655475] Changing key stride in group patch from 10 to None\n", + " 114337 [params.py: set():1006] [1655517] Changing key stride in group patch from 10 to None\n", + " 114337 [params.py: set():1006] [1655488] Changing key stride in group patch from 10 to None\n", + " 114339 [params.py: set():1006] [1655518] Changing key stride in group patch from 10 to None\n", + " 114339 [params.py: set():1006] [1655510] Changing key stride in group patch from 10 to None\n", + " 114340 [params.py: set():1006] [1655477] Changing key stride in group patch from 10 to None\n", + " 114340 [params.py: set():1006] [1655554] Changing key stride in group patch from 10 to None\n", + " 114341 [params.py: set():1006] [1655534] Changing key stride in group patch from 10 to None\n", + " 114341 [params.py: set():1006] [1655499] Changing key stride in group patch from 10 to None\n", + " 114342 [params.py: set():1006] [1655544] Changing key stride in group patch from 10 to None\n", + " 114343 [map_reduce.py: cnmf_patches():100] [1660129] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 205262_225781file loaded\n", + " 114344 [params.py: set():1006] [1655489] Changing key stride in group patch from 10 to None\n", + " 114344 [params.py: set():1006] [1655557] Changing key stride in group patch from 10 to None\n", + " 114345 [params.py: set():1006] [1655563] Changing key stride in group patch from 10 to None\n", + " 114346 [params.py: set():1006] [1655561] Changing key stride in group patch from 10 to None\n", + " 114346 [params.py: set():1006] [1655487] Changing key stride in group patch from 10 to None\n", + " 114347 [params.py: set():1006] [1655500] Changing key stride in group patch from 10 to None\n", + " 114347 [params.py: set():1006] [1655478] Changing key stride in group patch from 10 to None\n", + " 114349 [params.py: set():1006] [1655507] Changing key rf in group patch from 20 to None\n", + " 114143 [params.py: set():1006] [1655562] Changing key rf in group patch from 20 to None\n", + " 114219 [params.py: set():1006] [1655473] Changing key rf in group patch from 20 to None\n", + " 114350 [params.py: set():1006] [1655529] Changing key stride in group patch from 10 to None\n", + " 114301 [params.py: set():1006] [1655505] Changing key rf in group patch from 20 to None\n", + " 114149 [params.py: set():1006] [1655542] Changing key rf in group patch from 20 to None\n", + " 114351 [params.py: set():1006] [1655551] Changing key stride in group patch from 10 to None\n", + " 114352 [params.py: set():1006] [1655504] Changing key stride in group patch from 10 to None\n", + " 114363 [params.py: set():1006] [1655469] Changing key rf in group patch from 20 to None\n", + " 114364 [params.py: set():1006] [1655490] Changing key stride in group patch from 10 to None\n", + " 114364 [params.py: set():1006] [1655556] Changing key stride in group patch from 10 to None\n", + " 114365 [params.py: set():1006] [1655479] Changing key stride in group patch from 10 to None\n", + " 114365 [params.py: set():1006] [1655491] Changing key stride in group patch from 10 to None\n", + " 114366 [params.py: set():1006] [1655498] Changing key stride in group patch from 10 to None\n", + " 114366 [params.py: set():1006] [1655550] Changing key stride in group patch from 10 to None\n", + " 114367 [params.py: set():1006] [1655480] Changing key stride in group patch from 10 to None\n", + " 114367 [params.py: set():1006] [1655483] Changing key stride in group patch from 10 to None\n", + " 114369 [params.py: set():1006] [1655539] Changing key rf in group patch from 20 to None\n", + " 114382 [params.py: set():1006] [1655484] Changing key nb in group init from 2 to 1\n", + " 114383 [params.py: set():1006] [1655509] Changing key nb in group init from 2 to 1\n", + " 114380 [params.py: set():1006] [1655563] Changing key nb in group init from 2 to 1\n", + " 114381 [params.py: set():1006] [1655494] Changing key nb in group init from 2 to 1\n", + " 114382 [params.py: set():1006] [1655527] Changing key nb in group init from 2 to 1\n", + " 114387 [params.py: set():1006] [1655526] Changing key nb in group init from 2 to 1\n", + " 114382 [params.py: set():1006] [1655500] Changing key nb in group init from 2 to 1\n", + " 114381 [params.py: set():1006] [1655523] Changing key nb in group init from 2 to 1\n", + " 114386 [params.py: set():1006] [1655475] Changing key nb in group init from 2 to 1\n", + " 114380 [params.py: set():1006] [1655549] Changing key nb in group init from 2 to 1\n", + " 114385 [params.py: set():1006] [1655476] Changing key nb in group init from 2 to 1\n", + " 114391 [params.py: set():1006] [1655482] Changing key nb in group init from 2 to 1\n", + " 114383 [params.py: set():1006] [1655534] Changing key nb in group init from 2 to 1\n", + " 114391 [params.py: set():1006] [1655517] Changing key nb in group init from 2 to 1\n", + " 114387 [params.py: set():1006] [1655544] Changing key nb in group init from 2 to 1\n", + " 114389 [params.py: set():1006] [1655538] Changing key nb in group init from 2 to 1\n", + " 114383 [params.py: set():1006] [1655497] Changing key nb in group init from 2 to 1\n", + " 114385 [params.py: set():1006] [1655489] Changing key nb in group init from 2 to 1\n", + " 114389 [params.py: set():1006] [1655535] Changing key nb in group temporal from 2 to 1\n", + " 114384 [params.py: set():1006] [1655520] Changing key nb in group init from 2 to 1\n", + " 114385 [params.py: set():1006] [1655477] Changing key nb in group init from 2 to 1\n", + " 114390 [params.py: set():1006] [1655474] Changing key nb in group init from 2 to 1\n", + " 114388 [params.py: set():1006] [1655536] Changing key nb in group spatial from 2 to 1\n", + " 114387 [params.py: set():1006] [1655557] Changing key nb in group init from 2 to 1\n", + " 114384 [params.py: set():1006] [1655472] Changing key nb in group init from 2 to 1\n", + " 114386 [params.py: set():1006] [1655531] Changing key nb in group init from 2 to 1\n", + " 114388 [params.py: set():1006] [1655503] Changing key nb in group init from 2 to 1\n", + " 114388 [params.py: set():1006] [1655543] Changing key nb in group init from 2 to 1\n", + " 114386 [params.py: set():1006] [1655499] Changing key nb in group init from 2 to 1\n", + " 114389 [params.py: set():1006] [1655546] Changing key nb in group temporal from 2 to 1\n", + " 114391 [params.py: set():1006] [1655510] Changing key nb in group init from 2 to 1\n", + " 114390 [params.py: set():1006] [1655511] Changing key nb in group init from 2 to 1\n", + " 114392 [params.py: set():1006] [1655514] Changing key nb in group init from 2 to 1\n", + " 114390 [params.py: set():1006] [1655525] Changing key nb in group init from 2 to 1\n", + " 114393 [params.py: set():1006] [1655561] Changing key nb in group init from 2 to 1\n", + " 114388 [params.py: set():1006] [1655533] Changing key nb in group temporal from 2 to 1\n", + " 114394 [params.py: set():1006] [1655518] Changing key nb in group init from 2 to 1\n", + " 114392 [params.py: set():1006] [1655552] Changing key nb in group init from 2 to 1\n", + " 114384 [params.py: set():1006] [1655521] Changing key nb in group init from 2 to 1\n", + " 114391 [params.py: set():1006] [1655553] Changing key nb in group init from 2 to 1\n", + " 114393 [params.py: set():1006] [1655519] Changing key nb in group temporal from 2 to 1\n", + " 114394 [params.py: set():1006] [1655554] Changing key nb in group init from 2 to 1\n", + " 114392 [params.py: set():1006] [1655470] Changing key nb in group init from 2 to 1\n", + " 114377 [params.py: set():1006] [1655495] Changing key stride in group patch from 10 to None\n", + " 114393 [params.py: set():1006] [1655481] Changing key nb in group init from 2 to 1\n", + " 114380 [params.py: set():1006] [1655488] Changing key nb in group init from 2 to 1\n", + " 114394 [params.py: set():1006] [1655541] Changing key nb in group spatial from 2 to 1\n", + " 114394 [params.py: set():1006] [1655502] Changing key nb in group temporal from 2 to 1\n", + " 114385 [params.py: set():1006] [1655548] Changing key nb in group init from 2 to 1\n", + " 114399 [params.py: set():1006] [1655537] Changing key nb in group init from 2 to 1\n", + " 114381 [params.py: set():1006] [1655506] Changing key nb in group init from 2 to 1\n", + " 114399 [params.py: set():1006] [1655524] Changing key nb in group temporal from 2 to 1\n", + " 114400 [params.py: set():1006] [1655487] Changing key nb in group init from 2 to 1\n", + " 114401 [params.py: set():1006] [1655522] Changing key nb in group init from 2 to 1\n", + " 114400 [params.py: set():1006] [1655559] Changing key nb in group init from 2 to 1\n", + " 114402 [params.py: set():1006] [1655493] Changing key nb in group init from 2 to 1\n", + " 114401 [params.py: set():1006] [1655508] Changing key nb in group spatial from 2 to 1\n", + " 114401 [params.py: set():1006] [1655486] Changing key nb in group spatial from 2 to 1\n", + " 114402 [params.py: set():1006] [1655547] Changing key nb in group spatial from 2 to 1\n", + " 114403 [params.py: set():1006] [1655532] Changing key nb in group init from 2 to 1\n", + " 114404 [params.py: set():1006] [1655478] Changing key nb in group init from 2 to 1\n", + " 114420 [params.py: set():1006] [1655564] Changing key rf in group patch from 20 to None\n", + " 114423 [params.py: set():1006] [1655507] Changing key stride in group patch from 10 to None\n", + " 114428 [params.py: set():1006] [1655528] Changing key rf in group patch from 20 to None\n", + " 114430 [params.py: set():1006] [1655562] Changing key stride in group patch from 10 to None\n", + " 114432 [params.py: set():1006] [1655473] Changing key stride in group patch from 10 to None\n", + " 114432 [params.py: set():1006] [1655529] Changing key nb in group init from 2 to 1\n", + " 114433 [params.py: set():1006] [1655505] Changing key stride in group patch from 10 to None\n", + " 114434 [params.py: set():1006] [1655542] Changing key stride in group patch from 10 to None\n", + " 114444 [params.py: set():1006] [1655551] Changing key nb in group init from 2 to 1\n", + " 114443 [params.py: set():1006] [1655545] Changing key rf in group patch from 20 to None\n", + " 114447 [map_reduce.py: cnmf_patches():100] [1663745] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 220622_241141file loaded\n", + " 114447 [params.py: set():1006] [1655504] Changing key nb in group init from 2 to 1\n", + " 114491 [map_reduce.py: cnmf_patches():100] [1660361] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 237006_257013file loaded\n", + " 114490 [map_reduce.py: cnmf_patches():100] [1660550] Yr_d1_512_d2_512_d3_1_order_C_frames_8000__LOG_ 235982_256501file loaded\n", + " 114518 [params.py: set():1006] [1655520] Changing key nb in group temporal from 2 to 1\n", + " 114517 [params.py: set():1006] [1655563] Changing key nb in group temporal from 2 to 1\n", + " 114515 [params.py: set():1006] [1655554] Changing key nb in group temporal from 2 to 1\n", + " 114519 [params.py: set():1006] [1655495] Changing key nb in group init from 2 to 1\n", + " 114520 [params.py: set():1006] [1655477] Changing key nb in group temporal from 2 to 1\n", + " 114519 [params.py: set():1006] [1655488] Changing key nb in group temporal from 2 to 1\n", + " 114520 [params.py: set():1006] [1655484] Changing key nb in group temporal from 2 to 1\n", + " 114510 [params.py: set():1006] [1655476] Changing key nb in group temporal from 2 to 1\n", + " 114517 [params.py: set():1006] [1655518] Changing key nb in group temporal from 2 to 1\n", + " 114525 [params.py: set():1006] [1655478] Changing key nb in group temporal from 2 to 1\n", + " 114507 [params.py: set():1006] [1655497] Changing key nb in group temporal from 2 to 1\n", + " 114511 [params.py: set():1006] [1655510] Changing key nb in group temporal from 2 to 1\n", + " 114527 [params.py: set():1006] [1655473] Changing key nb in group init from 2 to 1\n", + " 114520 [params.py: set():1006] [1655537] Changing key nb in group temporal from 2 to 1\n", + " 114506 [params.py: set():1006] [1655509] Changing key nb in group temporal from 2 to 1\n", + " 114515 [params.py: set():1006] [1655481] Changing key nb in group temporal from 2 to 1\n", + " 114517 [params.py: set():1006] [1655519] Changing key nb in group spatial from 2 to 1\n", + " 114508 [params.py: set():1006] [1655534] Changing key nb in group temporal from 2 to 1\n", + " 114509 [params.py: set():1006] [1655523] Changing key nb in group temporal from 2 to 1\n", + " 114515 [params.py: set():1006] [1655499] Changing key nb in group temporal from 2 to 1\n", + " 114516 [params.py: set():1006] [1655521] Changing key nb in group temporal from 2 to 1\n", + " 114527 [params.py: set():1006] [1655562] Changing key nb in group init from 2 to 1\n", + " 114526 [params.py: set():1006] [1655528] Changing key stride in group patch from 10 to None\n", + " 114511 [params.py: set():1006] [1655543] Changing key nb in group temporal from 2 to 1\n", + " 114531 [params.py: set():1006] [1655504] Changing key nb in group temporal from 2 to 1\n", + " 114519 [params.py: set():1006] [1655502] Changing key nb in group spatial from 2 to 1\n", + " 114527 [params.py: set():1006] [1655529] Changing key nb in group temporal from 2 to 1\n", + " 114524 [params.py: set():1006] [1655493] Changing key nb in group temporal from 2 to 1\n", + " 114529 [params.py: set():1006] [1655545] Changing key stride in group patch from 10 to None\n", + " 114509 [params.py: set():1006] [1655517] Changing key nb in group temporal from 2 to 1\n", + " 114511 [params.py: set():1006] [1655475] Changing key nb in group temporal from 2 to 1\n", + " 114516 [params.py: set():1006] [1655552] Changing key nb in group temporal from 2 to 1\n", + " 114517 [params.py: set():1006] [1655525] Changing key nb in group temporal from 2 to 1\n", + " 114514 [params.py: set():1006] [1655511] Changing key nb in group temporal from 2 to 1\n", + " 114501 [params.py: set():1006] [1655539] Changing key stride in group patch from 10 to None\n", + " 114510 [params.py: set():1006] [1655538] Changing key nb in group temporal from 2 to 1\n", + " 114526 [params.py: set():1006] [1655507] Changing key nb in group init from 2 to 1\n", + " 114509 [params.py: set():1006] [1655546] Changing key nb in group spatial from 2 to 1\n", + " 114523 [params.py: set():1006] [1655506] Changing key nb in group temporal from 2 to 1\n", + " 114524 [params.py: set():1006] [1655532] Changing key nb in group temporal from 2 to 1\n", + " 114506 [params.py: set():1006] [1655549] Changing key nb in group temporal from 2 to 1\n", + " 114513 [params.py: set():1006] [1655489] Changing key nb in group temporal from 2 to 1\n", + " 114507 [params.py: set():1006] [1655535] Changing key nb in group spatial from 2 to 1\n", + " 114518 [params.py: set():1006] [1655541] Changing key p in group preprocess from 1 to 0\n", + " 114510 [params.py: set():1006] [1655482] Changing key nb in group temporal from 2 to 1\n", + " 114515 [params.py: set():1006] [1655561] Changing key nb in group temporal from 2 to 1\n", + " 114512 [params.py: set():1006] [1655536] Changing key p in group preprocess from 1 to 0\n", + " 114524 [params.py: set():1006] [1655547] Changing key p in group preprocess from 1 to 0\n", + " 114514 [params.py: set():1006] [1655503] Changing key nb in group temporal from 2 to 1\n", + " 114528 [params.py: set():1006] [1655505] Changing key nb in group init from 2 to 1\n", + " 114528 [params.py: set():1006] [1655542] Changing key nb in group init from 2 to 1\n", + " 114513 [params.py: set():1006] [1655544] Changing key nb in group temporal from 2 to 1\n", + " 114518 [params.py: set():1006] [1655514] Changing key nb in group temporal from 2 to 1\n", + " 114510 [params.py: set():1006] [1655474] Changing key nb in group temporal from 2 to 1\n", + " 114512 [params.py: set():1006] [1655557] Changing key nb in group temporal from 2 to 1\n", + " 114523 [params.py: set():1006] [1655524] Changing key nb in group spatial from 2 to 1\n", + " 114508 [params.py: set():1006] [1655494] Changing key nb in group temporal from 2 to 1\n", + " 114529 [params.py: set():1006] [1655551] Changing key nb in group temporal from 2 to 1\n", + " 114522 [params.py: set():1006] [1655522] Changing key nb in group temporal from 2 to 1\n", + " 114525 [params.py: set():1006] [1655564] Changing key stride in group patch from 10 to None\n", + " 114501 [params.py: set():1006] [1655483] Changing key nb in group init from 2 to 1\n", + " 114508 [params.py: set():1006] [1655500] Changing key nb in group temporal from 2 to 1\n", + " 114516 [params.py: set():1006] [1655470] Changing key nb in group temporal from 2 to 1\n", + " 114507 [params.py: set():1006] [1655527] Changing key nb in group temporal from 2 to 1\n", + " 114523 [params.py: set():1006] [1655559] Changing key nb in group temporal from 2 to 1\n", + " 114507 [params.py: set():1006] [1655526] Changing key nb in group temporal from 2 to 1\n", + " 114512 [params.py: set():1006] [1655472] Changing key nb in group temporal from 2 to 1\n", + " 114500 [params.py: set():1006] [1655491] Changing key nb in group init from 2 to 1\n", + " 114499 [params.py: set():1006] [1655498] Changing key nb in group init from 2 to 1\n", + " 114500 [params.py: set():1006] [1655480] Changing key nb in group init from 2 to 1\n", + " 114512 [params.py: set():1006] [1655531] Changing key nb in group temporal from 2 to 1\n", + " 114522 [params.py: set():1006] [1655486] Changing key p in group preprocess from 1 to 0\n", + " 114498 [params.py: set():1006] [1655469] Changing key stride in group patch from 10 to None\n", + " 114523 [params.py: set():1006] [1655508] Changing key p in group preprocess from 1 to 0\n", + " 114521 [params.py: set():1006] [1655487] Changing key nb in group temporal from 2 to 1\n", + " 114521 [params.py: set():1006] [1655548] Changing key nb in group temporal from 2 to 1\n", + " 114513 [params.py: set():1006] [1655533] Changing key nb in group spatial from 2 to 1\n", + " 114499 [params.py: set():1006] [1655479] Changing key nb in group init from 2 to 1\n", + " 114500 [params.py: set():1006] [1655550] Changing key nb in group init from 2 to 1\n", + " 114498 [params.py: set():1006] [1655556] Changing key nb in group init from 2 to 1\n", + " 114514 [params.py: set():1006] [1655553] Changing key nb in group temporal from 2 to 1\n", + " 114497 [params.py: set():1006] [1655490] Changing key nb in group init from 2 to 1\n", + " 114627 [params.py: set():1006] [1655499] Changing key nb in group spatial from 2 to 1\n", + " 114628 [params.py: set():1006] [1655557] Changing key nb in group spatial from 2 to 1\n", + " 114640 [params.py: set():1006] [1655553] Changing key nb in group spatial from 2 to 1\n", + " 114638 [params.py: set():1006] [1655562] Changing key nb in group temporal from 2 to 1\n", + " 114633 [params.py: set():1006] [1655535] Changing key p in group preprocess from 1 to 0\n", + " 114641 [params.py: set():1006] [1655490] Changing key nb in group temporal from 2 to 1\n", + " 114628 [params.py: set():1006] [1655510] Changing key nb in group spatial from 2 to 1\n", + " 114618 [params.py: set():1006] [1655517] Changing key nb in group spatial from 2 to 1\n", + " 114635 [params.py: set():1006] [1655483] Changing key nb in group temporal from 2 to 1\n", + " 114631 [params.py: set():1006] [1655549] Changing key nb in group spatial from 2 to 1\n", + " 114636 [params.py: set():1006] [1655486] Changing key p in group temporal from 1 to 0\n", + " 114640 [params.py: set():1006] [1655556] Changing key nb in group temporal from 2 to 1\n", + " 114629 [params.py: set():1006] [1655514] Changing key nb in group spatial from 2 to 1\n", + " 114635 [params.py: set():1006] [1655472] Changing key nb in group spatial from 2 to 1\n", + " 114630 [params.py: set():1006] [1655470] Changing key nb in group spatial from 2 to 1\n", + " 114630 [params.py: set():1006] [1655476] Changing key nb in group spatial from 2 to 1\n", + " 114624 [params.py: set():1006] [1655484] Changing key nb in group spatial from 2 to 1\n", + " 114620 [params.py: set():1006] [1655497] Changing key nb in group spatial from 2 to 1\n", + " 114637 [params.py: set():1006] [1655491] Changing key nb in group temporal from 2 to 1\n", + " 114630 [params.py: set():1006] [1655488] Changing key nb in group spatial from 2 to 1\n", + " 114625 [params.py: set():1006] [1655547] Changing key p in group temporal from 1 to 0\n", + " 114626 [params.py: set():1006] [1655545] Changing key nb in group init from 2 to 1\n", + " 114630 [params.py: set():1006] [1655522] Changing key nb in group spatial from 2 to 1\n", + " 114636 [params.py: set():1006] [1655498] Changing key nb in group temporal from 2 to 1\n", + " 114636 [params.py: set():1006] [1655480] Changing key nb in group temporal from 2 to 1\n", + " 114626 [params.py: set():1006] [1655544] Changing key nb in group spatial from 2 to 1\n", + " 114637 [params.py: set():1006] [1655533] Changing key p in group preprocess from 1 to 0\n", + " 114633 [params.py: set():1006] [1655526] Changing key nb in group spatial from 2 to 1\n", + " 114639 [params.py: set():1006] [1655536] Changing key p in group temporal from 1 to 0\n", + " 114639 [params.py: set():1006] [1655487] Changing key nb in group spatial from 2 to 1\n", + " 114619 [params.py: set():1006] [1655475] Changing key nb in group spatial from 2 to 1\n", + " 114632 [params.py: set():1006] [1655548] Changing key nb in group spatial from 2 to 1\n", + " 114625 [params.py: set():1006] [1655554] Changing key nb in group spatial from 2 to 1\n", + " 114620 [params.py: set():1006] [1655519] Changing key p in group preprocess from 1 to 0\n", + " 114621 [params.py: set():1006] [1655477] Changing key nb in group spatial from 2 to 1\n", + " 114623 [params.py: set():1006] [1655502] Changing key p in group preprocess from 1 to 0\n", + " 114620 [params.py: set():1006] [1655543] Changing key nb in group spatial from 2 to 1\n", + " 114637 [params.py: set():1006] [1655534] Changing key nb in group spatial from 2 to 1\n", + " 114623 [params.py: set():1006] [1655528] Changing key nb in group init from 2 to 1\n", + " 114638 [params.py: set():1006] [1655479] Changing key nb in group temporal from 2 to 1\n", + " 114634 [params.py: set():1006] [1655527] Changing key nb in group spatial from 2 to 1\n", + " 114624 [params.py: set():1006] [1655482] Changing key nb in group spatial from 2 to 1\n", + " 114631 [params.py: set():1006] [1655509] Changing key nb in group spatial from 2 to 1\n", + " 114626 [params.py: set():1006] [1655564] Changing key nb in group init from 2 to 1\n", + " 114626 [params.py: set():1006] [1655561] Changing key nb in group spatial from 2 to 1\n", + " 114634 [params.py: set():1006] [1655531] Changing key nb in group spatial from 2 to 1\n", + " 114619 [params.py: set():1006] [1655503] Changing key nb in group spatial from 2 to 1\n", + " 114634 [params.py: set():1006] [1655495] Changing key nb in group temporal from 2 to 1\n", + " 114633 [params.py: set():1006] [1655551] Changing key nb in group spatial from 2 to 1\n", + " 114625 [params.py: set():1006] [1655511] Changing key nb in group spatial from 2 to 1\n", + " 114619 [params.py: set():1006] [1655507] Changing key nb in group temporal from 2 to 1\n", + " 114623 [params.py: set():1006] [1655474] Changing key nb in group spatial from 2 to 1\n", + " 114637 [params.py: set():1006] [1655469] Changing key nb in group init from 2 to 1\n", + " 114622 [params.py: set():1006] [1655500] Changing key nb in group spatial from 2 to 1\n", + " 114618 [params.py: set():1006] [1655473] Changing key nb in group temporal from 2 to 1\n", + " 114617 [params.py: set():1006] [1655506] Changing key nb in group spatial from 2 to 1\n", + " 114629 [params.py: set():1006] [1655542] Changing key nb in group temporal from 2 to 1\n", + " 114640 [params.py: set():1006] [1655520] Changing key nb in group spatial from 2 to 1\n", + " 114617 [params.py: set():1006] [1655524] Changing key p in group preprocess from 1 to 0\n", + " 114628 [params.py: set():1006] [1655559] Changing key nb in group spatial from 2 to 1\n", + " 114629 [params.py: set():1006] [1655529] Changing key nb in group spatial from 2 to 1\n", + " 114627 [params.py: set():1006] [1655552] Changing key nb in group spatial from 2 to 1\n", + " 114624 [params.py: set():1006] [1655504] Changing key nb in group spatial from 2 to 1\n", + " 114621 [params.py: set():1006] [1655523] Changing key nb in group spatial from 2 to 1\n", + " 114633 [params.py: set():1006] [1655537] Changing key nb in group spatial from 2 to 1\n", + " 114638 [params.py: set():1006] [1655508] Changing key p in group temporal from 1 to 0\n", + " 114622 [params.py: set():1006] [1655478] Changing key nb in group spatial from 2 to 1\n", + " 114622 [params.py: set():1006] [1655525] Changing key nb in group spatial from 2 to 1\n", + " 114618 [params.py: set():1006] [1655493] Changing key nb in group spatial from 2 to 1\n", + " 114627 [params.py: set():1006] [1655538] Changing key nb in group spatial from 2 to 1\n", + " 114622 [params.py: set():1006] [1655505] Changing key nb in group temporal from 2 to 1\n", + " 114621 [params.py: set():1006] [1655546] Changing key p in group preprocess from 1 to 0\n", + " 114632 [params.py: set():1006] [1655539] Changing key nb in group init from 2 to 1\n", + " 114635 [params.py: set():1006] [1655550] Changing key nb in group temporal from 2 to 1\n", + " 114632 [params.py: set():1006] [1655494] Changing key nb in group spatial from 2 to 1\n", + " 114617 [params.py: set():1006] [1655532] Changing key nb in group spatial from 2 to 1\n", + " 114616 [params.py: set():1006] [1655489] Changing key nb in group spatial from 2 to 1\n", + " 114618 [params.py: set():1006] [1655518] Changing key nb in group spatial from 2 to 1\n", + " 114616 [params.py: set():1006] [1655563] Changing key nb in group spatial from 2 to 1\n", + " 114616 [params.py: set():1006] [1655541] Changing key p in group temporal from 1 to 0\n", + " 114631 [params.py: set():1006] [1655481] Changing key nb in group spatial from 2 to 1\n", + " 114615 [params.py: set():1006] [1655521] Changing key nb in group spatial from 2 to 1\n", + " 114719 [params.py: set():1006] [1660129] Changing key rf in group patch from 20 to None\n", + " 114778 [params.py: set():1006] [1655479] Changing key nb in group spatial from 2 to 1\n", + " 114774 [params.py: set():1006] [1655544] Changing key p in group preprocess from 1 to 0\n", + " 114777 [params.py: set():1006] [1655563] Changing key p in group preprocess from 1 to 0\n", + " 114782 [params.py: set():1006] [1655521] Changing key p in group preprocess from 1 to 0\n", + " 114778 [params.py: set():1006] [1655489] Changing key p in group preprocess from 1 to 0\n", + " 114776 [params.py: set():1006] [1655493] Changing key p in group preprocess from 1 to 0\n", + " 114779 [params.py: set():1006] [1655537] Changing key p in group preprocess from 1 to 0\n", + " 114774 [params.py: set():1006] [1655546] Changing key p in group temporal from 1 to 0\n", + " 114777 [params.py: set():1006] [1655538] Changing key p in group preprocess from 1 to 0\n", + " 114775 [params.py: set():1006] [1655502] Changing key p in group temporal from 1 to 0\n", + " 114778 [params.py: set():1006] [1655551] Changing key p in group preprocess from 1 to 0\n", + " 114780 [params.py: set():1006] [1655500] Changing key p in group preprocess from 1 to 0\n", + " 114776 [params.py: set():1006] [1655523] Changing key p in group preprocess from 1 to 0\n", + " 114770 [params.py: set():1006] [1655526] Changing key p in group preprocess from 1 to 0\n", + " 114768 [params.py: set():1006] [1655542] Changing key nb in group spatial from 2 to 1\n", + " 114776 [params.py: set():1006] [1655550] Changing key nb in group spatial from 2 to 1\n", + " 114768 [params.py: set():1006] [1655487] Changing key p in group preprocess from 1 to 0\n", + " 114770 [params.py: set():1006] [1655476] Changing key p in group preprocess from 1 to 0\n", + " 114778 [params.py: set():1006] [1655518] Changing key p in group preprocess from 1 to 0\n", + " 114766 [cnmf.py: fit():436] [1655547] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114779 [params.py: set():1006] [1655532] Changing key p in group preprocess from 1 to 0\n", + " 114773 [params.py: set():1006] [1655524] Changing key p in group temporal from 1 to 0\n", + " 114777 [cnmf.py: fit():436] [1655508] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114767 [params.py: set():1006] [1655533] Changing key p in group temporal from 1 to 0\n", + " 114775 [params.py: set():1006] [1655528] Changing key nb in group temporal from 2 to 1\n", + " 114781 [params.py: set():1006] [1655510] Changing key p in group preprocess from 1 to 0\n", + " 114765 [params.py: set():1006] [1655549] Changing key p in group preprocess from 1 to 0\n", + " 114782 [params.py: set():1006] [1655545] Changing key nb in group temporal from 2 to 1\n", + " 114779 [params.py: set():1006] [1655505] Changing key nb in group spatial from 2 to 1\n", + " 114771 [params.py: set():1006] [1655475] Changing key p in group preprocess from 1 to 0\n", + " 114772 [params.py: set():1006] [1655539] Changing key nb in group temporal from 2 to 1\n", + " 114772 [params.py: set():1006] [1655504] Changing key p in group preprocess from 1 to 0\n", + " 114774 [params.py: set():1006] [1655534] Changing key p in group preprocess from 1 to 0\n", + " 114769 [params.py: set():1006] [1655548] Changing key p in group preprocess from 1 to 0\n", + " 114764 [params.py: set():1006] [1655519] Changing key p in group temporal from 1 to 0\n", + " 114765 [params.py: set():1006] [1655553] Changing key p in group preprocess from 1 to 0\n", + " 114765 [params.py: set():1006] [1655557] Changing key p in group preprocess from 1 to 0\n", + " 114780 [cnmf.py: fit():436] [1655541] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114764 [params.py: set():1006] [1655561] Changing key p in group preprocess from 1 to 0\n", + " 114763 [params.py: set():1006] [1655554] Changing key p in group preprocess from 1 to 0\n", + " 114780 [params.py: set():1006] [1655509] Changing key p in group preprocess from 1 to 0\n", + " 114769 [params.py: set():1006] [1655473] Changing key nb in group spatial from 2 to 1\n", + " 114781 [params.py: set():1006] [1655481] Changing key p in group preprocess from 1 to 0\n", + " 114770 [params.py: set():1006] [1655527] Changing key p in group preprocess from 1 to 0\n", + " 114763 [params.py: set():1006] [1655507] Changing key nb in group spatial from 2 to 1\n", + " 114766 [params.py: set():1006] [1655556] Changing key nb in group spatial from 2 to 1\n", + " 114781 [params.py: set():1006] [1655499] Changing key p in group preprocess from 1 to 0\n", + " 114765 [params.py: set():1006] [1655484] Changing key p in group preprocess from 1 to 0\n", + " 114773 [params.py: set():1006] [1655470] Changing key p in group preprocess from 1 to 0\n", + " 114768 [params.py: set():1006] [1655529] Changing key p in group preprocess from 1 to 0\n", + " 114773 [params.py: set():1006] [1655525] Changing key p in group preprocess from 1 to 0\n", + " 114767 [params.py: set():1006] [1655543] Changing key p in group preprocess from 1 to 0\n", + " 114767 [params.py: set():1006] [1655506] Changing key p in group preprocess from 1 to 0\n", + " 114768 [params.py: set():1006] [1655469] Changing key nb in group temporal from 2 to 1\n", + " 114760 [params.py: set():1006] [1655522] Changing key p in group preprocess from 1 to 0\n", + " 114769 [params.py: set():1006] [1655482] Changing key p in group preprocess from 1 to 0\n", + " 114764 [params.py: set():1006] [1655488] Changing key p in group preprocess from 1 to 0\n", + " 114763 [params.py: set():1006] [1655559] Changing key p in group preprocess from 1 to 0\n", + " 114773 [params.py: set():1006] [1655494] Changing key p in group preprocess from 1 to 0\n", + " 114762 [params.py: set():1006] [1655483] Changing key nb in group spatial from 2 to 1\n", + " 114771 [params.py: set():1006] [1655503] Changing key p in group preprocess from 1 to 0\n", + " 114766 [params.py: set():1006] [1655562] Changing key nb in group spatial from 2 to 1\n", + " 114759 [params.py: set():1006] [1655490] Changing key nb in group spatial from 2 to 1\n", + " 114771 [params.py: set():1006] [1655474] Changing key p in group preprocess from 1 to 0\n", + " 114759 [cnmf.py: fit():436] [1655486] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114771 [params.py: set():1006] [1655491] Changing key nb in group spatial from 2 to 1\n", + " 114761 [params.py: set():1006] [1655514] Changing key p in group preprocess from 1 to 0\n", + " 114775 [params.py: set():1006] [1655478] Changing key p in group preprocess from 1 to 0\n", + " 114761 [params.py: set():1006] [1655535] Changing key p in group temporal from 1 to 0\n", + " 114760 [params.py: set():1006] [1655480] Changing key nb in group spatial from 2 to 1\n", + " 114761 [params.py: set():1006] [1655517] Changing key p in group preprocess from 1 to 0\n", + " 114759 [params.py: set():1006] [1655495] Changing key nb in group spatial from 2 to 1\n", + " 114762 [params.py: set():1006] [1655477] Changing key p in group preprocess from 1 to 0\n", + " 114762 [params.py: set():1006] [1655511] Changing key p in group preprocess from 1 to 0\n", + " 114760 [params.py: set():1006] [1655497] Changing key p in group preprocess from 1 to 0\n", + " 114758 [params.py: set():1006] [1655498] Changing key nb in group spatial from 2 to 1\n", + " 114761 [cnmf.py: fit():436] [1655536] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114772 [params.py: set():1006] [1655520] Changing key p in group preprocess from 1 to 0\n", + " 114758 [params.py: set():1006] [1655531] Changing key p in group preprocess from 1 to 0\n", + " 114757 [params.py: set():1006] [1655552] Changing key p in group preprocess from 1 to 0\n", + " 114758 [params.py: set():1006] [1655564] Changing key nb in group temporal from 2 to 1\n", + " 114757 [params.py: set():1006] [1655472] Changing key p in group preprocess from 1 to 0\n", + " 114750 [params.py: set():1006] [1663745] Changing key rf in group patch from 20 to None\n", + " 114812 [params.py: set():1006] [1660361] Changing key rf in group patch from 20 to None\n", + " 114808 [params.py: set():1006] [1660550] Changing key rf in group patch from 20 to None\n", + " 114860 [cnmf.py: fit():449] [1655536] (8000, 41, 41)\n", + " 114858 [params.py: set():1006] [1655564] Changing key nb in group spatial from 2 to 1\n", + " 114859 [params.py: set():1006] [1655477] Changing key p in group temporal from 1 to 0\n", + " 114858 [params.py: set():1006] [1655552] Changing key p in group temporal from 1 to 0\n", + " 114861 [params.py: set():1006] [1660361] Changing key stride in group patch from 10 to None\n", + " 114855 [cnmf.py: fit():436] [1655535] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114857 [params.py: set():1006] [1655559] Changing key p in group temporal from 1 to 0\n", + " 114857 [params.py: set():1006] [1655498] Changing key p in group preprocess from 1 to 0\n", + " 114853 [params.py: set():1006] [1655561] Changing key p in group temporal from 1 to 0\n", + " 114844 [params.py: set():1006] [1655549] Changing key p in group temporal from 1 to 0\n", + " 114856 [params.py: set():1006] [1655480] Changing key p in group preprocess from 1 to 0\n", + " 114856 [params.py: set():1006] [1655490] Changing key p in group preprocess from 1 to 0\n", + " 114858 [params.py: set():1006] [1655531] Changing key p in group temporal from 1 to 0\n", + " 114852 [params.py: set():1006] [1655474] Changing key p in group temporal from 1 to 0\n", + " 114855 [params.py: set():1006] [1655503] Changing key p in group temporal from 1 to 0\n", + " 114851 [params.py: set():1006] [1655473] Changing key p in group preprocess from 1 to 0\n", + " 114852 [params.py: set():1006] [1655482] Changing key p in group temporal from 1 to 0\n", + " 114852 [params.py: set():1006] [1655499] Changing key p in group temporal from 1 to 0\n", + " 114859 [params.py: set():1006] [1655514] Changing key p in group temporal from 1 to 0\n", + " 114847 [params.py: set():1006] [1655505] Changing key p in group preprocess from 1 to 0\n", + " 114859 [params.py: set():1006] [1655511] Changing key p in group temporal from 1 to 0\n", + " 114858 [params.py: set():1006] [1655483] Changing key p in group preprocess from 1 to 0\n", + " 114842 [cnmf.py: fit():449] [1655541] (8000, 41, 41)\n", + " 114860 [params.py: set():1006] [1655476] Changing key p in group temporal from 1 to 0\n", + " 114851 [params.py: set():1006] [1655484] Changing key p in group temporal from 1 to 0\n", + " 114854 [params.py: set():1006] [1655497] Changing key p in group temporal from 1 to 0\n", + " 114851 [params.py: set():1006] [1655537] Changing key p in group temporal from 1 to 0\n", + " 114853 [cnmf.py: fit():449] [1655486] (8000, 41, 41)\n", + " 114850 [cnmf.py: fit():436] [1655519] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114862 [params.py: set():1006] [1660550] Changing key stride in group patch from 10 to None\n", + " 114844 [params.py: set():1006] [1655475] Changing key p in group temporal from 1 to 0\n", + " 114849 [params.py: set():1006] [1655557] Changing key p in group temporal from 1 to 0\n", + " 114850 [params.py: set():1006] [1655478] Changing key p in group temporal from 1 to 0\n", + " 114842 [params.py: set():1006] [1655528] Changing key nb in group spatial from 2 to 1\n", + " 114848 [params.py: set():1006] [1655494] Changing key p in group temporal from 1 to 0\n", + " 114839 [params.py: set():1006] [1655487] Changing key p in group temporal from 1 to 0\n", + " 114854 [params.py: set():1006] [1655507] Changing key p in group preprocess from 1 to 0\n", + " 114843 [params.py: set():1006] [1655510] Changing key p in group temporal from 1 to 0\n", + " 114846 [params.py: set():1006] [1655481] Changing key p in group temporal from 1 to 0\n", + " 114849 [params.py: set():1006] [1655488] Changing key p in group temporal from 1 to 0\n", + " 114845 [params.py: set():1006] [1655556] Changing key p in group preprocess from 1 to 0\n", + " 114854 [params.py: set():1006] [1655491] Changing key p in group preprocess from 1 to 0\n", + " 114854 [params.py: set():1006] [1655520] Changing key p in group temporal from 1 to 0\n", + " 114860 [params.py: set():1006] [1655472] Changing key p in group temporal from 1 to 0\n", + " 114847 [params.py: set():1006] [1655532] Changing key p in group temporal from 1 to 0\n", + " 114839 [params.py: set():1006] [1655500] Changing key p in group temporal from 1 to 0\n", + " 114841 [params.py: set():1006] [1655538] Changing key p in group temporal from 1 to 0\n", + " 114849 [params.py: set():1006] [1655529] Changing key p in group temporal from 1 to 0\n", + " 114844 [params.py: set():1006] [1655548] Changing key p in group temporal from 1 to 0\n", + " 114856 [params.py: set():1006] [1655517] Changing key p in group temporal from 1 to 0\n", + " 114841 [params.py: set():1006] [1655542] Changing key p in group preprocess from 1 to 0\n", + " 114853 [params.py: set():1006] [1655527] Changing key p in group temporal from 1 to 0\n", + " 114840 [cnmf.py: fit():436] [1655533] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114845 [params.py: set():1006] [1655554] Changing key p in group temporal from 1 to 0\n", + " 114842 [params.py: set():1006] [1655543] Changing key p in group temporal from 1 to 0\n", + " 114849 [params.py: set():1006] [1655470] Changing key p in group temporal from 1 to 0\n", + " 114843 [params.py: set():1006] [1655539] Changing key nb in group spatial from 2 to 1\n", + " 114838 [params.py: set():1006] [1655489] Changing key p in group temporal from 1 to 0\n", + " 114845 [params.py: set():1006] [1655562] Changing key p in group preprocess from 1 to 0\n", + " 114840 [cnmf.py: fit():436] [1655502] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114846 [params.py: set():1006] [1655553] Changing key p in group temporal from 1 to 0\n", + " 114838 [params.py: set():1006] [1655523] Changing key p in group temporal from 1 to 0\n", + " 114839 [cnmf.py: fit():449] [1655547] (8000, 41, 41)\n", + " 114861 [params.py: set():1006] [1663745] Changing key stride in group patch from 10 to None\n", + " 114850 [params.py: set():1006] [1655506] Changing key p in group temporal from 1 to 0\n", + " 114840 [params.py: set():1006] [1655504] Changing key p in group temporal from 1 to 0\n", + " 114846 [params.py: set():1006] [1655534] Changing key p in group temporal from 1 to 0\n", + " 114836 [cnmf.py: fit():436] [1655546] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114847 [params.py: set():1006] [1655469] Changing key nb in group spatial from 2 to 1\n", + " 114845 [params.py: set():1006] [1655550] Changing key p in group preprocess from 1 to 0\n", + " 114836 [params.py: set():1006] [1655521] Changing key p in group temporal from 1 to 0\n", + " 114839 [params.py: set():1006] [1655551] Changing key p in group temporal from 1 to 0\n", + " 114837 [params.py: set():1006] [1655526] Changing key p in group temporal from 1 to 0\n", + " 114848 [params.py: set():1006] [1655509] Changing key p in group temporal from 1 to 0\n", + " 114843 [cnmf.py: fit():436] [1655524] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114835 [params.py: set():1006] [1655544] Changing key p in group temporal from 1 to 0\n", + " 114838 [params.py: set():1006] [1655493] Changing key p in group temporal from 1 to 0\n", + " 114848 [params.py: set():1006] [1655522] Changing key p in group temporal from 1 to 0\n", + " 114857 [params.py: set():1006] [1655495] Changing key p in group preprocess from 1 to 0\n", + " 114835 [params.py: set():1006] [1655545] Changing key nb in group spatial from 2 to 1\n", + " 114837 [params.py: set():1006] [1655518] Changing key p in group temporal from 1 to 0\n", + " 114836 [cnmf.py: fit():449] [1655508] (8000, 41, 40)\n", + " 114837 [params.py: set():1006] [1655479] Changing key p in group preprocess from 1 to 0\n", + " 114841 [params.py: set():1006] [1655525] Changing key p in group temporal from 1 to 0\n", + " 114835 [params.py: set():1006] [1655563] Changing key p in group temporal from 1 to 0\n", + " 114826 [params.py: set():1006] [1660129] Changing key stride in group patch from 10 to None\n", + " 114931 [cnmf.py: fit():436] [1655509] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114924 [cnmf.py: fit():436] [1655532] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114929 [cnmf.py: fit():436] [1655525] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114929 [cnmf.py: fit():449] [1655535] (8000, 41, 41)\n", + " 114930 [params.py: set():1006] [1655545] Changing key p in group preprocess from 1 to 0\n", + " 114933 [params.py: set():1006] [1655495] Changing key p in group temporal from 1 to 0\n", + " 114931 [cnmf.py: fit():436] [1655526] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114929 [cnmf.py: fit():449] [1655524] (8000, 41, 41)\n", + " 114930 [params.py: set():1006] [1655550] Changing key p in group temporal from 1 to 0\n", + " 114930 [params.py: set():1006] [1655469] Changing key p in group preprocess from 1 to 0\n", + " 114927 [cnmf.py: fit():436] [1655518] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114933 [params.py: set():1006] [1660129] Changing key nb in group init from 2 to 1\n", + " 114927 [cnmf.py: fit():436] [1655553] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114918 [cnmf.py: fit():436] [1655520] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114912 [cnmf.py: fit():436] [1655484] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114925 [cnmf.py: fit():436] [1655521] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114932 [cnmf.py: fit():436] [1655561] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114922 [cnmf.py: fit():466] [1655547] Using 1 processes\n", + " 114925 [cnmf.py: fit():436] [1655543] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114908 [params.py: set():1006] [1655490] Changing key p in group temporal from 1 to 0\n", + " 114920 [cnmf.py: fit():436] [1655529] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114920 [params.py: set():1006] [1655473] Changing key p in group temporal from 1 to 0\n", + " 114926 [cnmf.py: fit():436] [1655522] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114928 [cnmf.py: fit():436] [1655544] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114921 [cnmf.py: fit():436] [1655548] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114928 [cnmf.py: fit():466] [1655536] Using 1 processes\n", + " 114907 [cnmf.py: fit():436] [1655482] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114916 [cnmf.py: fit():436] [1655557] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114920 [cnmf.py: fit():436] [1655481] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114928 [cnmf.py: fit():436] [1655500] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114919 [params.py: set():1006] [1655491] Changing key p in group temporal from 1 to 0\n", + " 114918 [cnmf.py: fit():436] [1655510] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114932 [params.py: set():1006] [1655479] Changing key p in group temporal from 1 to 0\n", + " 114919 [params.py: set():1006] [1655556] Changing key p in group temporal from 1 to 0\n", + " 114919 [cnmf.py: fit():436] [1655504] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114922 [cnmf.py: fit():436] [1655534] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114927 [cnmf.py: fit():436] [1655493] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114925 [params.py: set():1006] [1655539] Changing key p in group preprocess from 1 to 0\n", + " 114913 [cnmf.py: fit():436] [1655476] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114921 [cnmf.py: fit():436] [1655488] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114909 [params.py: set():1006] [1655483] Changing key p in group temporal from 1 to 0\n", + " 114932 [cnmf.py: fit():436] [1655551] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114912 [params.py: set():1006] [1655507] Changing key p in group temporal from 1 to 0\n", + " 114933 [cnmf.py: fit():436] [1655563] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114931 [cnmf.py: fit():466] [1655508] Using 1 processes\n", + " 114910 [cnmf.py: fit():436] [1655497] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114918 [cnmf.py: fit():436] [1655554] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114926 [cnmf.py: fit():436] [1655489] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114909 [cnmf.py: fit():436] [1655499] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114910 [cnmf.py: fit():436] [1655511] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114911 [cnmf.py: fit():436] [1655527] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114916 [cnmf.py: fit():436] [1655517] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114923 [cnmf.py: fit():436] [1655472] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114912 [cnmf.py: fit():436] [1655487] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114923 [cnmf.py: fit():436] [1655523] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114921 [cnmf.py: fit():449] [1655533] (8000, 41, 41)\n", + " 114924 [params.py: set():1006] [1655542] Changing key p in group temporal from 1 to 0\n", + " 114923 [cnmf.py: fit():436] [1655538] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114913 [cnmf.py: fit():436] [1655478] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114917 [cnmf.py: fit():436] [1655494] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114911 [params.py: set():1006] [1655528] Changing key p in group preprocess from 1 to 0\n", + " 114922 [cnmf.py: fit():449] [1655502] (8000, 41, 41)\n", + " 114926 [cnmf.py: fit():449] [1655546] (8000, 41, 41)\n", + " 114911 [cnmf.py: fit():466] [1655541] Using 1 processes\n", + " 114915 [cnmf.py: fit():436] [1655503] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114911 [cnmf.py: fit():449] [1655519] (8000, 41, 41)\n", + " 114914 [cnmf.py: fit():436] [1655549] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114908 [cnmf.py: fit():436] [1655531] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114924 [params.py: set():1006] [1655562] Changing key p in group temporal from 1 to 0\n", + " 114910 [cnmf.py: fit():436] [1655537] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114913 [cnmf.py: fit():436] [1655470] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114907 [params.py: set():1006] [1655480] Changing key p in group temporal from 1 to 0\n", + " 114907 [cnmf.py: fit():466] [1655486] Using 1 processes\n", + " 114916 [cnmf.py: fit():436] [1655474] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114908 [cnmf.py: fit():436] [1655477] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114917 [cnmf.py: fit():436] [1655506] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114915 [params.py: set():1006] [1655505] Changing key p in group temporal from 1 to 0\n", + " 114906 [cnmf.py: fit():436] [1655552] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114917 [params.py: set():1006] [1663745] Changing key nb in group init from 2 to 1\n", + " 114909 [params.py: set():1006] [1655498] Changing key p in group temporal from 1 to 0\n", + " 114914 [cnmf.py: fit():436] [1655475] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114914 [params.py: set():1006] [1660550] Changing key nb in group init from 2 to 1\n", + " 114906 [params.py: set():1006] [1660361] Changing key nb in group init from 2 to 1\n", + " 114906 [cnmf.py: fit():436] [1655514] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114905 [params.py: set():1006] [1655564] Changing key p in group preprocess from 1 to 0\n", + " 114905 [cnmf.py: fit():436] [1655559] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 115003 [cnmf.py: fit():449] [1655559] (8000, 41, 41)\n", + " 115000 [cnmf.py: fit():449] [1655503] (8000, 41, 41)\n", + " 115002 [cnmf.py: fit():477] [1655541] using 400 pixels per process\n", + " 115001 [cnmf.py: fit():436] [1655505] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 115003 [params.py: set():1006] [1655564] Changing key p in group temporal from 1 to 0\n", + " 114996 [cnmf.py: fit():449] [1655477] (8000, 40, 41)\n", + " 115002 [cnmf.py: fit():466] [1655535] Using 1 processes\n", + " 114978 [cnmf.py: fit():449] [1655521] (8000, 41, 41)\n", + " 114984 [cnmf.py: fit():449] [1655517] (8000, 41, 41)\n", + " 114985 [cnmf.py: fit():436] [1655483] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 115000 [cnmf.py: fit():466] [1655502] Using 1 processes\n", + " 114999 [cnmf.py: fit():449] [1655475] (8000, 41, 40)\n", + " 114982 [cnmf.py: fit():436] [1655495] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114996 [cnmf.py: fit():449] [1655549] (8000, 41, 41)\n", + " 115001 [cnmf.py: fit():449] [1655514] (8000, 41, 41)\n", + " 114991 [cnmf.py: fit():449] [1655474] (8000, 41, 41)\n", + " 114986 [cnmf.py: fit():449] [1655482] (8000, 41, 41)\n", + " 114985 [cnmf.py: fit():449] [1655522] (8000, 41, 41)\n", + " 114989 [cnmf.py: fit():436] [1655507] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114996 [cnmf.py: fit():449] [1655523] (8000, 41, 41)\n", + " 114991 [cnmf.py: fit():477] [1655536] using 400 pixels per process\n", + " 114992 [cnmf.py: fit():466] [1655546] Using 1 processes\n", + " 114977 [cnmf.py: fit():449] [1655532] (8000, 41, 41)\n", + " 114997 [cnmf.py: fit():449] [1655487] (8000, 41, 41)\n", + " 114994 [cnmf.py: fit():466] [1655533] Using 1 processes\n", + " 114989 [cnmf.py: fit():449] [1655500] (8000, 41, 41)\n", + " 114998 [cnmf.py: fit():449] [1655531] (8000, 41, 41)\n", + " 114985 [cnmf.py: fit():436] [1655542] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114981 [cnmf.py: fit():477] [1655547] using 400 pixels per process\n", + " 114987 [cnmf.py: fit():436] [1655550] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114986 [cnmf.py: fit():449] [1655497] (8000, 41, 41)\n", + " 114992 [cnmf.py: fit():449] [1655476] (8000, 41, 41)\n", + " 114999 [cnmf.py: fit():436] [1655562] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114995 [cnmf.py: fit():449] [1655544] (8000, 41, 40)\n", + " 114979 [cnmf.py: fit():449] [1655548] (8000, 41, 41)\n", + " 114991 [cnmf.py: fit():449] [1655499] (8000, 41, 41)\n", + " 114986 [cnmf.py: fit():449] [1655511] (8000, 41, 41)\n", + " 114982 [cnmf.py: fit():449] [1655518] (8000, 40, 41)\n", + " 114988 [cnmf.py: fit():449] [1655525] (8000, 41, 41)\n", + " 114992 [cnmf.py: fit():466] [1655519] Using 1 processes\n", + " 114980 [cnmf.py: fit():449] [1655484] (8000, 41, 41)\n", + " 114998 [cnmf.py: fit():449] [1655506] (8000, 40, 41)\n", + " 114978 [cnmf.py: fit():449] [1655543] (8000, 41, 41)\n", + " 114983 [cnmf.py: fit():449] [1655534] (8000, 41, 41)\n", + " 114981 [params.py: set():1006] [1655539] Changing key p in group temporal from 1 to 0\n", + " 114989 [cnmf.py: fit():449] [1655552] (8000, 41, 41)\n", + " 114995 [cnmf.py: fit():449] [1655470] (8000, 41, 41)\n", + " 114995 [cnmf.py: fit():449] [1655537] (8000, 41, 41)\n", + " 114983 [cnmf.py: fit():449] [1655551] (8000, 41, 41)\n", + " 114983 [cnmf.py: fit():449] [1655529] (8000, 41, 41)\n", + " 115003 [params.py: set():1006] [1655528] Changing key p in group temporal from 1 to 0\n", + " 114987 [cnmf.py: fit():449] [1655538] (8000, 40, 41)\n", + " 114990 [cnmf.py: fit():449] [1655493] (8000, 40, 41)\n", + " 114981 [params.py: set():1006] [1655469] Changing key p in group temporal from 1 to 0\n", + " 115001 [params.py: set():1006] [1660129] Changing key nb in group temporal from 2 to 1\n", + " 114993 [cnmf.py: fit():449] [1655472] (8000, 41, 41)\n", + " 114988 [cnmf.py: fit():436] [1655556] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114979 [cnmf.py: fit():449] [1655557] (8000, 41, 40)\n", + " 114987 [cnmf.py: fit():449] [1655489] (8000, 41, 41)\n", + " 114994 [cnmf.py: fit():449] [1655478] (8000, 41, 41)\n", + " 114978 [cnmf.py: fit():449] [1655526] (8000, 40, 41)\n", + " 114977 [cnmf.py: fit():449] [1655504] (8000, 40, 41)\n", + " 114976 [cnmf.py: fit():436] [1655491] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114988 [params.py: set():1006] [1655545] Changing key p in group temporal from 1 to 0\n", + " 114997 [cnmf.py: fit():449] [1655494] (8000, 41, 41)\n", + " 114997 [cnmf.py: fit():449] [1655509] (8000, 41, 41)\n", + " 114982 [cnmf.py: fit():436] [1655473] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 115000 [params.py: set():1006] [1663745] Changing key nb in group temporal from 2 to 1\n", + " 114999 [params.py: set():1006] [1660550] Changing key nb in group temporal from 2 to 1\n", + " 114980 [cnmf.py: fit():436] [1655479] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114998 [cnmf.py: fit():436] [1655498] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114993 [cnmf.py: fit():449] [1655488] (8000, 41, 41)\n", + " 115002 [params.py: set():1006] [1660361] Changing key nb in group temporal from 2 to 1\n", + " 114977 [cnmf.py: fit():449] [1655563] (8000, 40, 41)\n", + " 114984 [cnmf.py: fit():449] [1655561] (8000, 41, 41)\n", + " 114994 [cnmf.py: fit():477] [1655486] using 400 pixels per process\n", + " 114980 [cnmf.py: fit():449] [1655527] (8000, 41, 41)\n", + " 114990 [cnmf.py: fit():436] [1655490] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114992 [cnmf.py: fit():436] [1655480] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 114993 [cnmf.py: fit():449] [1655553] (8000, 41, 41)\n", + " 114976 [cnmf.py: fit():449] [1655481] (8000, 41, 41)\n", + " 114984 [cnmf.py: fit():449] [1655554] (8000, 41, 41)\n", + " 114979 [cnmf.py: fit():477] [1655508] using 400 pixels per process\n", + " 114990 [cnmf.py: fit():449] [1655510] (8000, 41, 41)\n", + " 114975 [cnmf.py: fit():449] [1655520] (8000, 41, 41)\n", + " 114975 [cnmf.py: fit():466] [1655524] Using 1 processes\n", + " 115044 [cnmf.py: fit():466] [1655482] Using 1 processes\n", + " 115044 [cnmf.py: fit():477] [1655502] using 400 pixels per process\n", + " 115044 [cnmf.py: fit():436] [1655564] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 115045 [cnmf.py: fit():466] [1655549] Using 1 processes\n", + " 115045 [cnmf.py: fit():449] [1655505] (8000, 40, 41)\n", + " 115045 [cnmf.py: fit():466] [1655474] Using 1 processes\n", + " 115046 [cnmf.py: fit():466] [1655475] Using 1 processes\n", + " 115046 [cnmf.py: fit():466] [1655517] Using 1 processes\n", + " 115046 [cnmf.py: fit():466] [1655506] Using 1 processes\n", + " 115047 [cnmf.py: fit():436] [1655528] Parallel processing in a single patch is not available for loaded in memory or sliced data.\n", + " 115047 [cnmf.py: fit():466] [1655499] Using 1 processes\n", + " 115047 [cnmf.py: fit():466] [1655477] Using 1 processes\n", + " 115047 [cnmf.py: fit():449] [1655542] (8000, 41, 41)\n", + " 115048 [cnmf.py: fit():466] [1655522] Using 1 processes\n", + " 115048 [cnmf.py: fit():478] [1655541] using 5000 block_size_temp\n", + " 115048 [cnmf.py: fit():478] [1655536] using 5000 block_size_temp\n", + " 115049 [cnmf.py: fit():466] [1655511] Using 1 processes\n", + " 115049 [cnmf.py: fit():477] [1655519] using 400 pixels per process\n", + " 115049 [cnmf.py: fit():466] [1655476] Using 1 processes\n", + " 115049 [cnmf.py: fit():466] [1655544] Using 1 processes\n", + "IOPub message rate exceeded.\n", + "The Jupyter server will temporarily stop sending output\n", + "to the client in order to avoid crashing it.\n", + "To change this limit, set the config variable\n", + "`--ServerApp.iopub_msg_rate_limit`.\n", + "\n", + "Current values:\n", + "ServerApp.iopub_msg_rate_limit=1000.0 (msgs/sec)\n", + "ServerApp.rate_limit_window=3.0 (secs)\n", + "\n" + ] + } + ], + "source": [ + "fname_new = params_movie['fname']\n", + "\n", + "\n", + "# %% RUN ANALYSIS\n", + "c, dview, n_processes = cm.cluster.setup_cluster(\n", + " backend='local', n_processes=None, single_thread=False)\n", + "\n", + "\n", + "# %% LOAD MEMMAP FILE\n", + "# fname_new='Yr_d1_501_d2_398_d3_1_order_F_frames_369_.mmap'\n", + "Yr, dims, T = cm.load_memmap(fname_new)\n", + "d1, d2 = dims\n", + "images = np.reshape(Yr.T, [T] + list(dims), order='F')\n", + "# TODO: needinfo\n", + "Y = np.reshape(Yr, dims + (T,), order='F')\n", + "m_images = cm.movie(images)\n", + "\n", + "# TODO: show screenshot 10\n", + "# %% correlation image\n", + "if m_images.shape[0] < 10000:\n", + " Cn = m_images.local_correlations(\n", + " swap_dim=params_movie['swap_dim'], frames_per_chunk=1500)\n", + " Cn[np.isnan(Cn)] = 0\n", + "else:\n", + " Cn = np.array(cm.load(('/'.join(fname_new.split('/') \n", + " [:-3] + ['projections', 'correlation_image_better.tif'])))).squeeze()\n", + "pl.imshow(Cn, cmap='gray', vmax=.95)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "<>:24: SyntaxWarning: \"is not\" with a literal. Did you mean \"!=\"?\n", + "<>:24: SyntaxWarning: \"is not\" with a literal. Did you mean \"!=\"?\n", + "/tmp/ipykernel_1655335/2106226496.py:24: SyntaxWarning: \"is not\" with a literal. Did you mean \"!=\"?\n", + " if params_movie['init_method'] is not 'sparse_nmf':\n", + " 62256 [params.py: set():1006] [1655335] Changing key init_batch in group online from 200 to 8000\n", + " 62258 [cnmf.py: fit():449] [1655335] (8000, 512, 512)\n", + " 62258 [cnmf.py: fit():466] [1655335] Using 1 processes\n", + " 62258 [cnmf.py: fit():477] [1655335] using 4000 pixels per process\n", + " 62258 [cnmf.py: fit():478] [1655335] using 5000 block_size_temp\n", + " 62259 [params.py: set():1006] [1655335] Changing key n_pixels_per_process in group preprocess from 4000 to 400\n", + " 62259 [params.py: set():1006] [1655335] Changing key n_pixels_per_process in group spatial from 4000 to 400\n", + " 62277 [map_reduce.py: run_CNMF_patches():227] [1655335] Patch size: (40, 40)\n" + ] + } + ], + "source": [ + "\n", + "# %% some parameter settings\n", + "# order of the autoregressive fit to calcium imaging in general one (slow gcamps) or two (fast gcamps fast scanning)\n", + "p = params_movie['p']\n", + "# merging threshold, max correlation allowed\n", + "merge_thresh = params_movie['merge_thresh']\n", + "# half-size of the patches in pixels. rf=25, patches are 50x50\n", + "rf = params_movie['rf']\n", + "# amounpl.it of overlap between the patches in pixels\n", + "stride_cnmf = params_movie['stride_cnmf']\n", + "# number of components per patch\n", + "K = params_movie['K']\n", + "# if dendritic. In this case you need to set init_method to sparse_nmf\n", + "is_dendrites = params_movie['is_dendrites']\n", + "# iinit method can be greedy_roi for round shapes or sparse_nmf for denritic data\n", + "init_method = params_movie['init_method']\n", + "# expected half size of neurons\n", + "gSig = params_movie['gSig']\n", + "# this controls sparsity\n", + "alpha_snmf = params_movie['alpha_snmf']\n", + "# frame rate of movie (even considering eventual downsampling)\n", + "final_frate = params_movie['final_frate']\n", + "\n", + "if params_movie['is_dendrites'] == True:\n", + " if params_movie['init_method'] is not 'sparse_nmf':\n", + " raise Exception('dendritic requires sparse_nmf')\n", + " if params_movie['alpha_snmf'] is None:\n", + " raise Exception('need to set a value for alpha_snmf')\n", + "# %% Extract spatial and temporal components on patches\n", + "t1 = time.time()\n", + "# TODO: todocument\n", + "# TODO: warnings 3\n", + "cnm = cnmf.CNMF(n_processes=1, k=K, gSig=gSig, merge_thresh=params_movie['merge_thresh'], p=params_movie['p'],\n", + " dview=dview, rf=rf, stride=stride_cnmf, memory_fact=1,\n", + " method_init=init_method, alpha_snmf=alpha_snmf, only_init_patch=params_movie[\n", + " 'only_init_patch'],\n", + " gnb=params_movie['gnb'], method_deconvolution='oasis', border_pix=params_movie['crop_pix'], low_rank_background=params_movie['low_rank_background'])\n", + "cnm = cnm.fit(images)\n", + "\n", + "A_tot = cnm.A\n", + "C_tot = cnm.C\n", + "YrA_tot = cnm.YrA\n", + "b_tot = cnm.b\n", + "f_tot = cnm.f\n", + "sn_tot = cnm.sn\n", + "print(('Number of components:' + str(A_tot.shape[-1])))\n", + "# %%\n", + "pl.figure()\n", + "# TODO: show screenshot 12`\n", + "# TODO : change the way it is used\n", + "crd = plot_contours(A_tot, Cn, thr=params_display['thr_plot'])\n", + "# %% DISCARD LOW QUALITY COMPONENT\n", + "final_frate = params_movie['final_frate']\n", + "# threshold on space consistency\n", + "r_values_min = params_movie['r_values_min_patch']\n", + "# threshold on time variability\n", + "fitness_min = params_movie['fitness_delta_min_patch']\n", + "# threshold on time variability (if nonsparse activity)\n", + "fitness_delta_min = params_movie['fitness_delta_min_patch']\n", + "Npeaks = params_movie['Npeaks']\n", + "traces = C_tot + YrA_tot\n", + "# TODO: todocument\n", + "idx_components, idx_components_bad = estimate_components_quality(\n", + " traces, Y, A_tot, C_tot, b_tot, f_tot, final_frate=final_frate, Npeaks=Npeaks, r_values_min=r_values_min,\n", + " fitness_min=fitness_min, fitness_delta_min=fitness_delta_min)\n", + "print(('Keeping ' + str(len(idx_components)) +\n", + " ' and discarding ' + str(len(idx_components_bad))))\n", + "# %%\n", + "# TODO: show screenshot 13\n", + "pl.figure()\n", + "crd = plot_contours(\n", + " A_tot.tocsc()[:, idx_components], Cn, thr=params_display['thr_plot'])\n", + "# %%\n", + "A_tot = A_tot.tocsc()[:, idx_components]\n", + "C_tot = C_tot[idx_components]\n", + "# %% rerun updating the components to refine\n", + "t1 = time.time()\n", + "cnm = cnmf.CNMF(n_processes=1, k=A_tot.shape, gSig=gSig, merge_thresh=merge_thresh, p=p, dview=dview, Ain=A_tot,\n", + " Cin=C_tot, b_in=b_tot,\n", + " f_in=f_tot, rf=None, stride=None, method_deconvolution='oasis', gnb=params_movie['gnb'],\n", + " low_rank_background=params_movie['low_rank_background'], update_background_components=params_movie['update_background_components'])\n", + "\n", + "cnm = cnm.fit(images)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "A, C, b, f, YrA, sn = cnm.A, cnm.C, cnm.b, cnm.f, cnm.YrA, cnm.sn\n", + "# %% again recheck quality of components, stricter criteria\n", + "final_frate = params_movie['final_frate']\n", + "# threshold on space consistency\n", + "r_values_min = params_movie['r_values_min_full']\n", + "fitness_min = params_movie['fitness_min_full'] # threshold on time variability\n", + "# threshold on time variability (if nonsparse activity)\n", + "fitness_delta_min = params_movie['fitness_delta_min_full']\n", + "Npeaks = params_movie['Npeaks']\n", + "traces = C + YrA\n", + "idx_components, idx_components_bad, fitness_raw, fitness_delta, r_values = estimate_components_quality(\n", + " traces, Y, A, C, b, f, final_frate=final_frate, Npeaks=Npeaks, r_values_min=r_values_min, fitness_min=fitness_min,\n", + " fitness_delta_min=fitness_delta_min, return_all=True)\n", + "print(' ***** ')\n", + "print((len(traces)))\n", + "print((len(idx_components)))\n", + "# %% save results\n", + "np.savez(os.path.join(os.path.split(fname_new)[0], os.path.split(fname_new)[1][:-4] + 'results_analysis.npz'), Cn=Cn, fname_new=fname_new,\n", + " A=A,\n", + " C=C, b=b, f=f, YrA=YrA, sn=sn, d1=d1, d2=d2, idx_components=idx_components,\n", + " idx_components_bad=idx_components_bad,\n", + " fitness_raw=fitness_raw, fitness_delta=fitness_delta, r_values=r_values)\n", + "# we save it\n", + "# %%\n", + "# TODO: show screenshot 14\n", + "pl.subplot(1, 2, 1)\n", + "crd = plot_contours(A.tocsc()[:, idx_components],\n", + " Cn, thr=params_display['thr_plot'])\n", + "pl.subplot(1, 2, 2)\n", + "crd = plot_contours(A.tocsc()[:, idx_components_bad],\n", + " Cn, thr=params_display['thr_plot'])\n", + "# %%\n", + "# TODO: needinfo\n", + "view_patches_bar(Yr, scipy.sparse.coo_matrix(A.tocsc()[:, idx_components]), C[idx_components, :], b, f, dims[0], dims[1],\n", + " YrA=YrA[idx_components, :], img=Cn)\n", + "# %%\n", + "view_patches_bar(Yr, scipy.sparse.coo_matrix(A.tocsc()[:, idx_components_bad]), C[idx_components_bad, :], b, f, dims[0],\n", + " dims[1], YrA=YrA[idx_components_bad, :], img=Cn)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load Data\n", + "params_display = {\n", + " 'downsample_ratio': .2,\n", + " 'thr_plot': 0.8\n", + "}\n", + "try:\n", + " fname_new = fname_new[()]\n", + "except:\n", + " pass\n", + "#analysis_file = '/mnt/ceph/neuro/jeremie_analysis/neurofinder.03.00.test/Yr_d1_498_d2_467_d3_1_order_C_frames_2250_._results_analysis.npz'\n", + "with np.load(os.path.join(os.path.split(fname_new)[0], os.path.split(fname_new)[1][:-4] + 'results_analysis.npz')) as ld:\n", + " print(ld.keys())\n", + " locals().update(ld)\n", + " dims_off = d1, d2\n", + " A = scipy.sparse.coo_matrix(A[()])\n", + " dims = (d1, d2)\n", + " gSig = params_movie['gSig']\n", + " fname_new = fname_new[()]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from caiman.components_evaluation import evaluate_components_CNN\n", + "predictions, final_crops = evaluate_components_CNN(\n", + " A, dims, gSig, model_name='model/cnn_model')\n", + "#%%\n", + "cm.movie(final_crops).play(gain=3, magnification=6, fr=5)\n", + "#%%\n", + "cm.movie(np.squeeze(final_crops[np.where(predictions[:, 1] >= 0.5)[0]])).play(\n", + " gain=2., magnification=5, fr=5)\n", + "#%%\n", + "cm.movie(np.squeeze(final_crops[np.where(predictions[:, 0] >= 0.5)[0]])).play(\n", + " gain=2., magnification=5, fr=5)\n", + "#%%\n", + "thresh = .5\n", + "idx_components_cnn = np.where(predictions[:, 1] >= thresh)[0]\n", + "idx_components_bad_cnn = np.where(predictions[:, 0] > (1 - thresh))[0]\n", + "\n", + "print(' ***** ')\n", + "print((len(final_crops)))\n", + "print((len(idx_components_cnn)))\n", + "# print((len(idx_blobs)))\n", + "#%%\n", + "idx_components_r = np.where((r_values >= .5))[0]\n", + "idx_components_raw = np.where(fitness_raw < -5)[0]\n", + "idx_components_delta = np.where(fitness_delta < -5)[0]\n", + "#idx_and_condition_1 = np.where((r_values >= .65) & ((fitness_raw < -20) | (fitness_delta < -20)) )[0]\n", + "\n", + "idx_components = np.union1d(idx_components_r, idx_components_raw)\n", + "idx_components = np.union1d(idx_components, idx_components_delta)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "idx_components_bad = np.setdiff1d(list(range(len(r_values))), idx_components)\n", + "\n", + "print(' ***** ')\n", + "print((len(r_values)))\n", + "print((len(idx_components)))\n", + "#%%\n", + "pl.subplot(1, 2, 1)\n", + "crd = plot_contours(A.tocsc()[:, idx_components],\n", + " Cn, thr=params_display['thr_plot'], vmax=0.35)\n", + "pl.subplot(1, 2, 2)\n", + "crd = plot_contours(A.tocsc()[:, idx_components_bad],\n", + " Cn, thr=params_display['thr_plot'], vmax=0.35)\n", + "#%%\n", + "c, dview, n_processes = cm.cluster.setup_cluster(\n", + " backend='local', n_processes=None, single_thread=False)\n", + "\n", + "#%%\n", + "gt_file = os.path.join(os.path.split(fname_new)[0], os.path.split(\n", + " fname_new)[1][:-4] + 'match_masks.npz')\n", + "with np.load(gt_file) as ld:\n", + " print(ld.keys())\n", + " locals().update(ld)\n", + " A_gt = scipy.sparse.coo_matrix(A_gt[()])\n", + " dims = (d1, d2)\n", + "#%%\n", + "view_patches_bar(Yr, scipy.sparse.coo_matrix(A_gt.toarray()[\n", + " :, idx_components_gt]), C_gt[idx_components_gt], b, f, dims[0], dims[1], YrA=YrA_gt[idx_components_gt], img=Cn)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import normalize\n", + "\n", + "dist_A = (normalize(A_gt.tocsc()[:, idx_components_gt], axis=0).T.dot(\n", + " normalize(A.tocsc()[:, :], axis=0))).toarray()\n", + "dist_C = normalize(C_gt[idx_components_gt], axis=1).dot(\n", + " normalize(C[:], axis=1).T)\n", + "dist_A = dist_A * (dist_A > 0)\n", + "\n", + "pl.figure(figsize=(30, 20))\n", + "tp_gt, tp_comp, fn_gt, fp_comp, performance_cons_off = cm.base.rois.nf_match_neurons_in_binary_masks(A_gt.toarray()[:, idx_components_gt].reshape([dims[0], dims[1], -1], order='F').transpose([2, 0, 1]),\n", + " A.toarray()[:, :].reshape([dims[0], dims[1], -1], order='F').transpose([2, 0, 1]), thresh_cost=.7, min_dist=10,\n", + " print_assignment=False, plot_results=True, Cn=Cn, labels=['GT', 'Offline'], D=[1 - dist_A * (dist_C > .8)])\n", + "pl.rcParams['pdf.fonttype'] = 42\n", + "font = {'family': 'Myriad Pro',\n", + " 'weight': 'regular',\n", + " 'size': 20}\n", + "pl.rc('font', **font)\n", + "#%%\n", + "# TODO: needinfo\n", + "idx_final = tp_comp[np.where(dist_A[tp_gt, tp_comp] > 0.7)[0]]\n", + "view_patches_bar(Yr, scipy.sparse.coo_matrix(A.toarray()[\n", + " :, idx_final]), C[idx_final], b, f, dims[0], dims[1], YrA=YrA[idx_final], img=Cn)\n", + "#%%\n", + "view_patches_bar(Yr, scipy.sparse.coo_matrix(A.toarray()[\n", + " :, fp_comp]), C[fp_comp], b, f, dims[0], dims[1], YrA=YrA[fp_comp], img=Cn)\n", + "#%%\n", + "view_patches_bar(Yr, scipy.sparse.coo_matrix(A_gt.toarray()[\n", + " :, fn_gt]), C_gt[fn_gt], b_gt, f_gt, dims[0], dims[1], YrA=YrA_gt[fn_gt], img=Cn)\n", + "#%%\n", + "pl.hist(r_values[tp_comp], 30)\n", + "#%%\n", + "np.savez(os.path.join(os.path.split(fname_new)[0], os.path.split(fname_new)[1][:-4] + '_training_set.npz'), fname_new=fname_new,\n", + " A_seeded=A_gt.tocsc()[\n", + " :, idx_components_gt], C_seeded=C_gt[idx_components_gt], YrA_seeded=YrA_gt[idx_components_gt],\n", + " A_matched=A.tocsc()[\n", + " :, idx_final], C_matched=C[idx_final], YrA_matched=YrA[idx_final],\n", + " A_unmatched=A_gt.tocsc()[\n", + " :, fn_gt], C_unmatched=C_gt[fn_gt], YrA_unmatched=YrA_gt[fn_gt],\n", + " A_negative=A.tocsc()[\n", + " :, fp_comp], C_negative=C[fp_comp], YrA_negative=YrA[fp_comp],\n", + " r_values=r_values, fitness_delta=fitness_delta, fitness_raw=fitness_raw, Cn=Cn, dims=dims\n", + ")\n", + "#%%\n", + "with np.load(os.path.join(os.path.split(fname_new)[0], os.path.split(fname_new)[1][:-4] + '_training_set.npz')) as ld:\n", + " print(ld.keys())\n", + " locals().update(ld)\n", + " fname_new = fname_new[()]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "thr = 0.98\n", + "# TODO: show screenshot 14\n", + "pl.subplot(1, 3, 1)\n", + "crd = plot_contours(A_matched[()], Cn, thr=thr)\n", + "pl.subplot(1, 3, 2)\n", + "crd = plot_contours(A_unmatched[()], Cn, thr=thr)\n", + "pl.subplot(1, 3, 3)\n", + "crd = plot_contours(A_negative[()], Cn, thr=thr)\n", + "#%%\n", + "pl.subplot(1, 3, 1)\n", + "crd = pl.imshow(A_matched[()].sum(1).reshape(\n", + " dims, order='F'), vmax=A_matched[()].max() * .2)\n", + "pl.subplot(1, 3, 2)\n", + "crd = pl.imshow(A_unmatched[()].sum(1).reshape(\n", + " dims, order='F'), vmax=A_unmatched[()].max() * .2)\n", + "pl.subplot(1, 3, 3)\n", + "crd = pl.imshow(A_negative[()].sum(1).reshape(\n", + " dims, order='F'), vmax=A_negative[()].max() * .2)\n", + "#%%\n", + "masks_sue = scipy.io.loadmat('/mnt/xfs1/home/agiovann/Downloads/yuste_sue_masks.mat')\n", + "\n", + "#%%\n", + "with h5py.File('/mnt/xfs1/home/agiovann/Downloads/yuste_1.protoroi.mat')as f:\n", + " print(f.keys())\n", + " print(list(f['repository']))\n", + " proto = f['prototypes']\n", + " print(list(proto['params']))\n", + " print(proto.keys())\n", + " spatial = proto['spatial']\n", + " print(spatial.keys())\n", + " locals().update((dict(spatial.attrs.iteritems())))\n", + " locals().update({k: np.array(l) for k, l in spatial.iteritems()})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "caiman_pytorch", + "language": "python", + "name": "caiman_pytorch" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/caiman/train/prepare_training_set.ipynb b/caiman/train/prepare_training_set.ipynb new file mode 100644 index 000000000..622720957 --- /dev/null +++ b/caiman/train/prepare_training_set.ipynb @@ -0,0 +1,318 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import cv2\n", + "import numpy as np\n", + "import os\n", + "\n", + "import caiman as cm\n", + "from caiman.utils.utils import download_demo\n", + "from caiman.base.rois import extract_binary_masks_blob\n", + "from caiman.utils.visualization import plot_contours, view_patches_bar\n", + "from caiman.source_extraction.cnmf import cnmf as cnmf\n", + "from caiman.motion_correction import MotionCorrect, tile_and_correct, motion_correction_piecewise \n", + "from caiman.components_evaluation import estimate_components_quality, evaluate_components\n", + "from caiman.tests.comparison import comparison\n", + "\n", + "from caiman.base.rois import com\n", + "from sklearn.preprocessing import normalize" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "inputs = [{'fname': '/mnt/ceph/data/neuro/caiman/labeling/neurofinder.03.00.test/images/final_map/Yr_d1_498_d2_467_d3_1_order_C_frames_2250_.mmap', 'gSig': [8, 8]},\n", + " {'fname': '/mnt/ceph/data/neuro/caiman/labeling/neurofinder.04.00.test/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_3000_.mmap',\n", + " 'gSig': [5, 5]},\n", + " {'fname': '/mnt/ceph/data/neuro/caiman/labeling/neurofinder.02.00/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_8000_.mmap',\n", + " 'gSig': [5, 5]},\n", + " {'fname': '/mnt/ceph/data/neuro/caiman/labeling/yuste.Single_150u/images/final_map/Yr_d1_200_d2_256_d3_1_order_C_frames_3000_.mmap',\n", + " 'gSig': [5, 5]},\n", + " {'fname': '/mnt/ceph/data/neuro/caiman/labeling/neurofinder.00.00/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_2936_.mmap',\n", + " 'gSig': [6, 6]},\n", + " {'fname': '/mnt/ceph/data/neuro/caiman/labeling/neurofinder.01.01/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_1825_.mmap',\n", + " 'gSig': [6, 6]},\n", + " {'fname': '/mnt/ceph/data/neuro/caiman/labeling/k53_20160530/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_116043_.mmap',\n", + " 'gSig': [6, 6]},\n", + " {'fname': '/mnt/ceph/data/neuro/caiman/labeling/J115_2015-12-09_L01_ELS/images/final_map/Yr_d1_463_d2_472_d3_1_order_C_frames_90000_.mmap',\n", + " 'gSig': [7, 7]},\n", + " {'fname': '/mnt/ceph/data/neuro/caiman/labeling/J123_2015-11-20_L01_0/images/final_map/Yr_d1_458_d2_477_d3_1_order_C_frames_41000_.mmap',\n", + " 'gSig': [12, 12]},\n", + " {'fname': '/mnt/ceph/data/neuro/caiman/labeling/Jan-AMG_exp3_001/images/final_map/Yr_d1_512_d2_512_d3_1_order_C_frames_115897_.mmap',\n", + " 'gSig': [7, 7]} ]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for dc in inputs[:]:\n", + " fname = dc['fname']\n", + " print(fname)\n", + " gSig = dc['gSig']\n", + " gt_file = os.path.join(os.path.split(fname)[0], os.path.split(fname)[\n", + " 1][:-4] + 'match_masks.npz')\n", + " # LOAD DATA\n", + " #analysis_file = '/mnt/ceph/neuro/jeremie_analysis/neurofinder.03.00.test/Yr_d1_498_d2_467_d3_1_order_C_frames_2250_._results_analysis.npz'\n", + " with np.load(os.path.join(os.path.split(fname)[0], os.path.split(fname)[1][:-4] + 'results_analysis.npz'), encoding='latin1') as ld:\n", + " print(ld.keys())\n", + " locals().update(ld)\n", + " dims_off = d1, d2\n", + " A = scipy.sparse.coo_matrix(A[()])\n", + " dims = (d1, d2)\n", + "\n", + " gt_file = os.path.join(os.path.split(fname)[0], os.path.split(fname)[\n", + " 1][:-4] + 'match_masks.npz')\n", + " with np.load(gt_file, encoding='latin1') as ld:\n", + " print(ld.keys())\n", + " locals().update(ld)\n", + " A_gt = scipy.sparse.coo_matrix(A_gt[()])\n", + " dims = (d1, d2)\n", + "\n", + " pl.figure()\n", + " dist_A = (normalize(A_gt.tocsc()[:, idx_components_gt], axis=0).T.dot(\n", + " normalize(A.tocsc()[:, :], axis=0))).toarray()\n", + " dist_C = normalize(C_gt[idx_components_gt], axis=1).dot(\n", + " normalize(C[:], axis=1).T)\n", + " dist_A = dist_A * (dist_A > 0)\n", + "\n", + " pl.figure(figsize=(30, 20))\n", + " tp_gt, tp_comp, fn_gt, fp_comp, performance_cons_off = cm.base.rois.nf_match_neurons_in_binary_masks(A_gt.toarray()[:, idx_components_gt].reshape([dims[0], dims[1], -1], order='F').transpose([2, 0, 1]),\n", + " A.toarray()[:, :].reshape([dims[0], dims[1], -1], order='F').transpose([2, 0, 1]), thresh_cost=.7, min_dist=10,\n", + " print_assignment=False, plot_results=False, Cn=Cn, labels=['GT', 'Offline'], D=[1 - dist_A * (dist_C > .8)])\n", + " pl.rcParams['pdf.fonttype'] = 42\n", + " font = {'family': 'Myriad Pro',\n", + " 'weight': 'regular',\n", + " 'size': 20}\n", + " pl.rc('font', **font)\n", + " idx_final = tp_comp[np.where(dist_A[tp_gt, tp_comp] > 0.7)[0]]\n", + " np.savez(os.path.join(os.path.split(fname)[0], os.path.split(fname)[1][:-4] + '_training_set_minions.npz'), fname_new=fname,\n", + " A_seeded=A_gt.tocsc()[\n", + " :, idx_components_gt], C_seeded=C_gt[idx_components_gt], YrA_seeded=YrA_gt[idx_components_gt],\n", + " A_matched=A.tocsc()[\n", + " :, idx_final], C_matched=C[idx_final], YrA_matched=YrA[idx_final],\n", + " A_unmatched=A_gt.tocsc()[\n", + " :, fn_gt], C_unmatched=C_gt[fn_gt], YrA_unmatched=YrA_gt[fn_gt],\n", + " A_negative=A.tocsc()[\n", + " :, fp_comp], C_negative=C[fp_comp], YrA_negative=YrA[fp_comp],\n", + " r_values=r_values, fitness_delta=fitness_delta, fitness_raw=fitness_raw, Cn=Cn, dims=dims, gSig=gSig)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "training_files = [os.path.join(dp, f) for dp, dn, filenames in os.walk('/mnt/ceph/data/neuro/caiman/') for f in filenames if 'set_minions.npz' in f]\n", + "print(training_files)\n", + "crop_size = 50\n", + "half_crop = crop_size // 2\n", + "from sklearn.preprocessing import normalize\n", + "id_file = 0\n", + "reference_gSig_neuron = 5\n", + "#folder = '/mnt/xfs1/home/agiovann/SOFTWARE/CaImAn/images_examples'\n", + "all_masks_gt = []\n", + "labels_gt = []\n", + "traces_gt = []\n", + "for fl in training_files:\n", + "\n", + " with np.load(fl) as ld:\n", + " print(ld.keys())\n", + " locals().update(ld)\n", + " zoom = reference_gSig_neuron / gSig[0]\n", + " fname_new = fname_new[()]\n", + " name_base = os.path.split(fname_new)[-1][:-5]\n", + "# pl.figure()\n", + "# pl.subplot(1, 3, 1)\n", + "# pl.imshow(A_matched[()].sum(1).reshape(dims,order='F'), vmax = A_matched[()].max()*.2)\n", + "# pl.subplot(1, 3, 2)\n", + "# pl.imshow(A_unmatched[()].sum(1).reshape(dims,order='F'), vmax = A_unmatched[()].max()*.2)\n", + "# pl.subplot(1, 3, 3)\n", + "# pl.imshow(A_negative[()].sum(1).reshape(dims,order='F'), vmax = A_negative[()].max()*.2)\n", + "\n", + "# coms = com(scipy.sparse.coo_matrix(A_matched[()]), dims[0], dims[1])\n", + " if 'sparse' in str(type(A_matched[()])):\n", + " A_matched = A_matched[()].toarray()\n", + " A_unmatched = A_unmatched[()].toarray()\n", + " A_negative = A_negative[()].toarray()\n", + "\n", + " A_matched = normalize(A_matched, axis=0)\n", + " A_unmatched = normalize(A_unmatched, axis=0)\n", + " A_negative = normalize(A_negative, axis=0)\n", + "\n", + " masks_gt = np.concatenate([A_matched.reshape(tuple(dims) + (-1,), order='F').transpose([2, 0, 1]), A_unmatched.reshape(tuple(\n", + " dims) + (-1,), order='F').transpose([2, 0, 1]), A_negative.reshape(tuple(dims) + (-1,), order='F').transpose([2, 0, 1])], axis=0)\n", + " labels_gt = np.concatenate([labels_gt, np.ones(\n", + " A_matched.shape[-1]), np.ones(A_unmatched.shape[-1]), np.zeros(A_negative.shape[-1])])\n", + " traces_gt = traces_gt + list(YrA_matched + C_matched) + list(\n", + " C_unmatched + YrA_unmatched) + list(C_negative + YrA_negative)\n", + "# r_vals_gt = np.concatenate([r_vals_gt,])\n", + "# raw_fitness_gt = np.concatenate([raw_fitness_gt,])\n", + "# delta_fitness_gt = np.concatenate([delta_fitness_gt,])\n", + "\n", + " coms = [scipy.ndimage.center_of_mass(mm) for mm in masks_gt]\n", + " coms = np.maximum(coms, half_crop)\n", + " coms = np.array([np.minimum(cm, dims - half_crop) for cm in coms])\n", + "\n", + " count_neuro = 0\n", + " for com, img in zip(coms, masks_gt):\n", + " # if zoom and zoom[counter]==1:\n", + " # if zoom>1:\n", + " #\n", + " # elif zoom<1:\n", + " com = com.astype(int)\n", + " # Crop from x, y, w, h -> 100, 200, 300, 400\n", + " crop_img = img[com[0] - half_crop:com[0] + half_crop,\n", + " com[1] - half_crop:com[1] + half_crop].copy()\n", + "# crop_img = cv2.resize(crop_img,dsize=None,fx=zoom[id_file],fy=zoom[id_file])\n", + "# newshape = np.array(crop_img.shape)//2\n", + "# crop_img = crop_img[newshape[0]-half_crop:newshape[0]+half_crop,newshape[0]-half_crop:newshape[0]+half_crop]\n", + "\n", + " borders = np.array(crop_img.shape)\n", + " img_tmp = np.zeros_like(crop_img)\n", + " crop_img = cv2.resize(crop_img, dsize=None, fx=zoom, fy=zoom)\n", + "\n", + " deltaw = (half_crop * 2 - crop_img.shape[0]) // 2\n", + " deltah = (half_crop * 2 - crop_img.shape[1]) // 2\n", + " img_tmp[deltaw:deltaw + crop_img.shape[0],\n", + " deltah:deltah + crop_img.shape[1]] = crop_img\n", + " crop_img = img_tmp\n", + " crop_img = crop_img / np.linalg.norm(crop_img)\n", + " all_masks_gt.append(crop_img[np.newaxis, :, :, np.newaxis])\n", + " augment_test = False\n", + " cv2.imshow(\"cropped\", cv2.resize(crop_img, (480, 480)) * 10)\n", + " cv2.waitKey(1)\n", + " if augment_test:\n", + " datagen = ImageDataGenerator(\n", + " # featurewise_center=True,\n", + " # featurewise_std_normalization=True,\n", + " shear_range=0.3,\n", + " rotation_range=360,\n", + " width_shift_range=0.2,\n", + " height_shift_range=0.2,\n", + " zoom_range=[.5, 2],\n", + " horizontal_flip=True,\n", + " vertical_flip=True,\n", + " random_mult_range=[.25, 2]\n", + " )\n", + "\n", + " count_neuro += 1\n", + " for x_batch, y_batch in datagen.flow(np.repeat(crop_img[np.newaxis, :, :], 10, 0)[:, :, :, None], [1, 1, 1, 1, 1, 1, 1, 1, 0, 0], batch_size=10):\n", + " print(y_batch)\n", + " for b_img in x_batch:\n", + " cv2.imshow(\"cropped\", cv2.resize(\n", + " b_img.squeeze(), (480, 480)) * 10)\n", + " cv2.waitKey(300)\n", + " count_neuro += 1\n", + " print(count_neuro)\n", + " break\n", + "\n", + "\n", + "# crop_img = cv2.resize(crop_img,dsize=None,fx=2,fy=2)\n", + "# newshape = np.array(crop_img.shape)//2\n", + "# crop_img = crop_img[newshape[0]-half_crop:newshape[0]+half_crop,newshape[0]-half_crop:newshape[0]+half_crop]\n", + " # NOTE: its img[y: y + h, x: x + w] and *not* img[x: x + w, y: y + h]\n", + "\n", + " id_file += 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_masks_gt = np.vstack(all_masks_gt)\n", + "#%%\n", + "cm.movie(np.squeeze(all_masks_gt[labels_gt == 0])).play(\n", + " gain=3., magnification=10)\n", + "#%%\n", + "np.savez('ground_truth_components_minions.npz',\n", + " all_masks_gt=all_masks_gt, labels_gt=labels_gt, traces_gt=traces_gt)\n", + "#%%\n", + "import itertools\n", + "\n", + "\n", + "def grouper(n, iterable, fillvalue=None):\n", + " \"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx\"\n", + " args = [iter(iterable)] * n\n", + " return itertools.zip_longest(*args, fillvalue=fillvalue)\n", + "\n", + "\n", + "#%% curate once more. Remove wrong negatives\n", + "negatives = np.where(labels_gt == 1)[0]\n", + "wrong = []\n", + "count = 0\n", + "for a in grouper(50, negatives):\n", + " print(np.max(a))\n", + " print(count)\n", + " a = np.array(a)[np.array(a) > 0].astype(int)\n", + " count += 1\n", + " img_mont_ = all_masks_gt[np.array(a)].squeeze()\n", + " shps_img = img_mont_.shape\n", + " img_mont = montage2d(img_mont_)\n", + " shps_img_mont = np.array(img_mont.shape) // 50\n", + " pl.figure(figsize=(20, 30))\n", + " pl.imshow(img_mont)\n", + " inp = pl.ginput(n=0, timeout=-100000)\n", + " imgs_to_exclude = []\n", + " inp = np.ceil(np.array(inp) / 50).astype(int) - 1\n", + " if len(inp) > 0:\n", + "\n", + " imgs_to_exclude = img_mont_[np.ravel_multi_index(\n", + " [inp[:, 1], inp[:, 0]], shps_img_mont)]\n", + "# pl.imshow(montage2d(imgs_to_exclude))\n", + " wrong.append(np.array(a)[np.ravel_multi_index(\n", + " [inp[:, 1], inp[:, 0]], shps_img_mont)])\n", + " np.save('temp_label_pos_minions.npy', wrong)\n", + " pl.close()\n", + "#%%\n", + "pl.imshow(montage2d(all_masks_gt[np.concatenate(wrong)].squeeze()))\n", + "#%%\n", + "lab_pos_wrong = np.load('temp_label_pos_minions.npy')\n", + "lab_neg_wrong = np.load('temp_label_neg_plus_minions.npy')\n", + "\n", + "labels_gt_cur = labels_gt.copy()\n", + "labels_gt_cur[np.concatenate(lab_pos_wrong)] = 0\n", + "labels_gt_cur[np.concatenate(lab_neg_wrong)] = 1\n", + "\n", + "np.savez('ground_truth_comoponents_curated_minions.npz',\n", + " all_masks_gt=all_masks_gt, labels_gt_cur=labels_gt_cur)\n", + "#%%\n", + "pl.imshow(montage2d(all_masks_gt[labels_gt_cur == 0].squeeze()))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "caiman_pytorch", + "language": "python", + "name": "caiman_pytorch" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/caiman/train/train_cnn_model_keras.ipynb b/caiman/train/train_cnn_model_keras.ipynb new file mode 100644 index 000000000..e908a26c2 --- /dev/null +++ b/caiman/train/train_cnn_model_keras.ipynb @@ -0,0 +1,500 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Training the CNN Model for the 2D Spatial Components (Keras Version)\n", + "\n", + "This notebook will help to demonstrate how to train the CNN Model used in CaImAn to evaluate the shape of (2p) spatial components using the Keras API.\n", + "\n", + "The basic function for this is caiman.train.train_cnn_model_keras.keras_cnn_model(). It takes it the number of classes to build of a CNN model (based on a tutorial on the CIFAR dataset). The other functions, caiman.train.train_cnn_model.data_generation(), takes as input the model, the training and validation datasets, and the parameters for the model to train the model. caiman.train.train_cnn_model_keras.save_model() and caiman.train.train_cnn_model_keras.load_model() save and retrieve the model and weights of the model. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-08-06 20:34:40.739703: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", + "2024-08-06 20:34:40.770178: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "To enable the following instructions: SSE4.1 SSE4.2 AVX AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import os\n", + "import keras \n", + "from keras.layers import Input, Conv2D, Activation, MaxPooling2D, Dropout, Flatten, Dense \n", + "from keras.models import save_model, load_model \n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.utils import class_weight as cw\n", + "\n", + "import caiman as cm\n", + "from caiman.paths import caiman_datadir\n", + "from caiman.train.train_cnn_model_keras import cnn_model_keras, save_model_keras, load_model_keras\n", + "\n", + "os.environ[\"KERAS_BACKEND\"] = \"torch\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initalizing the Parameters for the Model " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 128\n", + "num_classes = 2\n", + "epochs = 1000 #Can be upgraded to 5000\n", + "test_fraction = 0.25\n", + "augmentation = False \n", + "img_rows, img_cols = 50, 50 #input image dimensions\n", + "\n", + "#Note: Augmentation is currently not working " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Loading the Dataset of the Model " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "with np.load('/mnt/ceph/data/neuro/caiman/data_minions/ground_truth_components_curated_minions.npz') as ld:\n", + " all_masks_gt = ld['all_masks_gt']\n", + " labels_gt = ld['labels_gt_cur']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Constructing the Training and Validation Set for the Model " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x_train shape: (6771, 50, 50, 1)\n", + "6771 train samples\n", + "2257 test samples\n" + ] + } + ], + "source": [ + "x_train, x_test, y_train, y_test = train_test_split(\n", + "all_masks_gt, labels_gt, test_size=test_fraction)\n", + "\n", + "# class_weight = cw.compute_class_weight(class_weight='balanced', classes=np.unique(y_train), y=y_train)\n", + "\n", + "if keras.config.image_data_format() == 'channels_first':\n", + " x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols)\n", + " x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols)\n", + " input_shape = (1, img_rows, img_cols)\n", + "else:\n", + " x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)\n", + " x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)\n", + " input_shape = (img_rows, img_cols, 1)\n", + " \n", + "x_train = x_train.astype('float32')\n", + "x_test = x_test.astype('float32')\n", + "print('x_train shape:', x_train.shape)\n", + "print(x_train.shape[0], 'train samples')\n", + "print(x_test.shape[0], 'test samples')\n", + "\n", + "# convert class vectors to binary class matrices\n", + "y_train = keras.utils.to_categorical(y_train, num_classes)\n", + "y_test = keras.utils.to_categorical(y_test, num_classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Build and Evaluate the Model " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 481ms/step - accuracy: 0.5579 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 2/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 460ms/step - accuracy: 0.5808 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 3/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 460ms/step - accuracy: 0.5753 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 4/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 467ms/step - accuracy: 0.5778 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 5/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m43s\u001b[0m 505ms/step - accuracy: 0.5852 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 6/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 468ms/step - accuracy: 0.5814 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 7/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 478ms/step - accuracy: 0.5762 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 8/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 470ms/step - accuracy: 0.5771 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 9/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 459ms/step - accuracy: 0.5719 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 10/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 463ms/step - accuracy: 0.5788 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 11/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m42s\u001b[0m 476ms/step - accuracy: 0.5736 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 12/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 466ms/step - accuracy: 0.5809 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 13/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 473ms/step - accuracy: 0.5676 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 14/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 465ms/step - accuracy: 0.5848 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 15/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 470ms/step - accuracy: 0.5714 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 16/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 467ms/step - accuracy: 0.5723 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 17/1000\n", + "\u001b[1m53/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 469ms/step - accuracy: 0.5959 - loss: nan - val_accuracy: 0.5950 - val_loss: nan\n", + "Epoch 18/1000\n", + "\u001b[1m42/53\u001b[0m \u001b[32m━━━━━━━━━━━━━━━\u001b[0m\u001b[37m━━━━━\u001b[0m \u001b[1m4s\u001b[0m 436ms/step - accuracy: 0.5689 - loss: nan" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[7], line 9\u001b[0m\n\u001b[1;32m 3\u001b[0m model\u001b[38;5;241m.\u001b[39mcompile(loss\u001b[38;5;241m=\u001b[39mkeras\u001b[38;5;241m.\u001b[39mlosses\u001b[38;5;241m.\u001b[39mcategorical_crossentropy,\n\u001b[1;32m 4\u001b[0m optimizer\u001b[38;5;241m=\u001b[39mkeras\u001b[38;5;241m.\u001b[39moptimizers\u001b[38;5;241m.\u001b[39mAdam(learning_rate\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0.01\u001b[39m), \n\u001b[1;32m 5\u001b[0m metrics\u001b[38;5;241m=\u001b[39m[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124maccuracy\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# cnn_model_cifar = data_generation(cnn_model_cifar, augmentation, x_train, x_test, y_train, y_test, batch_size, epochs, class_weight) \u001b[39;00m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;66;03m#Augmentation does not work!!!\u001b[39;00m\n\u001b[0;32m----> 9\u001b[0m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx_train\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_train\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbatch_size\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 11\u001b[0m \u001b[43m \u001b[49m\u001b[43mepochs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mepochs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 12\u001b[0m \u001b[43m \u001b[49m\u001b[43mverbose\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 13\u001b[0m \u001b[43m \u001b[49m\u001b[43mvalidation_data\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mx_test\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_test\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 15\u001b[0m score \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mevaluate(x_test, y_test, verbose\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 16\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mTest loss:\u001b[39m\u001b[38;5;124m'\u001b[39m, score[\u001b[38;5;241m0\u001b[39m])\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py:117\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 115\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 117\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 118\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 119\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/keras/src/backend/tensorflow/trainer.py:318\u001b[0m, in \u001b[0;36mTensorFlowTrainer.fit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq)\u001b[0m\n\u001b[1;32m 316\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m step, iterator \u001b[38;5;129;01min\u001b[39;00m epoch_iterator\u001b[38;5;241m.\u001b[39menumerate_epoch():\n\u001b[1;32m 317\u001b[0m callbacks\u001b[38;5;241m.\u001b[39mon_train_batch_begin(step)\n\u001b[0;32m--> 318\u001b[0m logs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_function\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 319\u001b[0m logs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_pythonify_logs(logs)\n\u001b[1;32m 320\u001b[0m callbacks\u001b[38;5;241m.\u001b[39mon_train_batch_end(step, logs)\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/tensorflow/python/util/traceback_utils.py:150\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 148\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 149\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 150\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 151\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 152\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py:832\u001b[0m, in \u001b[0;36mFunction.__call__\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 829\u001b[0m compiler \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mxla\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_jit_compile \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnonXla\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 831\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m OptionalXlaContext(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_jit_compile):\n\u001b[0;32m--> 832\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 834\u001b[0m new_tracing_count \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexperimental_get_tracing_count()\n\u001b[1;32m 835\u001b[0m without_tracing \u001b[38;5;241m=\u001b[39m (tracing_count \u001b[38;5;241m==\u001b[39m new_tracing_count)\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py:877\u001b[0m, in \u001b[0;36mFunction._call\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 874\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock\u001b[38;5;241m.\u001b[39mrelease()\n\u001b[1;32m 875\u001b[0m \u001b[38;5;66;03m# In this case we have not created variables on the first call. So we can\u001b[39;00m\n\u001b[1;32m 876\u001b[0m \u001b[38;5;66;03m# run the first trace but we should fail if variables are created.\u001b[39;00m\n\u001b[0;32m--> 877\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[43mtracing_compilation\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_function\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 878\u001b[0m \u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwds\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_variable_creation_config\u001b[49m\n\u001b[1;32m 879\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 880\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_created_variables:\n\u001b[1;32m 881\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCreating variables on a non-first call to a function\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 882\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m decorated with tf.function.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/tensorflow/python/eager/polymorphic_function/tracing_compilation.py:139\u001b[0m, in \u001b[0;36mcall_function\u001b[0;34m(args, kwargs, tracing_options)\u001b[0m\n\u001b[1;32m 137\u001b[0m bound_args \u001b[38;5;241m=\u001b[39m function\u001b[38;5;241m.\u001b[39mfunction_type\u001b[38;5;241m.\u001b[39mbind(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 138\u001b[0m flat_inputs \u001b[38;5;241m=\u001b[39m function\u001b[38;5;241m.\u001b[39mfunction_type\u001b[38;5;241m.\u001b[39munpack_inputs(bound_args)\n\u001b[0;32m--> 139\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunction\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_flat\u001b[49m\u001b[43m(\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# pylint: disable=protected-access\u001b[39;49;00m\n\u001b[1;32m 140\u001b[0m \u001b[43m \u001b[49m\u001b[43mflat_inputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcaptured_inputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfunction\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcaptured_inputs\u001b[49m\n\u001b[1;32m 141\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/tensorflow/python/eager/polymorphic_function/concrete_function.py:1323\u001b[0m, in \u001b[0;36mConcreteFunction._call_flat\u001b[0;34m(self, tensor_inputs, captured_inputs)\u001b[0m\n\u001b[1;32m 1319\u001b[0m possible_gradient_type \u001b[38;5;241m=\u001b[39m gradients_util\u001b[38;5;241m.\u001b[39mPossibleTapeGradientTypes(args)\n\u001b[1;32m 1320\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (possible_gradient_type \u001b[38;5;241m==\u001b[39m gradients_util\u001b[38;5;241m.\u001b[39mPOSSIBLE_GRADIENT_TYPES_NONE\n\u001b[1;32m 1321\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m executing_eagerly):\n\u001b[1;32m 1322\u001b[0m \u001b[38;5;66;03m# No tape is watching; skip to running the function.\u001b[39;00m\n\u001b[0;32m-> 1323\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_inference_function\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_preflattened\u001b[49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1324\u001b[0m forward_backward \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_select_forward_and_backward_functions(\n\u001b[1;32m 1325\u001b[0m args,\n\u001b[1;32m 1326\u001b[0m possible_gradient_type,\n\u001b[1;32m 1327\u001b[0m executing_eagerly)\n\u001b[1;32m 1328\u001b[0m forward_function, args_with_tangents \u001b[38;5;241m=\u001b[39m forward_backward\u001b[38;5;241m.\u001b[39mforward()\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/tensorflow/python/eager/polymorphic_function/atomic_function.py:216\u001b[0m, in \u001b[0;36mAtomicFunction.call_preflattened\u001b[0;34m(self, args)\u001b[0m\n\u001b[1;32m 214\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcall_preflattened\u001b[39m(\u001b[38;5;28mself\u001b[39m, args: Sequence[core\u001b[38;5;241m.\u001b[39mTensor]) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Any:\n\u001b[1;32m 215\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Calls with flattened tensor inputs and returns the structured output.\"\"\"\u001b[39;00m\n\u001b[0;32m--> 216\u001b[0m flat_outputs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_flat\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfunction_type\u001b[38;5;241m.\u001b[39mpack_output(flat_outputs)\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/tensorflow/python/eager/polymorphic_function/atomic_function.py:251\u001b[0m, in \u001b[0;36mAtomicFunction.call_flat\u001b[0;34m(self, *args)\u001b[0m\n\u001b[1;32m 249\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m record\u001b[38;5;241m.\u001b[39mstop_recording():\n\u001b[1;32m 250\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_bound_context\u001b[38;5;241m.\u001b[39mexecuting_eagerly():\n\u001b[0;32m--> 251\u001b[0m outputs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_bound_context\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_function\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 252\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 253\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 254\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfunction_type\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mflat_outputs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 255\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 256\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 257\u001b[0m outputs \u001b[38;5;241m=\u001b[39m make_call_op_in_graph(\n\u001b[1;32m 258\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 259\u001b[0m \u001b[38;5;28mlist\u001b[39m(args),\n\u001b[1;32m 260\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_bound_context\u001b[38;5;241m.\u001b[39mfunction_call_options\u001b[38;5;241m.\u001b[39mas_attrs(),\n\u001b[1;32m 261\u001b[0m )\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/tensorflow/python/eager/context.py:1486\u001b[0m, in \u001b[0;36mContext.call_function\u001b[0;34m(self, name, tensor_inputs, num_outputs)\u001b[0m\n\u001b[1;32m 1484\u001b[0m cancellation_context \u001b[38;5;241m=\u001b[39m cancellation\u001b[38;5;241m.\u001b[39mcontext()\n\u001b[1;32m 1485\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cancellation_context \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1486\u001b[0m outputs \u001b[38;5;241m=\u001b[39m \u001b[43mexecute\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mexecute\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1487\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mutf-8\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1488\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_outputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1489\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtensor_inputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1490\u001b[0m \u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1491\u001b[0m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1492\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1493\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1494\u001b[0m outputs \u001b[38;5;241m=\u001b[39m execute\u001b[38;5;241m.\u001b[39mexecute_with_cancellation(\n\u001b[1;32m 1495\u001b[0m name\u001b[38;5;241m.\u001b[39mdecode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf-8\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[1;32m 1496\u001b[0m num_outputs\u001b[38;5;241m=\u001b[39mnum_outputs,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1500\u001b[0m cancellation_manager\u001b[38;5;241m=\u001b[39mcancellation_context,\n\u001b[1;32m 1501\u001b[0m )\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/tensorflow/python/eager/execute.py:53\u001b[0m, in \u001b[0;36mquick_execute\u001b[0;34m(op_name, num_outputs, inputs, attrs, ctx, name)\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 52\u001b[0m ctx\u001b[38;5;241m.\u001b[39mensure_initialized()\n\u001b[0;32m---> 53\u001b[0m tensors \u001b[38;5;241m=\u001b[39m \u001b[43mpywrap_tfe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mTFE_Py_Execute\u001b[49m\u001b[43m(\u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdevice_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mop_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 54\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 55\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m core\u001b[38;5;241m.\u001b[39m_NotOkStatusException \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 56\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "model = cnn_model_keras(input_shape, num_classes)\n", + "\n", + "model.compile(loss=keras.losses.categorical_crossentropy,\n", + " optimizer=keras.optimizers.Adam(learning_rate=0.01), \n", + " metrics=['accuracy'])\n", + " \n", + "# cnn_model_cifar = data_generation(cnn_model_cifar, augmentation, x_train, x_test, y_train, y_test, batch_size, epochs, class_weight) \n", + "#Augmentation does not work!!!\n", + "model.fit(x_train, y_train,\n", + " batch_size=batch_size,\n", + " epochs=epochs,\n", + " verbose=1,\n", + " validation_data=(x_test, y_test))\n", + "\n", + "score = model.evaluate(x_test, y_test, verbose=0)\n", + "print('Test loss:', score[0])\n", + "print('Test accuracy:', score[1])\n", + "# Need to fix " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Save the Model and its weights" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saved trained model at /mnt/home/mpaez/caiman_data/model/cnn_model_test.keras \n" + ] + } + ], + "source": [ + "save_model_path = save_model_keras(model, name='cnn_model_test')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualize Results" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m283/283\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 25ms/step\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/numpy/lib/nanfunctions.py:1562: RuntimeWarning: Mean of empty slice\n", + " return np.nanmean(a, axis, out=out, keepdims=keepdims)\n" + ] + } + ], + "source": [ + "predictions = model.predict(all_masks_gt, batch_size=32, verbose=1)\n", + "cm.movie(np.squeeze(all_masks_gt[np.where(predictions[:, 0] >= 0.5)[0]])).play(\n", + " gain=3., magnification=5, fr=10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Retrieve the Model and its weights" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Load trained model at /mnt/home/mpaez/caiman_data/model/cnn_model_test.keras \n" + ] + }, + { + "data": { + "text/html": [ + "
Model: \"sequential_1\"\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1mModel: \"sequential_1\"\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
+       "┃ Layer (type)                     Output Shape                  Param # ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
+       "│ conv2d_4 (Conv2D)               │ (None, 48, 48, 32)     │           320 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ conv2d_5 (Conv2D)               │ (None, 46, 46, 32)     │         9,248 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ max_pooling2d_2 (MaxPooling2D)  │ (None, 23, 23, 32)     │             0 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ dropout_3 (Dropout)             │ (None, 23, 23, 32)     │             0 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ conv2d_6 (Conv2D)               │ (None, 23, 23, 64)     │        18,496 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ conv2d_7 (Conv2D)               │ (None, 21, 21, 64)     │        36,928 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ max_pooling2d_3 (MaxPooling2D)  │ (None, 10, 10, 64)     │             0 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ dropout_4 (Dropout)             │ (None, 10, 10, 64)     │             0 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ flatten_1 (Flatten)             │ (None, 6400)           │             0 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ dense_2 (Dense)                 │ (None, 512)            │     3,277,312 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ dropout_5 (Dropout)             │ (None, 512)            │             0 │\n",
+       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
+       "│ dense_3 (Dense)                 │ (None, 2)              │         1,026 │\n",
+       "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", + "│ conv2d_4 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m48\u001b[0m, \u001b[38;5;34m48\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m320\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ conv2d_5 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m46\u001b[0m, \u001b[38;5;34m46\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m9,248\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ max_pooling2d_2 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m23\u001b[0m, \u001b[38;5;34m23\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dropout_3 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m23\u001b[0m, \u001b[38;5;34m23\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ conv2d_6 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m23\u001b[0m, \u001b[38;5;34m23\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m18,496\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ conv2d_7 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m21\u001b[0m, \u001b[38;5;34m21\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m36,928\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ max_pooling2d_3 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m, \u001b[38;5;34m10\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dropout_4 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m, \u001b[38;5;34m10\u001b[0m, \u001b[38;5;34m64\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ flatten_1 (\u001b[38;5;33mFlatten\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m6400\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m3,277,312\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dropout_5 (\u001b[38;5;33mDropout\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m512\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ dense_3 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m2\u001b[0m) │ \u001b[38;5;34m1,026\u001b[0m │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
 Total params: 10,029,992 (38.26 MB)\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m10,029,992\u001b[0m (38.26 MB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
 Trainable params: 3,343,330 (12.75 MB)\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m3,343,330\u001b[0m (12.75 MB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
 Non-trainable params: 0 (0.00 B)\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
 Optimizer params: 6,686,662 (25.51 MB)\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m Optimizer params: \u001b[0m\u001b[38;5;34m6,686,662\u001b[0m (25.51 MB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "loaded_model = load_model_keras(save_model_path)\n", + "loaded_model.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualize Results " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m283/283\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 25ms/step\n" + ] + } + ], + "source": [ + "predictions = loaded_model.predict(all_masks_gt, batch_size=32, verbose=1)\n", + "cm.movie(np.squeeze(all_masks_gt[np.where(predictions[:, 0] >= 0.5)[0]])).play(\n", + " gain=3., magnification=5, fr=10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "caiman_pytorch", + "language": "python", + "name": "caiman_pytorch" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/caiman/train/train_cnn_model_keras.py b/caiman/train/train_cnn_model_keras.py new file mode 100644 index 000000000..1d8167b32 --- /dev/null +++ b/caiman/train/train_cnn_model_keras.py @@ -0,0 +1,97 @@ +import numpy as np +import os +import keras +from keras.layers import Input, Conv2D, Activation, MaxPooling2D, Dropout, Flatten, Dense +from keras.models import save_model, load_model +from sklearn.model_selection import train_test_split +from sklearn.utils import class_weight as cw + +import caiman as cm +from caiman.paths import caiman_datadir +from caiman.utils.image_preprocessing_keras import ImageDataGenerator + +os.environ["KERAS_BACKEND"] = "torch" + +def cnn_model_keras(input_shape, num_classes): + sequential_model = keras.Sequential([ + Input(shape=input_shape, dtype="float32"), + Conv2D(filters=32, kernel_size=(3,3), strides=(1, 1), + activation="relu"), + Conv2D(filters=32, kernel_size=(3,3), strides=(1, 1), + activation="relu"), + MaxPooling2D(pool_size=(2, 2)), + Dropout(rate=0.25), + Conv2D(filters=64, kernel_size=(3,3), strides=(1, 1), + padding="same", activation="relu"), + Conv2D(filters=64, kernel_size=(3,3), strides=(1, 1), + activation="relu"), + MaxPooling2D(pool_size=(2, 2)), + Dropout(rate=0.25), + Flatten(), + Dense(units=512, activation="relu"), + Dropout(rate=0.5), + Dense(units=num_classes, activation="relu"), + ]) + return sequential_model + +def save_model_keras(model, name: str): + model_name = os.path.join(caiman_datadir(), 'model', name) + model_path = model_name + ".keras" + model.save(model_path) + print('Saved trained model at %s ' % model_path) + return model_path + +def load_model_keras(model_path: str): + loaded_model = load_model(model_path) + print('Load trained model at %s ' % model_path) + return loaded_model + +if __name__ == "__main__": + batch_size = 128 + num_classes = 2 + epochs = 5000 + test_fraction = 0.25 + augmentation = True + img_rows, img_cols = 50, 50 # input image dimensions + + with np.load('/mnt/ceph/data/neuro/caiman/data_minions/ground_truth_components_curated_minions.npz') as ld: + all_masks_gt = ld['all_masks_gt'] + labels_gt = ld['labels_gt_cur'] + + x_train, x_test, y_train, y_test = train_test_split( + all_masks_gt, labels_gt, test_size=test_fraction) + + class_weight = cw.compute_class_weight(class_weight='balanced', + classes=np.unique(y_train), y=y_train) + + if keras.config.image_data_format() == 'channels_first': + x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols) + x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols) + input_shape = (1, img_rows, img_cols) + else: + x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1) + x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1) + input_shape = (img_rows, img_cols, 1) + + x_train = x_train.astype('float32') + x_test = x_test.astype('float32') + print('x_train shape:', x_train.shape) + print(x_train.shape[0], 'train samples') + print(x_test.shape[0], 'test samples') + + # convert class vectors to binary class matrices + y_train = keras.utils.to_categorical(y_train, num_classes) + y_test = keras.utils.to_categorical(y_test, num_classes) + + cnn_model_cifar = keras_cnn_model_cifar(input_shape, num_classes) + cnn_model_cifar.summary() + + opt = keras.optimizers.RMSprop(learning_rate=0.0001, weight_decay=1e-6) + cnn_model_cifar.compile(loss=keras.losses.categorical_crossentropy, + optimizer=opt, metrics=['accuracy']) #don't need this + + #Augmentations + + score = cnn_model_cifar.evaluate(x_test, y_test, verbose=0) + print('Test loss:', score[0]) + print('Test accuracy:', score[1]) \ No newline at end of file diff --git a/caiman/train/train_cnn_model_pytorch.ipynb b/caiman/train/train_cnn_model_pytorch.ipynb new file mode 100644 index 000000000..00cf973e0 --- /dev/null +++ b/caiman/train/train_cnn_model_pytorch.ipynb @@ -0,0 +1,352 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Training the CNN Model for the 2D Spatial Components (Pytorch Version)\n", + "\n", + "This notebook will help to demonstrate how to train the CNN Model used in CaImAn to evaluate the shape of (2p) spatial components using the Torch API.\n", + "\n", + "The basic function for this is caiman.train.train_cnn_model_keras.cnn_model_pytorch(). It takes it the number of classes to build of a CNN model (based on a tutorial on the CIFAR dataset). The other functions, caiman.train.train_cnn_model.save_model_file() and caiman.train.train_cnn_model.load_model_file() save and retrieve the model and weights of the model. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-08-06 23:34:38.644002: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", + "2024-08-06 23:34:38.675416: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "To enable the following instructions: SSE4.1 SSE4.2 AVX AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "/mnt/home/mpaez/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/torch/cuda/__init__.py:619: UserWarning: Can't initialize NVML\n", + " warnings.warn(\"Can't initialize NVML\")\n" + ] + }, + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "import os\n", + "import keras \n", + "\n", + "import torch\n", + "from torch.optim import Adam\n", + "from torch.utils.data import Dataset, TensorDataset, DataLoader\n", + "import torchvision.transforms.v2 as transforms\n", + "\n", + "import caiman as cm\n", + "from caiman.paths import caiman_datadir\n", + "from caiman.train.train_cnn_model_pytorch import cnn_model_pytorch, get_batch_accuracy, load_model_pytorch, save_model_pytorch\n", + "from caiman.train.train_cnn_model_pytorch import train_test_split, train, validate \n", + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "torch.cuda.is_available()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initalizing the Parameters for the Model (based on MNIST dataset) " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 128\n", + "num_classes = 2\n", + "epochs = 100\n", + "test_fraction = 0.25\n", + "augmentation = True #Fix this \n", + "img_rows, img_cols = 50, 50 # input image dimensions\n", + "in_channels = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Loading the Dataset of the Model " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "with np.load('/mnt/ceph/data/neuro/caiman/data_minions/ground_truth_components_curated_minions.npz') as ld:\n", + " all_masks_gt = torch.tensor(ld['all_masks_gt'], dtype=torch.float32)\n", + " labels_gt = torch.tensor(ld['labels_gt_cur'], dtype=torch.long)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Constructing the Training and Validation Set for the Model " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "all_masks_gt = torch.reshape(all_masks_gt, (-1, in_channels, img_rows, img_cols))\n", + "dataset = TensorDataset(all_masks_gt, labels_gt) \n", + "\n", + "train_dataset, test_dataset = train_test_split(dataset, test_fraction)\n", + "\n", + "train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)\n", + "train_N = len(train_loader.dataset)\n", + "valid_loader = DataLoader(test_dataset, batch_size=batch_size)\n", + "valid_N = len(valid_loader.dataset)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Build and Evaluate the Model " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch: 0\n", + "Train - Loss: 36.1255 Accuracy: 0.5869\n", + "Valid - Loss: 36.0095 Accuracy: 1.7607\n", + "Epoch: 1\n", + "Train - Loss: 35.9488 Accuracy: 0.5869\n", + "Valid - Loss: 35.9438 Accuracy: 1.7607\n", + "Epoch: 2\n", + "Train - Loss: 36.0044 Accuracy: 0.5869\n", + "Valid - Loss: 35.9368 Accuracy: 1.7607\n", + "Epoch: 3\n", + "Train - Loss: 35.9931 Accuracy: 0.5869\n", + "Valid - Loss: 35.9785 Accuracy: 1.7607\n", + "Epoch: 4\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[7], line 8\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m epoch \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(epochs):\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mEpoch: \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m.\u001b[39mformat(epoch))\n\u001b[0;32m----> 8\u001b[0m \u001b[43mtrain\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrain_loader\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mloss_function\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moptimizer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrain_N\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maugment\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 9\u001b[0m validate(model, train_loader, loss_function, optimizer, valid_N, augment\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m)\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/caiman/train/train_cnn_model_pytorch.py:70\u001b[0m, in \u001b[0;36mtrain\u001b[0;34m(model, train_loader, loss_function, optimizer, train_N, augment)\u001b[0m\n\u001b[1;32m 68\u001b[0m model\u001b[38;5;241m.\u001b[39mtrain()\n\u001b[1;32m 69\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m x, y \u001b[38;5;129;01min\u001b[39;00m train_loader:\n\u001b[0;32m---> 70\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m \n\u001b[1;32m 71\u001b[0m optimizer\u001b[38;5;241m.\u001b[39mzero_grad()\n\u001b[1;32m 72\u001b[0m batch_loss \u001b[38;5;241m=\u001b[39m loss_function(output, y)\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1530\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m 1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m 1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1544\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/caiman/train/train_cnn_model_pytorch.py:26\u001b[0m, in \u001b[0;36mcnn_model_pytorch.forward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 25\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, x):\n\u001b[0;32m---> 26\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[43mF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrelu\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconv1\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 27\u001b[0m x \u001b[38;5;241m=\u001b[39m F\u001b[38;5;241m.\u001b[39mrelu(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconv2(x))\n\u001b[1;32m 28\u001b[0m x \u001b[38;5;241m=\u001b[39m F\u001b[38;5;241m.\u001b[39mdropout(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmaxpool2d1(x))\n", + "File \u001b[0;32m~/miniconda3/envs/caiman_pytorch/lib/python3.11/site-packages/torch/nn/functional.py:1500\u001b[0m, in \u001b[0;36mrelu\u001b[0;34m(input, inplace)\u001b[0m\n\u001b[1;32m 1498\u001b[0m result \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mrelu_(\u001b[38;5;28minput\u001b[39m)\n\u001b[1;32m 1499\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1500\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrelu\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1501\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m result\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "model = cnn_model_pytorch(in_channels, num_classes)\n", + "\n", + "loss_function = torch.nn.CrossEntropyLoss()\n", + "optimizer = Adam(model.parameters())\n", + "\n", + "for epoch in range(epochs):\n", + " print('Epoch: {}'.format(epoch))\n", + " train(model, train_loader, loss_function, optimizer, train_N, augment=None)\n", + " validate(model, train_loader, loss_function, optimizer, valid_N, augment=None)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Save the Model and its weights" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "save_model_pytorch() missing 1 required positional argument: 'name'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[8], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m save_model_path \u001b[38;5;241m=\u001b[39m \u001b[43msave_model_pytorch\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[0;31mTypeError\u001b[0m: save_model_pytorch() missing 1 required positional argument: 'name'" + ] + } + ], + "source": [ + "save_model_path = save_model_pytorch(model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualize Results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor([[0.7271, 0.2729],\n", + " [0.7409, 0.2591],\n", + " [0.7388, 0.2612],\n", + " ...,\n", + " [0.7291, 0.2709],\n", + " [0.7180, 0.2820],\n", + " [0.6821, 0.3179]])\n", + "torch tensor([[[0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " ...,\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.]],\n", + "\n", + " [[0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " ...,\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.]],\n", + "\n", + " [[0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " ...,\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.]],\n", + "\n", + " ...,\n", + "\n", + " [[0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " ...,\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.]],\n", + "\n", + " [[0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " ...,\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.]],\n", + "\n", + " [[0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " ...,\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.]]])\n" + ] + } + ], + "source": [ + "# predictions = model.predict(all_masks_gt, batch_size=32, verbose=1) fix this \n", + "with torch.no_grad():\n", + " predictions = model(all_masks_gt) \n", + " \n", + "A = torch.squeeze(all_masks_gt[torch.where(predictions[:, 0] >= 0.5)[0]]).numpy()\n", + "cm.movie(A).play(gain=3., magnification=5, fr=10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Retrieve the Model and its weights" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "loaded_model = load_model_pytorch(save_model_path)\n", + "loaded_model.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualize Results " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "predictions = loaded_model.predict(all_masks_gt, batch_size=32, verbose=1)\n", + "cm.movie(np.squeeze(all_masks_gt[np.where(predictions[:, 0] >= 0.5)[0]])).play(\n", + " gain=3., magnification=5, fr=10)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "caiman_pytorch", + "language": "python", + "name": "caiman_pytorch" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/caiman/train/train_cnn_model_pytorch.py b/caiman/train/train_cnn_model_pytorch.py new file mode 100644 index 000000000..bb2a72b97 --- /dev/null +++ b/caiman/train/train_cnn_model_pytorch.py @@ -0,0 +1,112 @@ +import numpy as np +import os +import keras +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.utils.data import Dataset, random_split + +import caiman as cm +from caiman.paths import caiman_datadir + +class cnn_model_pytorch(torch.nn.Module): + def __init__(self, in_channels, num_classes): + super(cnn_model_pytorch, self).__init__() + self.conv1 = nn.Conv2d(in_channels=in_channels, out_channels=32, kernel_size=(3,3), stride=(1, 1)) + self.conv2 = nn.Conv2d(in_channels=32, out_channels=32, kernel_size=(3,3), stride=(1, 1)) + self.maxpool2d1 = nn.MaxPool2d(kernel_size=(2, 2)) + self.conv3 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=(3,3), stride=(1, 1), padding='same') + self.conv4 = nn.Conv2d(in_channels=64, out_channels=64, kernel_size=(3,3), stride=(1, 1)) + self.maxpool2d2 = nn.MaxPool2d(kernel_size=(2, 2)) + self.flatten = nn.Flatten() + self.dense1 = nn.Linear(in_features=6400, out_features=512) + self.dense2 = nn.Linear(in_features=512, out_features=num_classes) + + def forward(self, x): + x = F.relu(self.conv1(x)) + x = F.relu(self.conv2(x)) + x = F.dropout(self.maxpool2d1(x)) + x = F.relu(self.conv3(x)) + x = F.relu(self.conv4(x)) + x = F.dropout(self.maxpool2d2(x), p=0.25) + x = self.flatten(x) + x = F.relu(self.dense1(x)) + x = F.dropout(x, p=0.5) + x = F.softmax(self.dense2(x), dim=1) + return x + +def save_model_pytorch(model, name: str): + model_name = os.path.join(caiman_datadir(), 'model', name) + model_path = model_name + ".pth" + torch.save(model, model_path) + print('Saved trained model at %s ' % model_path) + return model_path + +def load_model_pytorch(model_path: str): + load_model = torch.load(model_path) + print('Load trained model at %s ' % model_path) + return load_model + +def train_test_split(dataset: Dataset, test_fraction: float): + train_ratio = 1 - test_fraction + train_size = int(train_ratio * len(dataset)) + test_size = len(dataset) - train_size + lengths = [train_size, test_size] + train_dataset, test_dataset = random_split(dataset, lengths) + return train_dataset, test_dataset + +def get_batch_accuracy(output, y, N): + pred = output.argmax(dim=1, keepdim=True) + correct = pred.eq(y.view_as(pred)).sum().item() + return correct / N + +def train(model, train_loader, loss_function, optimizer, train_N, augment): + + loss = 0 + accuracy = 0 + + model.train() + for x, y in train_loader: + output = model(x) + optimizer.zero_grad() + batch_loss = loss_function(output, y) + batch_loss.backward() + optimizer.step() + + loss += batch_loss.item() + accuracy += get_batch_accuracy(output, y, train_N) + print('Train - Loss: {:.4f} Accuracy: {:.4f}'.format(loss, accuracy)) + +def validate(model, valid_loader, loss_function, optimizer, valid_N, augment): + + loss = 0 + accuracy = 0 + + model.eval() + with torch.no_grad(): + for x, y in valid_loader: + output = model(x) + + loss += loss_function(output, y).item() + accuracy += get_batch_accuracy(output, y, valid_N) + print('Valid - Loss: {:.4f} Accuracy: {:.4f}'.format(loss, accuracy)) + +if __name__ == "__main__": + batch_size = 128 + num_classes = 2 + epochs = 5000 + test_fraction = 0.25 + augmentation = True + img_rows, img_cols = 50, 50 # input image dimensions + + with np.load('/mnt/ceph/data/neuro/caiman/data_minions/ground_truth_components_curated_minions.npz') as ld: + all_masks_gt = ld['all_masks_gt'] + labels_gt = ld['labels_gt_cur'] + + in_channels = 1 + cnn_model = pytorch_cnn_model(in_channels, num_classes) + + # model_path = save_model_pytorch(cnn_model) + # loaded_model = load_model_pytorch(model_path) + # print(loaded_model) + diff --git a/caiman/train/training.md b/caiman/train/training.md new file mode 100644 index 000000000..65f000773 --- /dev/null +++ b/caiman/train/training.md @@ -0,0 +1,6 @@ +HOW TO GENERATE GROUND TRUTH DATA + +Step 1 go to script ground_truth_cnmf_seeded.py and generate new ground truth.This will generate a file ending in *match_masks.npz +Step 2 If you want to match the cnmf-seeded components from GT with the results of a CNMF run you can use the script match_seeded_gt.py +Step 3 You might want to clean up the components, you can use the prepare_training_set.py +Step 4 In order to train the network use either the train_net_minst.py or train_net_cifar.py \ No newline at end of file diff --git a/caiman/utils/nn_models.py b/caiman/utils/nn_models.py index fd1a63fc5..adc3f02f0 100644 --- a/caiman/utils/nn_models.py +++ b/caiman/utils/nn_models.py @@ -7,20 +7,25 @@ import numpy as np import os -import tensorflow as tf -from tensorflow.keras.layers import Input, Dense, Reshape, Layer, Activation -from tensorflow.keras.models import Model -from tensorflow.keras.optimizers import Adam -from tensorflow.keras.callbacks import ModelCheckpoint, EarlyStopping, LearningRateScheduler -from tensorflow.keras import backend as K -from tensorflow.keras.initializers import Constant, RandomUniform -from tensorflow.keras.utils import Sequence +os.environ["KERAS_BACKEND"] = "torch" import time +import torch +import torch.nn.functional as F +import torch.nn as nn +import keras +import keras.ops as ops +from keras.constraints import Constraint +from keras.layers import Input, Dense, Reshape, Layer, Activation +from keras.models import Model +from keras.optimizers import Adam +from keras.callbacks import ModelCheckpoint, EarlyStopping, LearningRateScheduler +from keras.initializers import Constant, RandomUniform +from keras.utils import Sequence + import caiman.base.movies from caiman.paths import caiman_datadir - class CalciumDataset(Sequence): def __init__(self, files, random_state=42, batch_size=32, train=True, var_name_hdf5='mov', subindices=None): @@ -94,12 +99,12 @@ class Masked_Conv2D(Layer): add a bias term to each convolution kernel Returns: - Masked_Conv2D: tensorflow.keras.layer + Masked_Conv2D: keras.layer A trainable layer implementing the convolution with a ring """ def __init__(self, output_dim=1, kernel_size=(5,5), strides=(1,1), radius_min=2, radius_max=3, initializer='uniform', - use_bias=True): #, output_dim): + use_bias=True): self.output_dim = output_dim self.kernel_size = kernel_size self.radius_min = radius_min @@ -121,29 +126,23 @@ def __init__(self, output_dim=1, kernel_size=(5,5), strides=(1,1), super(Masked_Conv2D, self).__init__() def build(self, input_shape): - try: - n_filters = input_shape[-1].value # tensorflow < 2 - except: - n_filters = input_shape[-1] # tensorflow >= 2 + n_filters = input_shape[-1] self.h = self.add_weight(name='h', shape= self.kernel_size + (n_filters, self.output_dim,), initializer=self.initializer, - constraint=masked_constraint(self.mask), + constraint=MaskedConstraint(self.mask), trainable=True) self.b = self.add_weight(name='b', shape=(self.output_dim,), initializer=Constant(0), - trainable=self.use_bias) + trainable=self.use_bias) super(Masked_Conv2D, self).build(input_shape) def call(self, x): - #hm = tf.multiply(self.h, K.expand_dims(K.expand_dims(tf.cast(self.mask, float)))) - #hm = tf.multiply(hm, hm>0) - #hm = tf.where(hm>0, hm, 0) - y = K.conv2d(x, self.h, padding='same', strides=self.strides) + y = ops.conv(x, self.h, strides=self.strides, padding='same') if self.use_bias: - y = y + tf.expand_dims(self.b, axis=0) + y = y + torch.unsqueeze(self.b, dim=0) return y def compute_output_shape(self, input_shape): @@ -178,28 +177,18 @@ def get_mask(gSig=5, r_factor=1.5, width=5): R[R>0] = 1 return R -def masked_constraint(R): - """ Enforces constraint for kernel to be non-negative everywhere and zero outside the ring - - Args: - R: np.array - Binary mask that extracts - - Returns: - my_constraint: function - Function that enforces the constraint - """ - R = tf.cast(R, dtype=tf.float32) - R_exp = tf.expand_dims(tf.expand_dims(R, -1), -1) - def my_constraint(x): - Rt = tf.tile(R_exp, [1, 1, 1, x.shape[-1]]) - Z = tf.zeros_like(x) - return tf.where(Rt>0, x, Z) - return my_constraint +class MaskedConstraint(keras.constraints.Constraint): + def __init__(self, R): + R = torch.tensor(R).float() + self.R_exp = torch.unsqueeze(torch.unsqueeze(R, dim=-1), dim=-1) + def __call__(self, x): + Rt = torch.tile(self.R_exp, [1, 1, 1, x.shape[-1]]) + Z = torch.zeros_like(x) + return torch.where(Rt > 0, x, Z) class Hadamard(Layer): - """ Creates a tensorflow.keras multiplicative layer that performs + """ Creates a keras multiplicative layer that performs pointwise multiplication with a set of learnable weights. Args: @@ -217,8 +206,8 @@ def build(self, input_shape): super(Hadamard, self).build(input_shape) def call(self, x): - hm = tf.multiply(x, self.kernel) - sm = tf.reduce_sum(hm, axis=-1, keepdims=True) + hm = torch.multiply(x, self.kernel) + sm = torch.sum(hm, dim=-1, keepdim=True) return sm def compute_output_shape(self, input_shape): @@ -226,7 +215,7 @@ def compute_output_shape(self, input_shape): class Additive(Layer): - """ Creates a tensorflow.keras additive layer that performs + """ Creates a keras additive layer that performs pointwise addition with a set of learnable weights. Args: @@ -246,7 +235,7 @@ def build(self, input_shape): super(Additive, self).build(input_shape) def call(self, x): - hm = tf.add(x, self.kernel) + hm = torch.add(x, self.kernel) return hm def compute_output_shape(self, input_shape): @@ -265,9 +254,9 @@ def cropped_loss(gSig=0): """ def my_loss(y_true, y_pred): if gSig > 0: - error = tf.square(y_true[gSig:-gSig, gSig:-gSig] - y_pred[gSig:-gSig, gSig:-gSig]) + error = torch.square(y_true[gSig:-gSig, gSig:-gSig] - y_pred[gSig:-gSig, gSig:-gSig]) else: - error = tf.square(y_true - y_pred) + error = torch.square(y_true - y_pred) return error return my_loss @@ -284,7 +273,7 @@ def quantile_loss(qnt=.50): def my_qnt_loss(y_true, y_pred): error = y_true - y_pred pos_error = error > 0 - return tf.where(pos_error, error*qnt, error*(qnt-1)) + return torch.where(pos_error, error*qnt, error*(qnt-1)) return my_qnt_loss def rate_scheduler(factor=0.5, epoch_length=200, samples_length=1e4): @@ -300,12 +289,59 @@ def my_scheduler(epoch, lr): return rate return my_scheduler +def total_variation(image): + """ + Implements PyTorch version of the the anisotropic 2-D version of the formula described here: + https://en.wikipedia.org/wiki/Total_variation_denoising + + Args: + images: 4-D Tensor of shape `[batch, height, width, channels]` or 3-D Tensor + of shape `[height, width, channels]`. + name: A name for the operation (optional). + + Raises: + ValueError: if images.shape is not a 3-D or 4-D vector. + + Returns: + The total variation of `images`. + """ + ndim = image.ndim + if ndim == 3: + # The input is a single image with shape [height, width, channels]. + + # Calculate the difference of neighboring pixel-values. + # The images are shifted one pixel along the height and width by slicing. + pixel_dif1 = images[1:, :, :] - images[:-1, :, :] + pixel_dif2 = images[:, 1:, :] - images[:, :-1, :] + sum_axis = None + elif ndims == 4: + # The input is a batch of images with shape: + # [batch, height, width, channels]. + + # Calculate the difference of neighboring pixel-values. + # The images are shifted one pixel along the height and width by slicing. + pixel_dif1 = images[:, 1:, :, :] - images[:, :-1, :, :] + pixel_dif2 = images[:, :, 1:, :] - images[:, :, :-1, :] + + # Only sum for the last 3 axis. + # This results in a 1-D tensor with the total variation for each image. + sum_axis = [1, 2, 3] + else: + raise ValueError('\'images\' must be either 3 or 4-dimensional.') + + # Calculate the total variation by taking the absolute value of the + # pixel-differences and summing over the appropriate axis. + tot_var = (torch.sum(torch.abs(pixel_dif1), axis=sum_axis) + + torch.sum(torch.abs(pixel_dif2), axis=sum_axis)) + + return tot_var + def total_variation_loss(): """ Returns a total variation norm loss function that can be used for training. """ def my_total_variation_loss(y_true, y_pred): - error = tf.reduce_mean(tf.image.total_variation(y_true - y_pred)) - return error + error = torch.mean(total_variation(y_true - y_pred)) + return error return my_total_variation_loss def b0_initializer(Y, pct=10): @@ -320,12 +356,12 @@ def b0_initializer(Y, pct=10): Returns: b0_init: keras initializer """ - def b0_init(shape, dtype=tf.float32): + def b0_init(shape, dtype=torch.float32): mY = np.percentile(Y, pct, 0) - #mY = np.min(Y, axis=0) + mY = torch.from_numpy(mY) if mY.ndim == 2: - mY = tf.expand_dims(mY, -1) - mY = tf.cast(mY, dtype=tf.float32) + mY = torch.unsqueeze(mY, dim=-1) + mY = mY.float() return mY return b0_init @@ -391,7 +427,7 @@ def create_LN_model(Y=None, shape=(None, None, 1), n_channels=2, gSig=5, r_facto add a bias term to each convolution kernel Returns: - model_LIN: tf.keras model compiled and ready to be trained. + model_LIN: keras model compiled and ready to be trained. """ x_in = Input(shape=shape) radius_min = int(gSig*r_factor) @@ -463,7 +499,7 @@ def create_NL_model(Y=None, shape=(None, None, 1), n_channels=8, gSig=5, r_facto add a bias term to each convolution kernel Returns: - model_LIN: tf.keras model compiled and ready to be trained. + model_LIN: keras model compiled and ready to be trained. """ x_in = Input(shape=shape) radius_min = int(gSig*r_factor) @@ -519,7 +555,7 @@ def fit_NL_model(model_NL, Y, patience=5, val_split=0.2, batch_size=32, Y = np.expand_dims(Y, axis=-1) run_logdir = get_run_logdir() os.mkdir(run_logdir) - path_to_model = os.path.join(run_logdir, 'model.h5') + path_to_model = os.path.join(run_logdir, 'model.weights.h5') chk = ModelCheckpoint(filepath=path_to_model, verbose=0, save_best_only=True, save_weights_only=True) es = EarlyStopping(monitor='val_loss', patience=patience, @@ -530,7 +566,7 @@ def fit_NL_model(model_NL, Y, patience=5, val_split=0.2, batch_size=32, history_NL = model_NL.fit(Y, Y, epochs=epochs, batch_size=batch_size, shuffle=True, validation_split=val_split, callbacks=callbacks) - model_NL.load_weights(os.path.join(run_logdir, 'model.h5')) + model_NL.load_weights(os.path.join(run_logdir, 'model.weights.h5')) return model_NL, history_NL, path_to_model def get_MCNN_model(Y, gSig=5, n_channels=8, lr=1e-4, pct=10, r_factor=1.5,