mne-hcp
mne-hcp copied to clipboard
Weird bug with n_jobs
Creating forward models fails when n_jobs is negative. (Works when it's positive.) Will see if I can find anything.
Employing the head->MRI coordinate transform with the BEM model.
BEM model dict is now set up
Source spaces are in head coordinates.
Checking that the sources are inside the bounding surface (will take a few...)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/numpy/lib/shape_base.py in array_split(ary, indices_or_sections, axis)
403 # handle scalar case.
--> 404 Nsections = len(indices_or_sections) + 1
405 div_points = [0] + list(indices_or_sections) + [Ntotal]
TypeError: object of type 'int' has no len()
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-13-662c1c585ef7> in <module>()
4 recordings_path=recordings_path,
5 info_from=(('data_type', "task_story_math"), ('run_index', 0)),
----> 6 n_jobs=-8
7 )
8
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/hcp-0.1.dev0-py3.5.egg/hcp/workflows/inverse.py in make_mne_forward(anatomy_path, subject, recordings_path, info_from, fwd_params, src_params, hcp_path, n_jobs)
92 fwd = mne.make_forward_solution(
93 info, trans=head_mri_t, bem=bem_sol, src=src_subject,
---> 94 n_jobs=n_jobs)
95
96 return dict(fwd=fwd, src_subject=src_subject,
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/forward/_make_forward.py in make_forward_solution(info, trans, src, bem, fname, meg, eeg, mindist, ignore_ref, overwrite, n_jobs, verbose)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/utils.py in verbose(function, *args, **kwargs)
607 with use_log_level(verbose_level):
608 return function(*args, **kwargs)
--> 609 return function(*args, **kwargs)
610
611
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/forward/_make_forward.py in make_forward_solution(info, trans, src, bem, fname, meg, eeg, mindist, ignore_ref, overwrite, n_jobs, verbose)
582 update_kwargs, bem = _prepare_for_forward(
583 src, mri_head_t, info, bem, mindist, n_jobs, bem_extra, trans,
--> 584 info_extra, meg, eeg, ignore_ref, fname, overwrite)
585 del (src, mri_head_t, trans, info_extra, bem_extra, mindist,
586 meg, eeg, ignore_ref)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/forward/_make_forward.py in _prepare_for_forward(src, mri_head_t, info, bem, mindist, n_jobs, bem_extra, trans, info_extra, meg, eeg, ignore_ref, fname, overwrite, verbose)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/utils.py in verbose(function, *args, **kwargs)
607 with use_log_level(verbose_level):
608 return function(*args, **kwargs)
--> 609 return function(*args, **kwargs)
610
611
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/forward/_make_forward.py in _prepare_for_forward(src, mri_head_t, info, bem, mindist, n_jobs, bem_extra, trans, info_extra, meg, eeg, ignore_ref, fname, overwrite, verbose)
468 if not bem['is_sphere']:
469 inner_skull = _bem_find_surface(bem, 'inner_skull')
--> 470 _filter_source_spaces(inner_skull, mindist, mri_head_t, src, n_jobs)
471 logger.info('')
472
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/source_space.py in _filter_source_spaces(surf, limit, mri_head_t, src, n_jobs, verbose)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/utils.py in verbose(function, *args, **kwargs)
607 with use_log_level(verbose_level):
608 return function(*args, **kwargs)
--> 609 return function(*args, **kwargs)
610
611
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/source_space.py in _filter_source_spaces(surf, limit, mri_head_t, src, n_jobs, verbose)
2013
2014 # Check that the source is inside surface (often the inner skull)
-> 2015 outside = _points_outside_surface(r1s, surf, n_jobs)
2016 omit_outside = np.sum(outside)
2017
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/source_space.py in _points_outside_surface(rr, surf, n_jobs, verbose)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/utils.py in verbose(function, *args, **kwargs)
607 with use_log_level(verbose_level):
608 return function(*args, **kwargs)
--> 609 return function(*args, **kwargs)
610
611
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/source_space.py in _points_outside_surface(rr, surf, n_jobs, verbose)
2070 parallel, p_fun, _ = parallel_func(_get_solids, n_jobs)
2071 tot_angles = parallel(p_fun(surf['rr'][tris], rr)
-> 2072 for tris in np.array_split(surf['tris'], n_jobs))
2073 return np.abs(np.sum(tot_angles, axis=0) / (2 * np.pi) - 1.0) > 1e-5
2074
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/numpy/lib/shape_base.py in array_split(ary, indices_or_sections, axis)
408 Nsections = int(indices_or_sections)
409 if Nsections <= 0:
--> 410 raise ValueError('number sections must be larger than 0.')
411 Neach_section, extras = divmod(Ntotal, Nsections)
412 section_sizes = ([0] +
ValueError: number sections must be larger than 0.
Maybe an MNE issue? Can you try with MNE sampling data? I think there was something ... long time ago. I never use negative numbers in joblib for some classical conditioning reason...
On Tue, Apr 26, 2016 at 12:13 AM jona-sassenhagen [email protected] wrote:
Creating forward models fails when n_jobs is negative. (Works when it's positive.) Will see if I can find anything.
Employing the head->MRI coordinate transform with the BEM model. BEM model dict is now set up
Source spaces are in head coordinates.
Checking that the sources are inside the bounding surface (will take a few...)
TypeError Traceback (most recent call last) /home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/numpy/lib/shape_base.py in array_split(ary, indices_or_sections, axis) 403 # handle scalar case. --> 404 Nsections = len(indices_or_sections) + 1 405 div_points = [0] + list(indices_or_sections) + [Ntotal]
TypeError: object of type 'int' has no len()
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
in () 4 recordings_path=recordings_path, 5 info_from=(('data_type', "task_story_math"), ('run_index', 0)), ----> 6 n_jobs=-8 7 ) 8 /home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/hcp-0.1.dev0-py3.5.egg/hcp/workflows/inverse.py in make_mne_forward(anatomy_path, subject, recordings_path, info_from, fwd_params, src_params, hcp_path, n_jobs) 92 fwd = mne.make_forward_solution( 93 info, trans=head_mri_t, bem=bem_sol, src=src_subject, ---> 94 n_jobs=n_jobs) 95 96 return dict(fwd=fwd, src_subject=src_subject,
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/forward/_make_forward.py in make_forward_solution(info, trans, src, bem, fname, meg, eeg, mindist, ignore_ref, overwrite, n_jobs, verbose)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/utils.py in verbose(function, _args, *_kwargs) 607 with use_log_level(verbose_level): 608 return function(_args, *_kwargs) --> 609 return function(_args, *_kwargs) 610 611
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/forward/_make_forward.py in make_forward_solution(info, trans, src, bem, fname, meg, eeg, mindist, ignore_ref, overwrite, n_jobs, verbose) 582 update_kwargs, bem = _prepare_for_forward( 583 src, mri_head_t, info, bem, mindist, n_jobs, bem_extra, trans, --> 584 info_extra, meg, eeg, ignore_ref, fname, overwrite) 585 del (src, mri_head_t, trans, info_extra, bem_extra, mindist, 586 meg, eeg, ignore_ref)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/forward/_make_forward.py in _prepare_for_forward(src, mri_head_t, info, bem, mindist, n_jobs, bem_extra, trans, info_extra, meg, eeg, ignore_ref, fname, overwrite, verbose)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/utils.py in verbose(function, _args, *_kwargs) 607 with use_log_level(verbose_level): 608 return function(_args, *_kwargs) --> 609 return function(_args, *_kwargs) 610 611
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/forward/_make_forward.py in _prepare_for_forward(src, mri_head_t, info, bem, mindist, n_jobs, bem_extra, trans, info_extra, meg, eeg, ignore_ref, fname, overwrite, verbose) 468 if not bem['is_sphere']: 469 inner_skull = _bem_find_surface(bem, 'inner_skull') --> 470 _filter_source_spaces(inner_skull, mindist, mri_head_t, src, n_jobs) 471 logger.info('') 472
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/source_space.py in _filter_source_spaces(surf, limit, mri_head_t, src, n_jobs, verbose)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/utils.py in verbose(function, _args, *_kwargs) 607 with use_log_level(verbose_level): 608 return function(_args, *_kwargs) --> 609 return function(_args, *_kwargs) 610 611
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/source_space.py in _filter_source_spaces(surf, limit, mri_head_t, src, n_jobs, verbose) 2013 2014 # Check that the source is inside surface (often the inner skull) -> 2015 outside = _points_outside_surface(r1s, surf, n_jobs) 2016 omit_outside = np.sum(outside) 2017
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/source_space.py in _points_outside_surface(rr, surf, n_jobs, verbose)
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/utils.py in verbose(function, _args, *_kwargs) 607 with use_log_level(verbose_level): 608 return function(_args, *_kwargs) --> 609 return function(_args, *_kwargs) 610 611
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/mne-0.12.dev0-py3.5.egg/mne/source_space.py in _points_outside_surface(rr, surf, n_jobs, verbose) 2070 parallel, p_fun, _ = parallel_func(_get_solids, n_jobs) 2071 tot_angles = parallel(p_fun(surf['rr'][tris], rr) -> 2072 for tris in np.array_split(surf['tris'], n_jobs)) 2073 return np.abs(np.sum(tot_angles, axis=0) / (2 * np.pi) - 1.0) > 1e-5 2074
/home/FB/fb05/sassenha/anaconda3/lib/python3.5/site-packages/numpy/lib/shape_base.py in array_split(ary, indices_or_sections, axis) 408 Nsections = int(indices_or_sections) 409 if Nsections <= 0: --> 410 raise ValueError('number sections must be larger than 0.') 411 Neach_section, extras = divmod(Ntotal, Nsections) 412 section_sizes = ([0] +
ValueError: number sections must be larger than 0.
— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/mne-tools/mne-hcp/issues/6