-
Notifications
You must be signed in to change notification settings - Fork 171
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
LibLinear and LibSVM have unmanaged global RNGs (#172)
* Fixing a concurrency and reproducibility issue in liblinear by making it synchronized and resetting the RNG everywhere. * Changing the lock so it's on LibLinearTrainer.class rather than the instance of LibLinearTrainer. * Fixing a bug where SVMAnomalyType reported itself as classification not anomaly detection. * Makes LibSVM training reproducible. LibSVM has a global RNG which is used when making probailistic predictions. This commit uses Tribuo's standard mechanisms to track RNG state to ensure this is reproducible, at the cost of sequentializing all LibSVM training runs to ensure that the RNG state is consistent with the provenance. Also added some more Javadoc. * Updating comments after review. Adding an extra bit to TestLibSVM.testReproducibility to show the models differ in tracked ways. * extended unit test to test that two subsequent models are the same Co-authored-by: Philip Ogren <philip.ogren@oracle.com>
- Loading branch information
Showing
13 changed files
with
200 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.