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

Retrieving trained YOLOv5 weights from WandB #5968

Closed
1 task done
aniruddh10124 opened this issue Dec 13, 2021 · 8 comments · Fixed by #5991
Closed
1 task done

Retrieving trained YOLOv5 weights from WandB #5968

aniruddh10124 opened this issue Dec 13, 2021 · 8 comments · Fixed by #5991
Labels
question Further information is requested

Comments

@aniruddh10124
Copy link

aniruddh10124 commented Dec 13, 2021

Search before asking

Question

After training the weights on YOLOv5 and saving the results on WandB, how do I save and retrieve those weights from WandB for using the trained weights to detect images in the test set? I know that some change needs to be done in the argument of !python detect.py --weight <argument>, but what should I write in place of <argument>?
Just to be clear, I am able to retrieve the trained weights from Google Drive, but my teams requires the weights to be stored and retrieved from WandB to streamline our work, which I am not able to do.
Thank you for your time.

Additional

No response

@aniruddh10124 aniruddh10124 added the question Further information is requested label Dec 13, 2021
@github-actions
Copy link
Contributor

github-actions bot commented Dec 13, 2021

👋 Hello @aniruddh10124, thank you for your interest in YOLOv5 🚀! Please visit our ⭐️ Tutorials to get started, where you can find quickstart guides for simple tasks like Custom Data Training all the way to advanced concepts like Hyperparameter Evolution.

If this is a 🐛 Bug Report, please provide screenshots and minimum viable code to reproduce your issue, otherwise we can not help you.

If this is a custom training ❓ Question, please provide as much information as possible, including dataset images, training logs, screenshots, and a public link to online W&B logging if available.

For business inquiries or professional support requests please visit https://ultralytics.com or email Glenn Jocher at glenn.jocher@ultralytics.com.

Requirements

Python>=3.6.0 with all requirements.txt installed including PyTorch>=1.7. To get started:

$ git clone https://github.com/ultralytics/yolov5
$ cd yolov5
$ pip install -r requirements.txt

Environments

YOLOv5 may be run in any of the following up-to-date verified environments (with all dependencies including CUDA/CUDNN, Python and PyTorch preinstalled):

Status

CI CPU testing

If this badge is green, all YOLOv5 GitHub Actions Continuous Integration (CI) tests are currently passing. CI tests verify correct operation of YOLOv5 training (train.py), validation (val.py), inference (detect.py) and export (export.py) on MacOS, Windows, and Ubuntu every 24 hours and on every commit.

@glenn-jocher
Copy link
Member

@aniruddh10124 thanks for your question! Our W&B expert @AyushExel should be able to help here.

@AyushExel
Copy link
Contributor

AyushExel commented Dec 14, 2021

@aniruddh10124 Hey, are you asking if you can directly pass artifact links to perform inference like you can to resume runs?
python detect.py --weights wandb-artifact://{artifact link} ? This isn't supported currently. wandb is only supported in training tasks.

How can you access the weights uploaded as W&B artifact?

Each artifact comes with an API. If you go to your dashboard where model is saved, you should see something like this:
2021-12-14 15_43_22-yolov5-integration Artifacts – Weights   Biases

You can copy and execute this api in your system and it'll download the weights. You can then use the the weights normally. Example:
python detect.py --weight {path to downloaded model}

Hope this helps :)

@aniruddh10124
Copy link
Author

@AyushExel So, I guess what we are trying to do is not currently supported by WandB. Thank you for your clarification.

@AyushExel
Copy link
Contributor

AyushExel commented Dec 15, 2021

@glenn-jocher are there any plans to support passing weights links for inference as Anirudh is describing? Not just for artifacts but also things like s3 bucket, GCP etc. links

@glenn-jocher
Copy link
Member

@AyushExel that's funny, that's probably the only argument that doesn't allow direct URL passing, because we already have the autodownload handling for the release assets. I tested it out just now and it seems to already be partially enabled, but the workflow has issues. I can take a look at it this week, I'll add a TODO.

@glenn-jocher
Copy link
Member

glenn-jocher commented Dec 15, 2021

TODO: URL --weights argument, i.e.:

python detect.py --weights https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s6.pt

@glenn-jocher glenn-jocher linked a pull request Dec 15, 2021 that will close this issue
@glenn-jocher glenn-jocher removed the TODO label Dec 15, 2021
@glenn-jocher
Copy link
Member

@AyushExel @aniruddh10124 good news 😃! Your original issue may now be fixed ✅ in PR #5991. This PR allows train.py, val.py, detect.py, export.py to pass a URL for the --weights argument, allowing download of custom YOLOv5 weights from any URL:

# Download arbitrary weights from any URL
python detect.py --weights https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt 

# Autodownload official weights from YOLOv5 assets
python detect.py --weights yolov5s.pt

Weights will only download if not already found locally in root directory (they will not download twice by running command twice).

To receive this update:

  • Gitgit pull from within your yolov5/ directory or git clone https://github.com/ultralytics/yolov5 again
  • PyTorch Hub – Force-reload model = torch.hub.load('ultralytics/yolov5', 'yolov5s', force_reload=True)
  • Notebooks – View updated notebooks Open In Colab Open In Kaggle
  • Dockersudo docker pull ultralytics/yolov5:latest to update your image Docker Pulls

Thank you for spotting this issue and informing us of the problem. Please let us know if this update resolves the issue for you, and feel free to inform us of any other issues you discover or feature requests that come to mind. Happy trainings with YOLOv5 🚀!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants