neurospin / pylearn-epac

Embarrassingly Parallel Array Computing: EPAC is a machine learning workflow builder.
BSD 3-Clause "New" or "Revised" License
12 stars 3 forks source link

BUG: ParMethods cannot avoid collision when differentiation do not occures on direct children #6

Closed duchesnay closed 11 years ago

JinpengLI commented 11 years ago

Do you have an example? What is the differentiation?

duchesnay commented 11 years ago

By differentiation I mean that children primary keys can be differentiatiated (using arguments for instance) in order to avoid primary key collision. Ex:

pm = ParMethods(*[SVC(kernel="linear", C=C) for C in [1, 10]]) [l.get_key() for l in pm.get_leaves()] ['ParMethods/SVC(C=1)', 'ParMethods/SVC(C=10)']

ParMethods constructor avoid children keys collision (differentiation) adding on their arguments in the key.

But actually, differentiation is not possible if it cannot be performed on direct chidren ex: pm = ParMethods(*[Seq(SelectKBest(k=2), SVC(kernel="linear", C=C))\ for C in [1, 10]]) [l.get_key() for l in pm.get_leaves()] ['ParMethods/SelectKBest/SVC', 'ParMethods/SelectKBest/SVC']

When the bug will be fixed this should return ['ParMethods/SelectKBest/SVC(C=1)', 'ParMethods/SelectKBest/SVC(C=10)']