Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Repairing unit tests for source separation #240

Merged
merged 1 commit into from
Feb 28, 2017

Conversation

bmcfee
Copy link
Collaborator

@bmcfee bmcfee commented Feb 27, 2017

This PR should resolve #239 by relaxing the pass condition on frame-wise source separation metrics.

Again, this is a result of instability introduced by solve/lstsq having different implementations depending on the underlying linear algebra system (blas/mkl/openblas/etc).

@bmcfee bmcfee added the bug label Feb 27, 2017
@bmcfee bmcfee added this to the 0.5 milestone Feb 27, 2017
@craffel
Copy link
Collaborator

craffel commented Feb 27, 2017

Appears to still fail :(

@bmcfee
Copy link
Collaborator Author

bmcfee commented Feb 27, 2017

Dang. I rolled the threshold up until it passed locally. I guess travis is a different story; trying again at 1e-2.

@bmcfee
Copy link
Collaborator Author

bmcfee commented Feb 27, 2017

apparently 1e-2 is still too much. Maybe it's worth removing the offending fixtures instead?

@craffel
Copy link
Collaborator

craffel commented Feb 27, 2017

It looks like the two remaining failing tests are still being called with atol 1e-12.

@bmcfee
Copy link
Collaborator Author

bmcfee commented Feb 27, 2017

Aha -- the problem is actually that some of the failures are not framewise metrics.

At this point, I recommend reverting back to strict test thresholds, but dropping examples 00 and 04 from the fixtures. Were these generated specifically to test any particular failure modes, or are they just random clips?

@faroit
Copy link

faroit commented Feb 27, 2017

Were these generated specifically to test any particular failure modes, or are they just random clips?

I think those (failing) scores are quite low which seem to increase the probability of numerical instabilities. However, they are not edge cases where one of the estimated targets is zero or identical to the reference.

@bmcfee
Copy link
Collaborator Author

bmcfee commented Feb 28, 2017

@faroit so would we lose any case coverage by dropping these examples?

@faroit
Copy link

faroit commented Feb 28, 2017

short answer: no

longer answer:

04 is a nice example of one target (bass) having a really bad estimate particular in the first frames. But it's not the only item with bass separation. So it would still be okay to drop it.

screen shot 2017-02-28 at 08 35 40

it would be interesting to see if increasing the metric window (currently set to 120) could average out the precision error?

@bmcfee bmcfee force-pushed the sourcesep-test-fixture-fix branch from e77c407 to a083db7 Compare February 28, 2017 14:16
@bmcfee bmcfee changed the title added a weak test condition for frame-wise source separation Repairing unit tests for source separation Feb 28, 2017
@bmcfee
Copy link
Collaborator Author

bmcfee commented Feb 28, 2017

Okay, tests pass now that we killed the two offending cases.

@bmcfee
Copy link
Collaborator Author

bmcfee commented Feb 28, 2017

@craffel if you're okay with dropping these fixtures, this guy's good to go.

@craffel craffel merged commit 89f8ef1 into mir-evaluation:master Feb 28, 2017
@craffel
Copy link
Collaborator

craffel commented Feb 28, 2017

Merged, thank you sir.

@faroit
Copy link

faroit commented Mar 1, 2017

thanks for taking care of this!

@bmcfee bmcfee deleted the sourcesep-test-fixture-fix branch March 1, 2017 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fix source separation unit tests
3 participants