Merged
Conversation
…ry and validating train/validation splits - Added functionality to remove the __MACOSX directory after extraction. - Implemented checks to ensure the presence of 'train' and 'validation' directories in the extracted content, raising errors if not found.
…directory validation - Renamed the function `list_dir` to `list_directories` for clarity. - Updated the extraction logic to use the new function name. - Improved validation checks for 'train' and 'validation' directories by using `Path` objects for better consistency and readability.
- Updated `get_gpus_count` to support MPS alongside CUDA. - Modified default value of `amp_enabled` in training and validation functions to False. - Improved model loading logic to handle MPS and CUDA availability with appropriate error handling.
…ailability check - Changed default value of `amp_enabled` to True in training and validation functions. - Added a check to ensure CUDA is available when using AMP, with a warning if not.
- Enhanced device selection to prioritize CUDA, MPS, or fallback to CPU based on availability. - Removed redundant CUDA availability check from the training loop.
- Expanded the list of supported model families in focoos_hub.py to include IMAGE_CLASSIFIER for enhanced functionality.
- Introduced a new field `mps_available` in the `GPUInfo` class to indicate MPS support. - Updated the `get_gpu_info` function to populate the `mps_available` field based on the availability of MPS. - Bumped focoos version to 0.22.0 in the lock file.
There was a problem hiding this comment.
This PR is being reviewed by Cursor Bugbot
Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| try: | ||
| self.model = self.model.to(device="mps") | ||
| except Exception: | ||
| logger.warning("Unable to use MPS") |
There was a problem hiding this comment.
Bug: Model Transfer Inefficiency Between CUDA and MPS
The model initialization logic attempts to move the model to CUDA, then immediately to MPS, if both are available. This sequential device placement causes inefficient double transfers and implicitly prioritizes MPS, which might not be the intended or optimal behavior.
This file contains hidden or 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
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.
No description provided.