[Eeglablist] AMICA15 segmentation fault
Norman Forschack
forschack at cbs.mpg.de
Mon Dec 14 16:40:15 PST 2015
Dear eeglabbers,
first of all, Jason, thanks a lot for providing the new version of amica for us, your input is always highly appreciated!
I tested the new version with the dataset from the homepage and it works neatly (after adjusting the call to the Ubuntu binary to 'amica15ub').
However, when running it on another EEG dataset with 62 channels, I have some trouble with negative but very small eigenvalues, which might be related to this post
http://sccn.ucsd.edu/pipermail/eeglablist/2015/010104.html
This causes amica to exit after the message 'segmentation fault'. The data is comprised of merged ten minutes blocks and is minimally preprocessed:
1. PREP pipeline robust average reference
2. resampling to 250Hz
3. 1Hz high pass
4. thresholding data points > 180 microV
The issue occurs when pcakeep option is enabled (see below for command line output)
I tried without pcakeep but with removed channels, mainly EOG and PREP interpolated channels, in order to input full rank data. This yields positive eigenvalues, but again, the algorithm exits with 'segmentation fault'.
I have no idea how to overcome this, but I'm wondering why eigenvalues are calculated twice? Are they supposed to differ at the second instance? In my case they don't. (see command line output below)
Or could there probably be something wrong with my data preprocessing, am I missing something?
Any hint how to solve the problem, is highly anticipated.
Best
Norman
run with data dimensions reduced:
Writing data file: /.../tmpdata96489.fdt
mkdir: cannot create directory '/.../amicaouttmp/': File exists
1 processor name = kambodscha
1 host_num = 2033974327
This is MPI process 1 of 1 ; I am process 1 of
1 on node: kambodscha
1 : node root process 1 of 1
Processing arguments ...
num_files = 1
FILES:
/.../tmpdata96489.fdt
num_dir_files = 1
initial matrix block_size = 128
do_opt_block = 1
blk_min = 256
blk_step = 256
blk_max = 1024
number of models = 1
max_thrds = 8
use_min_dll = 1
min dll = 1.000000000000000E-009
use_grad_norm = 1
min grad norm = 1.000000000000000E-007
number of density mixture components = 3
pdf type = 0
max_iter = 2000
num_samples = 1
data_dim = 61
field_dim = 1115606
do_history = 0
histstep = 10
share_comps = 0
share_start = 100
comp_thresh = 0.990000000000000
share_int = 100
initial lrate = 5.000000000000000E-002
minimum lrate = 1.000000000000000E-008
minimum data covariance eigenvalue = 1.000000000000000E-012
lrate factor = 0.500000000000000
initial rholrate = 5.000000000000000E-002
rho0 = 1.50000000000000
min rho = 1.00000000000000
max rho = 2.00000000000000
rho lrate factor = 0.500000000000000
kurt_start = 3
num kurt = 5
kurt interval = 1
do_newton = 1
newt_start = 50
newt_ramp = 10
initial newton lrate = 1.00000000000000
do_reject = 1
num reject = 3
reject sigma = 3.00000000000000
reject start = 3
reject interval = 3
write step = 20
write_nd = 0
write_LLt = 1
dec window = 1
max_decs = 3
fix_init = 0
update_A = 1
update_c = 1
update_gm = 1
update_alpha = 1
update_mu = 1
update_beta = 1
invsigmax = 100.000000000000
invsigmin = 0.000000000000000E+000
do_rho = 1
load_rej = 0
load_c = 0
load_gm = 0
load_alpha = 0
load_mu = 0
load_beta = 0
load_rho = 0
load_comp_list = 0
do_mean = 1
do_sphere = 1
pcakeep = 57
pcadb = 30.0000000000000
byte_size = 4
doscaling = 1
scalestep = 1
mkdir: cannot create directory '/.../amicaouttmp/': File exists
output directory =
/.../amicaouttmp/
1 : setting num_thrds to 8 ...
1 : using 8 threads.
1 : node_thrds = 8
bytes in real = 1
1 : REAL nbyte = 1
getting segment list ...
blocks in sample = 1115606
total blocks = 1115606
node blocks = 1115606
node 1 start: file 1 sample 1 index
1
node 1 stop : file 1 sample 1 index
1115606
1 : data = -4.96359205245972 -14.1346406936646
getting the mean ...
mean = -0.314507310018316 -0.304240499189297
-5.144710467579993E-002
subtracting the mean ...
getting the covariance matrix ...
cnt = 1115606
doing eig nx = 61 lwork = 37210
minimum eigenvalues = -5.406684296262385E-013 -1.285030795456605E-014
2.538997580317705E-013
maximum eigenvalues = 4158.38269386037 1002.93581119057
747.275462874866
num eigs kept = 57
getting the sphering matrix ...
minimum eigenvalues = -5.406684296262385E-013 -1.285030795456605E-014
2.538997580317705E-013
maximum eigenvalues = 4158.38269386037 1002.93581119057
747.275462874866
num eigs kept = 57
sphering the data ...
numeigs = 57
1 : Allocating variables ...
1 : Initializing variables ...
1 : Determining optimal block size ....
/home/.../amica15ub /.../amicaouttmp/input.param: Segmentation fault
No gm present, setting num_models to 1
No W present, exiting
run with interpolated channels removed:
Writing data file: /.../tmpdata95717.fdt
mkdir: cannot create directory '/.../amicaouttmp/': File exists
1 processor name = kambodscha
1 host_num = 2033974327
This is MPI process 1 of 1 ; I am process 1 of
1 on node: kambodscha
1 : node root process 1 of 1
Processing arguments ...
num_files = 1
FILES:
/.../tmpdata95717.fdt
num_dir_files = 1
initial matrix block_size = 128
do_opt_block = 1
blk_min = 256
blk_step = 256
blk_max = 1024
number of models = 1
max_thrds = 8
use_min_dll = 1
min dll = 1.000000000000000E-009
use_grad_norm = 1
min grad norm = 1.000000000000000E-007
number of density mixture components = 3
pdf type = 0
max_iter = 2000
num_samples = 1
data_dim = 57
field_dim = 1116754
do_history = 0
histstep = 10
share_comps = 0
share_start = 100
comp_thresh = 0.990000000000000
share_int = 100
initial lrate = 5.000000000000000E-002
minimum lrate = 1.000000000000000E-008
minimum data covariance eigenvalue = 1.000000000000000E-012
lrate factor = 0.500000000000000
initial rholrate = 5.000000000000000E-002
rho0 = 1.50000000000000
min rho = 1.00000000000000
max rho = 2.00000000000000
rho lrate factor = 0.500000000000000
kurt_start = 3
num kurt = 5
kurt interval = 1
do_newton = 1
newt_start = 50
newt_ramp = 10
initial newton lrate = 1.00000000000000
do_reject = 1
num reject = 3
reject sigma = 3.00000000000000
reject start = 3
reject interval = 3
write step = 20
write_nd = 0
write_LLt = 1
dec window = 1
max_decs = 3
fix_init = 0
update_A = 1
update_c = 1
update_gm = 1
update_alpha = 1
update_mu = 1
update_beta = 1
invsigmax = 100.000000000000
invsigmin = 0.000000000000000E+000
do_rho = 1
load_rej = 0
load_c = 0
load_gm = 0
load_alpha = 0
load_mu = 0
load_beta = 0
load_rho = 0
load_comp_list = 0
do_mean = 1
do_sphere = 1
pcakeep = 57
pcadb = 30.0000000000000
byte_size = 4
doscaling = 1
scalestep = 1
mkdir: cannot create directory '/.../amicaouttmp/': File exists
output directory = /.../amicaouttmp/
1 : setting num_thrds to 8 ...
1 : using 8 threads.
1 : node_thrds = 8
bytes in real = 1
1 : REAL nbyte = 1
getting segment list ...
blocks in sample = 1116754
total blocks = 1116754
node blocks = 1116754
node 1 start: file 1 sample 1 index
1
node 1 stop : file 1 sample 1 index
1116754
1 : data = -4.96453666687012 -14.1324272155762
getting the mean ...
mean = -0.286942247592682 -0.278907745979486
-4.659303225201700E-002
subtracting the mean ...
getting the covariance matrix ...
cnt = 1116754
doing eig nx = 57 lwork = 32490
minimum eigenvalues = 0.328194400980202 0.540830260003019
0.590640211589886
maximum eigenvalues = 3591.26449346892 979.044648222552
723.438382000281
num eigs kept = 57
getting the sphering matrix ...
minimum eigenvalues = 0.328194400980202 0.540830260003019
0.590640211589886
maximum eigenvalues = 3591.26449346892 979.044648222552
723.438382000281
num eigs kept = 57
sphering the data ...
numeigs = 57
1 : Allocating variables ...
1 : Initializing variables ...
1 : Determining optimal block size ....
/home/.../amica15ub /.../amicaouttmp/input.param: Segmentation fault
No gm present, setting num_models to 1
No W present, exiting
Sometimes I also get a more verbose feedback, but I cannot reproduce this consistently:
forrtl: severe (174): SIGSEGV, segmentation fault occurred
forrtl: severe (174): SIGSEGV, segmentation fault occurred
/.../amica15ub /.../amicaouttmp/input.param: Signal 46
___________________________________________________________
Norman Forschack, Dipl.-Psych.
Max-Planck Institute for Human Cognitive and Brain Sciences
Stephanstraße 1a
04103 Leipzig
mail: forschack at cbs.mpg.de
phone: +49341 9940171
web: http://www.cbs.mpg.de/~forschack
More information about the eeglablist
mailing list