-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Add feature to evaluate network for specfic, named snapshots. #2508
Merged
Conversation
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
…isting functionality. - Replace snapindex with more explicit snapshot_name. snapshotindex from config is used to identify the snapshot name instead. - Refactor logic for snapshotindex allowed values. Add limit to negative index values.
- Replace snapshots_to_evaluate numpy indexing with list loop - Raise error if no snapshots are found
# Conflicts: # deeplabcut/pose_estimation_tensorflow/core/evaluate.py
* Improve snapshots_to_evaluate docstring * Get training_iterations from snapshot_name * Rename trainingsiterations -> training_iterations
* Create get_available_requested_snapshots for obtaining specified snapshot names (new feature). * Create get_snapshots_by_index to handle the original implementation. * Minor improvements and fixes
* Add snapshots_to_evaluate parameter to multi-animal evaluation * Minor renaming
* add evaluate_by_snapshot branch for testing purposes
* Better typehint for int or str * Raise IndexError instead of ValueError
* Add list_sorted_existing_snapshots to auxiliaryfunctions.py. * Update several files to use the newly refactored function. * Preserve same exception handling, albeit with modified message to be more general and concise.
* Add new snapshot auxiliary function usage. * Preserve continuation of loop if no snapshots are found.
* Update name for all usages * Minor change to function docstring * Remove redundant sorting in evaluate_multianimal.py
* Test snapshots present and returned in order * Test snapshots not found
@n-poulsen and @jeylau let's prioritize this -- I think it's a great addition, and can be worked into DLC3.0 |
n-poulsen
approved these changes
Jul 5, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made some minor linting changes, tested on single + multi-animal projects. Looks good to me (as soon as tests pass)!
Great PR, thanks @Tetra-quark!
MMathisLab
added a commit
that referenced
this pull request
Jul 16, 2024
* Add feature to evaluate network for specfic, named snapshots. (#2508) * Add snapshot selection option to evaluate_network while preserving existing functionality. - Replace snapindex with more explicit snapshot_name. snapshotindex from config is used to identify the snapshot name instead. - Refactor logic for snapshotindex allowed values. Add limit to negative index values. * Update evaluate.py - Replace snapshots_to_evaluate numpy indexing with list loop - Raise error if no snapshots are found * Add snapshots_to_evaluate docstring * Remove unused distance function * Update evaluate.py * Improve snapshots_to_evaluate docstring * Get training_iterations from snapshot_name * Rename trainingsiterations -> training_iterations * Improve snapshot_to_evaluate typehint and docstring. * Refactor evaluate.py * Create get_available_requested_snapshots for obtaining specified snapshot names (new feature). * Create get_snapshots_by_index to handle the original implementation. * Minor improvements and fixes * Add tests for new snapshot functions in evaluate.py * Update evaluate_multianimal.py * Add snapshots_to_evaluate parameter to multi-animal evaluation * Minor renaming * Update python-package.yml * add evaluate_by_snapshot branch for testing purposes * Add snapshots_to_evaluate usage in testscript.py * Update get_snapshots_by_index function * Better typehint for int or str * Raise IndexError instead of ValueError * Add get_snapshots_by_index tests to test_evaluate.py * Update return_evaluate_network_data function with get_snapshots_by_index usage * Fix potential reference before assignment by raising ValueError * Refactor getting existing snapshot file names as sorted list. * Add list_sorted_existing_snapshots to auxiliaryfunctions.py. * Update several files to use the newly refactored function. * Preserve same exception handling, albeit with modified message to be more general and concise. * Refactor evaluate_multianimal.py * Add new snapshot auxiliary function usage. * Preserve continuation of loop if no snapshots are found. * Remove indentation level. * Rename list_sorted_exisiting_snapshots -> get_snapshots_in_folder * Update name for all usages * Minor change to function docstring * Remove redundant sorting in evaluate_multianimal.py * Port numpy array to list (not performance critical) * Add get_snapshots_from_folder tests * Test snapshots present and returned in order * Test snapshots not found * Fix deprecated function names * Improve snapshots_to_evaluate test in testscript.py * Correct spelling * Add per_keypoint_evaluation to evaluate_multianimal_full function call (woops!) * minor linting --------- Co-authored-by: Mackenzie Mathis <mathis@rowland.harvard.edu> Co-authored-by: Niels Poulsen <niels.poulsen@epfl.ch> * fixed file dialog not showing uppercase file extension video files (#2645) * fixed file dialog not showing uppercase file extension video files * bug fix: no shuffle_change slot in main window * bug fix --------- Co-authored-by: Niels Poulsen <niels.poulsen@epfl.ch> Co-authored-by: Mackenzie Mathis <mathis@rowland.harvard.edu> --------- Co-authored-by: jkopp <32641315+Tetra-quark@users.noreply.github.com> Co-authored-by: Mackenzie Mathis <mathis@rowland.harvard.edu> Co-authored-by: Terry Park <58895710+park-jsdev@users.noreply.github.com>
MMathisLab
added a commit
that referenced
this pull request
Jul 19, 2024
* Add feature to evaluate network for specfic, named snapshots. (#2508) * Add snapshot selection option to evaluate_network while preserving existing functionality. - Replace snapindex with more explicit snapshot_name. snapshotindex from config is used to identify the snapshot name instead. - Refactor logic for snapshotindex allowed values. Add limit to negative index values. * Update evaluate.py - Replace snapshots_to_evaluate numpy indexing with list loop - Raise error if no snapshots are found * Add snapshots_to_evaluate docstring * Remove unused distance function * Update evaluate.py * Improve snapshots_to_evaluate docstring * Get training_iterations from snapshot_name * Rename trainingsiterations -> training_iterations * Improve snapshot_to_evaluate typehint and docstring. * Refactor evaluate.py * Create get_available_requested_snapshots for obtaining specified snapshot names (new feature). * Create get_snapshots_by_index to handle the original implementation. * Minor improvements and fixes * Add tests for new snapshot functions in evaluate.py * Update evaluate_multianimal.py * Add snapshots_to_evaluate parameter to multi-animal evaluation * Minor renaming * Update python-package.yml * add evaluate_by_snapshot branch for testing purposes * Add snapshots_to_evaluate usage in testscript.py * Update get_snapshots_by_index function * Better typehint for int or str * Raise IndexError instead of ValueError * Add get_snapshots_by_index tests to test_evaluate.py * Update return_evaluate_network_data function with get_snapshots_by_index usage * Fix potential reference before assignment by raising ValueError * Refactor getting existing snapshot file names as sorted list. * Add list_sorted_existing_snapshots to auxiliaryfunctions.py. * Update several files to use the newly refactored function. * Preserve same exception handling, albeit with modified message to be more general and concise. * Refactor evaluate_multianimal.py * Add new snapshot auxiliary function usage. * Preserve continuation of loop if no snapshots are found. * Remove indentation level. * Rename list_sorted_exisiting_snapshots -> get_snapshots_in_folder * Update name for all usages * Minor change to function docstring * Remove redundant sorting in evaluate_multianimal.py * Port numpy array to list (not performance critical) * Add get_snapshots_from_folder tests * Test snapshots present and returned in order * Test snapshots not found * Fix deprecated function names * Improve snapshots_to_evaluate test in testscript.py * Correct spelling * Add per_keypoint_evaluation to evaluate_multianimal_full function call (woops!) * minor linting --------- Co-authored-by: Mackenzie Mathis <mathis@rowland.harvard.edu> Co-authored-by: Niels Poulsen <niels.poulsen@epfl.ch> * fixed file dialog not showing uppercase file extension video files (#2645) * fixed file dialog not showing uppercase file extension video files * bug fix: no shuffle_change slot in main window * bug fix --------- Co-authored-by: Niels Poulsen <niels.poulsen@epfl.ch> Co-authored-by: Mackenzie Mathis <mathis@rowland.harvard.edu> --------- Co-authored-by: jkopp <32641315+Tetra-quark@users.noreply.github.com> Co-authored-by: Mackenzie Mathis <mathis@rowland.harvard.edu> Co-authored-by: Terry Park <58895710+park-jsdev@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a feature to pass a list of snapshot names
snapshots_to_evaluate
to theevaluate_network
function as an alternative to using thesnapshotindex
parameter in the mainconfig.yaml
file.The new parameter allows multiple, explicitly named snapshots to be evaluated where previously only a single snapshot or
"all"
could be chosen.This pull request closes #2356.
Overview of changes:
snapshots_to_evaluate
parameter to both single and multi-animal evaluation.get_available_requested_snapshots
to handle thesnapshots_to_evaluate
parameter.get_snapshots_by_index
to refactor existingsnapshotindex
from config file functionality.get_snapshots_from_folder
to refactor getting an ordered list of snapshots from the train folder.testscript.py
to usesnapshots_to_evaluate
inevaluate_network
(however in doing so I have disabled thesnapshotindex
method, both should be in the test ideally).Example usage: