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
Unified '/project/name' results saving #1377
Conversation
@AyushExel I think this works. This essentially replaces --save-dir with --project, and introduces a new --exist-ok argument to prevent incrementing of --name. I'm not really sure if I've helped simplify things or just made them more complicated now. I'll think about this some more. |
/rebase |
4e20959
to
79578e0
Compare
/rebase |
@AyushExel one failure mode here maybe be is if the user specifies an empty --project '' or --name ''. This works locally under all the combinations I tested, but do you know what happens if these are passed to wandb.init()? |
@glenn-jocher the path separator is not supported in project name in |
WARNING: Breaking Changes to WorkflowsThis PR will modify the logging/saving structure of train.py, test.py, detect.py to bring standardization and industry best practices into YOLOv5 naming conventions. All 3 main files will share a set of common naming arguments below, with results saved to parser.add_argument('--project', default='runs/train', help='save to project/name')
parser.add_argument('--name', default='exp', help='save to project/name')
parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment') For train.py with the default arguments, runs are first saved to i.e. You can specify custom projects and run name as:
which will produce One new benefit is that W&B logging will be saved to the same |
* Project/name update * Update ci-testing.yml * address project with path separator failure mode * Project/name update * address project with path separator failure mode * Update ci-testing.yml * detect.py default --name bug fix * missing rstrip PR * train/exp0 to train/exp
* Project/name update * Update ci-testing.yml * address project with path separator failure mode * Project/name update * address project with path separator failure mode * Update ci-testing.yml * detect.py default --name bug fix * missing rstrip PR * train/exp0 to train/exp
* Project/name update * Update ci-testing.yml * address project with path separator failure mode * Project/name update * address project with path separator failure mode * Update ci-testing.yml * detect.py default --name bug fix * missing rstrip PR * train/exp0 to train/exp
This PR attempts to consolidate and simplify saving and logging directory structures with the following arguments for all 3 main files (train.py, detect.py, test.py):
Results are first saved to i.e.
runs/train/exp
, then incremented asruns/train/exp2
,runs/train/exp3
, etc, unless--exist-ok
.🛠️ PR Summary
Made with ❤️ by Ultralytics Actions
🌟 Summary
Updated directory incrementation and result saving logic in YOLOv5.
📊 Key Changes
increment_path
, replacingincrement_dir
for clarity in managing run directories.runs/detect
orruns/test
, and updated to generate directories dynamically based onproject/name
format.exp0
toexp
).🎯 Purpose & Impact